Stap 12: Draaien vooruit
Een bocht naar voren lijkt anders normaal vooruit lopen, maar nu het midden punten van beide servo's zijn gewijzigd. Het verkeer van een voorste been moet ook worden aangepast om te voorkomen dat het stijgende te hoog.
1. Maak een nieuwe variabele die het middelpunt van de servo's tijdens een beurt bepalen zal (het centrum zet positie). Merken we 9 graden uit de buurt van de motor van halverwege.
2. Bereken de maximale positie waarnaar het rechter voorpand been stijgen zal door de aftrek van 18 graden van de beurt van de middenpositie.
3. Bereken de positie van de voorste linkerbeen op dezelfde manier als het rechter voorpand been, maar in plaats van 18 graden aan de middenpositie beurt toe te voegen, voeg 36 (als tegenwicht voor de voorpoten).
4. berekenen van de positie van het recht achterste been door aftrek van de 15 graden van de beurt van de middenpositie.
5. Voeg dezelfde afstand aan het achterste linkerbeen.
6. de MoveTurnLeft()-functie is vergelijkbaar met de andere wandelingen. Deze keer, de zojuist genoemde variabelen worden gebruikt voor het draaien, en beide servo's zijn gecentreerd naar een andere positie dan wanneer lopen vooruit.
7. Herhaal draaien naar voren in de lus en de vertraging om de controle van de snelheid van onze wandeling.
// walkerTurnForward.pde - Two servo walker. Turn forward. #include Servo frontServo; Servo rearServo; int centerTurnPos = 81; 1 int frontTurnRightUp = 63; 2 int frontTurnLeftUp = 117; 3 int backTurnRightForward = 66; 4 int backTurnLeftForward = 96;5 void moveTurnLeft() 6 { frontServo.write(frontTurnRightUp); rearServo.write(backTurnLeftForward); delay(125); frontServo.write(centerTurnPos); rearServo.write(centerTurnPos); delay(65); frontServo.write(frontTurnLeftUp); rearServo.write(backTurnRightForward); delay(125); frontServo.write(centerTurnPos); rearServo.write(centerTurnPos); delay(65); } void setup() { frontServo.attach(2); rearServo.attach(3); } void loop() { moveTurnLeft(); 7 delay(150); //time between each step taken, speed of walk }