Röst kontrollerat Arduino Drone (2 / 18 steg)
Steg 2: Hur koden fungerar?
Koden är relativt enkel. Analyserar variabeln röst och reagerar på dem genom att kontrollera motorerna. Efter roterande vänster eller höger Arduino snabbt ändras dess värde till ursprungliga, så din drone behöver inte ett gyroskop, eftersom automatiskt vänder tillbaka i sin oroginal position tackade till sofware. Detta gör ditt flyg säker och rolig. :)
Kopiera denna kod i IDE
< p > sträng röst; < br > int motor1 = 3; Anslut motor 1 till Pin #3 vänster motor
int motor2 = 9; Anslut motor 2-Pin #9 bakre motor
int motor3 = 11; Anslut motor 3-Pin #11, rätt motor < /p >< p > //---Call A funktionen---/ / < /p >< p > //the värdena efter varje anlogWrite kommandon styr motorns hastighet, max värdet är 255 < /p >< p > //if din drone är inte i balans försöka ändra värdena, exempel förändring 130-135 om din drone går bakåt < /p >< p > void middlespeed() {
analogWrite (motor1, 130);
analogWrite (motor2, 130);
analogWrite (motor3, 130);
}
void fastspeed() {
analogWrite (motor1, 255);
analogWrite (motor2, 255);
analogWrite (motor3, 255);
} < /p >< p > void lowspeed() {
analogWrite (motor1, 100);
analogWrite (motor2, 100);
analogWrite (motor3, 100); < /p >< p >}
//-----------------------------------------------------------------------//
void setup() {
Serial.BEGIN(9600);
pinMode (motor1, produktionen);
pinMode (motor2, produktionen);
pinMode (motor3, produktionen);
}
//-----------------------------------------------------------------------//
void loop() {
samtidigt (Serial.available()) {//Check om det finns en tillgänglig byte att läsa
Delay(10); Dröjsmål till göra sak stabil
char c = Serial.read(); Genomföra en seriell läsa
if (c == '#') {
bryta; Avsluta loopen när # upptäcks efter ordet
}
röst += c; Förkortning för röst = röst + c
}
om (voice.length() > 0) {
Serial.println(Voice);
//-----------------------------------------------------------------------//
---Kontrollera motors---/ /
om (röst == "* starta motorer") {
Lowspeed(); Motorerna börjar snurra, och drone långsamt kommer downer om redan flyger
}
annars om (röst == "* flyga lågt") {
middlespeed(); Flyg bordunen, bo på ett ställe
}
annars om (röst == "* flyga högre") {
FASTSPEED(); Maximalt varvtal, drone kommer gå uppåt mycket snabbt
} < /P >< p > //---Directions---//
Drone kan vara kontrollerade bäst i middlespeed tillstånd
annars om (röst == "* gå till vänster") {
analogWrite (motor1, 100);
Delay(450);
analogWrite (motor1, 130);
}
annars om (röst == "* gå rätt") {
analogWrite (motor3, 100);
Delay(450);
analogWrite(motor3,130);
}
annars om (röst == "* gå bakåt") {
analogWrite (motor2, 100);
Delay(300);
analogWrite (motor2, 130);
}
annars om (röst == "* gå framåt") {
analogWrite (motor2, 200);
Delay(350);
analogWrite (motor2, 130);
}
annars om (röst == "* höger back") {
analogWrite (motor1, 200);
Delay(350);
analogWrite (motor1, 130);
}
annars om (röst == "* lämnade tillbaka") {
analogWrite (motor3, 200);
Delay(350);
analogWrite (motor3, 130);
}</p><p> //-----------------------------------------------------------------------//
röst = "";
}
} //Reset variabeln efter inledande < /p >