Stap 33: Robot Motor Test - scheef gegaan
Dus Bekijk deze video en zie als u welke zeggen annuleerteken als fout gegaan...Video - Probeer eerst -
1 - motoren worden uitgevoerd bij zeer snel
2 - brandwonden uit de beheersing van de taille-motor mosfet
Video 2 - probeer het uit en weer draaien
1 - motoren worden uitgevoerd bij zeer snel
Zie je waarom?
Ik heb alle de snelheden lopen als digitale uitgangen, dus we zijn net 0Volts of 18Volts naar de motor.
Zo waar is er zoiets als dit:
digitalWrite (RightArmSpeed, Fast);
het zou moeten zijn;
analogWrite (RightArmSpeed, Fast);
de analogWrite-opdracht stuurt wat is eigenlijk een variabele spanning tussen 0 en 5 v (met 0 = 0V; en 255 = 5V)-loopt dit via de mosfet geeft een output met 0 = 0V; en 255 = 18V.
Dus - hieronder de code is vastgesteld. De snelheid-waarden zijn nu in het bereik 0-255, en kunnen worden gewijzigd aan de bovenkant van de code.
2 - brandwonden uit de beheersing van de taille-motor mosfet
Twee problemen hier - de eerste is dat we zijn niet goed de controle macht aan de motor - maar dat moet nu worden vastgesteld. De andere kwestie is dat het echt moeilijk om het verheffen van de achterkant van de robot als dit - zodat de motor veel stroom loopt te krijgen van de robot om te buigen in de taille. We moeten zitten kundig voor positiebepaling zulks mechanisch door: bouwen van een betere koppeling; toevoegen van veren of gewichten aan evenwicht de bovenlichaam, of iets anders... Ik voel me alsof er een hele lange stap over de vaststelling van dit deel zal zijn. Voorlopig zal ik het probleem negeren.
Arduino Code controle snelheid met analogWrite functie / / /
Richting lage = naar lichaam of doorsturen
Richting hoog = uit de buurt van lichaam of achterwaarts
int RightArmDir = 2;
int RightArmSpeed = 3;
int LeftArmDir = 4;
int LeftArmSpeed = 5;
int WaistDir = 7;
int WaistSpeed = 6;
int RightWheelDir = 8;
int RightWheelSpeed = 9;
int LeftWheelDir = 12;
int LeftWheelSpeed = 10;
int Slow = 100;
int Fast = 200;
int t1 = 500;
int t2 = 100;
int WheelSpeed = 120;
VOID Setup {}
pinMode (RightArmDir, uitvoer);
pinMode (RightArmSpeed, uitvoer);
pinMode (LeftArmDir, uitvoer);
pinMode (LeftArmSpeed, uitvoer);
pinMode (WaistDir, uitvoer);
pinMode (WaistSpeed, uitvoer);
pinMode (RightWheelDir, uitvoer);
pinMode (RightWheelSpeed, uitvoer);
pinMode (LeftWheelDir, uitvoer);
pinMode (LeftWheelSpeed, uitvoer);
Serial.begin(9600);
}
void loop {}
BASISTESTS / /
Serial.println ("BASISTESTS");
De rechterarm test
Serial.println ("rechterarm");
Rechterarm omhoog
Serial.println("up");
digitalWrite (RightArmDir, hoge);
analogWrite (RightArmSpeed, Slow);
vertraging (t1);
analogWrite(RightArmSpeed,Fast);
vertraging (t2);
analogWrite(RightArmSpeed,Slow);
delay(T1);
analogWrite (RightArmSpeed, 0);
delay(T1);
Rechterarm naar beneden
Serial.println("down");
digitalWrite (RightArmDir, laag);
analogWrite (RightArmSpeed, Slow);
vertraging (t1);
analogWrite (RightArmSpeed, Fast);
vertraging (t2);
analogWrite (RightArmSpeed, Slow);
delay(T1);
analogWrite (RightArmSpeed, 0);
delay(T1);
Test linkerarm
Serial.println ("linker Arm");
Linker Arm omhoog
Serial.println("up");
digitalWrite (LeftArmDir, hoge);
analogWrite (LeftArmSpeed, Slow);
vertraging (t1);
analogWrite (LeftArmSpeed, Fast);
vertraging (t2);
analogWrite (LeftArmSpeed, Slow);
vertraging (t1);
analogWrite (LeftArmSpeed, 0);
delay(T1);
Linkerarm naar beneden
Serial.println("down");
digitalWrite (LeftArmDir, laag);
analogWrite (LeftArmSpeed, Slow);
vertraging (t1);
analogWrite (LeftArmSpeed, Fast);
vertraging (t2);
analogWrite(LeftArmSpeed,Slow);
delay(T1);
analogWrite (LeftArmSpeed, 0);
delay(T1);
Test taille
Serial.println("waist");
Bukken
Serial.println("down");
digitalWrite (WaistDir, hoge);
analogWrite (WaistSpeed, Slow);
vertraging (2 * t1);
analogWrite (WaistSpeed, Fast);
vertraging (4 * t2);
analogWrite (WaistSpeed, Slow);
delay(2 * T1);
analogWrite (WaistSpeed, 0);
delay(T1);
Buig omhoog
Serial.println("up");
digitalWrite (WaistDir, laag);
analogWrite (WaistSpeed, Slow);
vertraging (2 * t1);
analogWrite (WaistSpeed, Fast);
vertraging (4 * t2);
analogWrite (WaistSpeed, Slow);
delay(2 * T1);
analogWrite (WaistSpeed, 0);
delay(T1);
Het juiste wiel test
Serial.println ("juiste wiel");
Doorsturen van het juiste wiel '
Serial.println("foward");
digitalWrite (RightWheelDir, hoge);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (RightWheelSpeed, 0);
delay(T1);
Juiste wiel achteruit
Serial.println("backward");
digitalWrite (RightWheelDir, laag);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (RightWheelSpeed, 0);
delay(T2);
Test linker wiel
Serial.println ("linker wiel");
Linker wiel doorsturen
Serial.println("foward");
digitalWrite (LeftWheelDir, hoge);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (LeftWheelSpeed, 0);
delay(T1);
Linker wiel terug
Serial.println("backward");
digitalWrite (LeftWheelDir, laag);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (LeftWheelSpeed, 0);
delay(T1);
FANCY TESTS / /
Serial.println ("FANCY TESTS");
Raken vloer
Aanraking van de hemel
Uitgangspositie
Draai links
Draai rechts
Gaan doorsturen
Serial.println ("Ga doorsturen");
digitalWrite (LeftWheelDir, hoge);
digitalWrite(RightWheelDir,HIGH);
analogWrite (RightWheelSpeed, WheelSpeed/2);
analogWrite (LeftWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
analogWrite (LeftWheelSpeed, WheelSpeed/2);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
analogWrite (LeftWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (LeftWheelSpeed, 0);
analogWrite (RightWheelSpeed, 0);
delay(T1);
Achterwaarts gaan
Robot dans
Serial.println("REPEAT...");
} / / Richting lage = naar lichaam of doorsturen
Richting hoog = uit de buurt van lichaam of achterwaarts
int RightArmDir = 2;
int RightArmSpeed = 3;
int LeftArmDir = 4;
int LeftArmSpeed = 5;
int WaistDir = 7;
int WaistSpeed = 6;
int RightWheelDir = 8;
int RightWheelSpeed = 9;
int LeftWheelDir = 12;
int LeftWheelSpeed = 10;
int Slow = 100;
int Fast = 200;
int t1 = 500;
int t2 = 100;
int WheelSpeed = 120;
VOID Setup {}
pinMode (RightArmDir, uitvoer);
pinMode (RightArmSpeed, uitvoer);
pinMode (LeftArmDir, uitvoer);
pinMode (LeftArmSpeed, uitvoer);
pinMode (WaistDir, uitvoer);
pinMode (WaistSpeed, uitvoer);
pinMode (RightWheelDir, uitvoer);
pinMode (RightWheelSpeed, uitvoer);
pinMode (LeftWheelDir, uitvoer);
pinMode (LeftWheelSpeed, uitvoer);
Serial.begin(9600);
}
void loop {}
BASISTESTS / /
Serial.println ("BASISTESTS");
De rechterarm test
Serial.println ("rechterarm");
Rechterarm omhoog
Serial.println("up");
digitalWrite (RightArmDir, hoge);
analogWrite (RightArmSpeed, Slow);
vertraging (t1);
analogWrite(RightArmSpeed,Fast);
vertraging (t2);
analogWrite(RightArmSpeed,Slow);
delay(T1);
analogWrite (RightArmSpeed, 0);
delay(T1);
Rechterarm naar beneden
Serial.println("down");
digitalWrite (RightArmDir, laag);
analogWrite (RightArmSpeed, Slow);
vertraging (t1);
analogWrite (RightArmSpeed, Fast);
vertraging (t2);
analogWrite (RightArmSpeed, Slow);
delay(T1);
analogWrite (RightArmSpeed, 0);
delay(T1);
Test linkerarm
Serial.println ("linker Arm");
Linker Arm omhoog
Serial.println("up");
digitalWrite (LeftArmDir, hoge);
analogWrite (LeftArmSpeed, Slow);
vertraging (t1);
analogWrite (LeftArmSpeed, Fast);
vertraging (t2);
analogWrite (LeftArmSpeed, Slow);
vertraging (t1);
analogWrite (LeftArmSpeed, 0);
delay(T1);
Linkerarm naar beneden
Serial.println("down");
digitalWrite (LeftArmDir, laag);
analogWrite (LeftArmSpeed, Slow);
vertraging (t1);
analogWrite (LeftArmSpeed, Fast);
vertraging (t2);
analogWrite(LeftArmSpeed,Slow);
delay(T1);
analogWrite (LeftArmSpeed, 0);
delay(T1);
Test taille
Serial.println("waist");
Bukken
Serial.println("down");
digitalWrite (WaistDir, hoge);
analogWrite (WaistSpeed, Slow);
vertraging (2 * t1);
analogWrite (WaistSpeed, Fast);
vertraging (4 * t2);
analogWrite (WaistSpeed, Slow);
delay(2 * T1);
analogWrite (WaistSpeed, 0);
delay(T1);
Buig omhoog
Serial.println("up");
digitalWrite (WaistDir, laag);
analogWrite (WaistSpeed, Slow);
vertraging (2 * t1);
analogWrite (WaistSpeed, Fast);
vertraging (4 * t2);
analogWrite (WaistSpeed, Slow);
delay(2 * T1);
analogWrite (WaistSpeed, 0);
delay(T1);
Het juiste wiel test
Serial.println ("juiste wiel");
Doorsturen van het juiste wiel '
Serial.println("foward");
digitalWrite (RightWheelDir, hoge);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (RightWheelSpeed, 0);
delay(T1);
Juiste wiel achteruit
Serial.println("backward");
digitalWrite (RightWheelDir, laag);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (RightWheelSpeed, 0);
delay(T2);
Test linker wiel
Serial.println ("linker wiel");
Linker wiel doorsturen
Serial.println("foward");
digitalWrite (LeftWheelDir, hoge);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (LeftWheelSpeed, 0);
delay(T1);
Linker wiel terug
Serial.println("backward");
digitalWrite (LeftWheelDir, laag);
analogWrite (RightWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (LeftWheelSpeed, 0);
delay(T1);
FANCY TESTS / /
Serial.println ("FANCY TESTS");
Raken vloer
Aanraking van de hemel
Uitgangspositie
Draai links
Draai rechts
Gaan doorsturen
Serial.println ("Ga doorsturen");
digitalWrite (LeftWheelDir, hoge);
digitalWrite(RightWheelDir,HIGH);
analogWrite (RightWheelSpeed, WheelSpeed/2);
analogWrite (LeftWheelSpeed, WheelSpeed/2);
vertraging (t1);
analogWrite (RightWheelSpeed, WheelSpeed);
analogWrite (LeftWheelSpeed, WheelSpeed/2);
vertraging (t2);
analogWrite (RightWheelSpeed, WheelSpeed/2);
analogWrite (LeftWheelSpeed, WheelSpeed/2);
delay(T1);
analogWrite (LeftWheelSpeed, 0);
analogWrite (RightWheelSpeed, 0);
delay(T1);
Achterwaarts gaan
Robot dans
Serial.println("REPEAT...");
}