Arduino-Smart avstånd kontrollerade insekt (12 / 15 steg)
Steg 12: Vrida fram
En sväng fram liknar annars normal framåt gå, men nu stadens poäng för båda servon ändras. Förflyttning av ett främre ben måste också justeras för att hålla den från att stiga för högt.
1. skapa en ny variabel som definierar servon mittpunkt under en sväng (centrera vänd position). Märka vi 9 grader från motorns halvvägs.
2. beräkna den högsta positionen som främre benet kommer att stiga med avdrag 18 grader från tur mittläget.
3. beräkna positionen för den vänstra framben på samma sätt som främre benet, men istället för att lägga till 18 grader till turn mittläget, lägga till 36 (för att balansera frambenen).
4. beräkna positionen för det högra bakre benet genom avdrag 15 grader från tur mittläget.
5. Lägg till samma avstånd till vänster bakre ben.
6. MoveTurnLeft() funktion liknar alla andra promenader. Den här gången variablerna just nämnde används för svarvning och båda servon är centrerad till en annan plats än att när gå framåt.
7. Upprepa vrida fram i slingan och förseningen att kontrollera hastigheten på vår promenad.
walkerTurnForward.pde - två servo walker. Vänd framåt.
#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); tid mellan varje steg som tas, hastigheten på promenad
}