Röst kontrollerat Rover Robot (2 / 4 steg)
Steg 2: Starta med Robot
Jag har bifogat koden nedan, men om din inte använder Arduino programvaran jag har postat nedan. Detta är vad jag använde för min rover robot för RobotShop.com. Jag tog en enkel WASD skiss och modifierade den för att tillåta ett program för att styra det "distans". När du har kopierat koden kan du överföra den till din robot via en USB-kabel eller vad innebär att du använder för att ladda upp till din robot.
Ställa in motor variabler
int motorSpeed = 6;
int motor2Speed = 5;
int motor1 = 8.
int motor2 = 7.
void setup() {
int i;
för (jag = 5; jag < = 8; i ++)
pinMode (i, matas);
Serial.BEGIN(9600); Starta seriell kommunikation
}
void loop() {
väntar på någon seriell kommunikation. Om någon är emot genomföra switch-sats.
röding data = Serial.read();
Ställa in hastighet. 255 är max hastighet, kan du ändra värdena nedan för att sakta ner om du vill.
int leftspeed = 255;
int rightspeed = 255;
Växla (data) {
ärende '0': //If arduino får en 0 då det kommer att köra kommandot stopp som definieras nedan.
stoppa ();
bryta;
fall '1':
framåt (leftspeed, rightspeed);
bryta;
fallet "2":
bakåt (leftspeed, rightspeed);
bryta;
fallet "3":
vänster (rightspeed, leftspeed);
bryta;
fallet "4":
rätt (rightspeed, leftspeed);
bryta;
}
}
void halt(void)
{
digitalWrite (motorSpeed, låg);
digitalWrite (motor2Speed, låg);
}
utan laga kraft framåt (char a, char b).
{
analogWrite(motorSpeed, a); släpper "bromsen"
digitalWrite (motor1, låg); Tillämpar full effekt till PIN-koden. Detta skulle normalt vara hög men min tråd är hooked bakåt så jag bytte bara kommandot.
analogWrite (motor2Speed, b);
digitalWrite (motor2, låg);
}
void omvänd (char a, char b).
{
analogWrite(motorSpeed, a);
digitalWrite (motor1, hög);
analogWrite (motor2Speed, b);
digitalWrite (motor2, hög);
}
Annullera vänster (char a, char b).
{
analogWrite (motorSpeed, en);
digitalWrite (motor1, hög);
analogWrite (motor2Speed, b);
digitalWrite (motor2, låg);
}
ogiltigförklara rätten (char a, char b).
{
analogWrite (motorSpeed, en);
digitalWrite (motor1, låg);
analogWrite (motor2Speed, b);
digitalWrite (motor2, hög);
}