#include <Servo.h>
Servo myservo; // create servo object to control a servo
int pos = 90;
String kontrolstr = "";
char kontrol;
void setup()
{
Serial.begin(9600);
myservo.attach(9);// attaches the servo on pin 9 to the servo object
}
void loop()
{
if(Serial.available())
{
kontrol=Serial.read(); // it reads from python voice recognition
kontrolstr.concat(kontrol);
}
if(kontrolstr== "right")
{pos += 30;
kontrol = '0';
kontrolstr = "";
}
else if(kontrolstr== "left")
{pos -= 30;
kontrol= '0';
kontrolstr = "";
}
myservo.write(pos);
delay(100);
}
Es funktioniert mit voice_command.py (was ich schrieb) auf Linux-Terminal. Wenn der Code so ist, direkt nach dem Hochladen dieses Codes auf Arduino, funktioniert es gut, bis die Spracherkennung ein anderes Wort von "rechts" oder "links" versteht. Wenn der Sprachbefehl an Arduino eine andere Zeichenfolge als "rechts" oder "links" sendet, funktioniert das Programm immer noch ohne Fehler, aber nach diesem Punkt beginnt es nicht mehr mit "rechts" oder "links" zu antworten. Um das zu lösen, habe ich das geändert. Ich habe ein ‚anderes‘:arduino: Programm mit sonst funktioniert nicht
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int pos = 90;
String kontrolstr = "";
char kontrol;
void setup()
{
Serial.begin(9600);
myservo.attach(9);// attaches the servo on pin 9 to the servo object
}
void loop()
{
if(Serial.available())
{
kontrol=Serial.read();
kontrolstr.concat(kontrol);
}
if(kontrolstr== "right")
{pos += 30;
kontrol = '0';
kontrolstr = "";
}
else if(kontrolstr== "left")
{pos -= 30;
kontrol= '0';
kontrolstr = "";
}
else { // I write this to make it work..
kontrol = '0';
kontrolstr = "";
}
myservo.write(pos);
delay(100);
}
aber jetzt ist es nicht zu „rechts“ und „links“ Befehl reagiert. Wie kann ich dieses Problem lösen?
Vermutlich aggregiert der Serial.available() - Block die Daten, wenn sie eingehen? Wenn Sie also in einer Iteration der Schleife 'Rig' erhalten, werden Sie den Block" else "treffen und die Zeichenkette zurückstellen, bevor die' ht' eingeht, richtig? – Paul
Danke für die Antwort, aber ich konnte nicht klar, was Sie meinen. Besonders "Rig" und "HT" Teile. Ich habe nicht verstanden, was ich tun soll, um dieses Problem zu lösen. Kannst du es ein wenig öffnen, damit ich es gut verstehe? Ich bin übrigens neu in arduino :) –