Smart Robot med Vision och röst kontroll (5 / 8 steg)
Steg 5: Program MakeBlock Orion (Arduino Uno) styrelsen
-Installera Arduino IDE
-Anslut robot controller styrelsen till datorn med en standard micro USB-kabel.
-Välj "Arduino Uno" som styrelsen typ från menyn "Verktyg".
-Skapa den följande ny skissen (dvs program):-
//-------------------------------------------------------
Smart Rover - Arduino skiss för att styra en
Makeblock robotar från DroidScript via kabel OTG.
//
Detta program kan testas med hjälp av den Aurduino följetongen
övervaka.
//
Exempel:
typ "lft100x" till sväng vänster vid hastighet 100.
Skriv "buzy" för att aktivera summern, "buzn" att stänga av.
//
Upphovsrätt: droidscript.org
Licens: Creative Commons Attribution ShareAlike 3.0
//--------------------------------------------------------
#include
#include
#include
#include
Globala variabler.
char g_version [] = "0.10\n";
MeDCMotor g_motorL (M1).
MeDCMotor g_motorR (M2);
MeUltrasonicSensor ultraSensor (PORT_4);
osignerade långa timer = 0;
Ställa in hårdvaran.
void setup()
{
Installera USB-seriell kommunikation.
Serial.BEGIN (115200);
Serial.setTimeout (100);
}
Denna funktion kallas för evigt.
void loop()
{
Läsa följetong kommandon.
medan (Serial.peek()! = -1)
{
Läs 3 karaktär kommando.
char cmd [4] = "---";
Serial.readBytes (cmd, 3);
Kör kommando.
om (strcmp (cmd, "buz") == 0) Buzzer();
annars om (strcmp (cmd, "stp") == 0) Stop();
annars om (strcmp (cmd, "fwd") == 0) Forward();
annars om (strcmp (cmd, "rev") == 0) Reverse();
annars om (strcmp (cmd, "lft") == 0) Left();
annars om (strcmp (cmd, "rgt") == 0) Right();
annars om (strcmp (cmd, "ver") == 0) GetVersion();
}
Rapportera status varje sekund.
om ((millis()-timer) > 1000)
{
timer += 1000;
Report();
}
}
Få mjukvaruversion.
void GetVersion()
{
Serial.Print (g_version);
}
Skicka status till DroidScript App.
void Report()
{
int dist = ultraSensor.distanceCm();
Serial.println (String("dist:") + dist + String(";"));
}
Kontroll Summer.
void Buzzer()
{
Läs på/av parametern.
char onOff;
Serial.readBytes (& onOff, 1);
Start av stop summern.
om (onOff == "y") buzzerOn();
annat buzzerOff();
}
Vända fordonet kvar.
void Left()
{
Läshastigheten parameter.
int hastighet = Serial.parseInt();
Slå på motorer.
g_motorL.Run (-hastighet);
g_motorR.Run (hastighet);
}
Vända fordonet rätt.
void Right()
{
Läshastigheten parameter.
int hastighet = Serial.parseInt();
Slå på motorer.
g_motorL.Run (hastighet);
g_motorR.Run (-hastighet);
}
Driva fordonet.
void Forward()
{
Läshastigheten parameter.
int hastighet = Serial.parseInt();
Slå på motorer.
g_motorL.Run (hastighet);
g_motorR.Run (hastighet);
}
Vända fordonet.
void Reverse()
{
Läshastigheten parameter.
int hastighet = Serial.parseInt();
Slå på motorer.
g_motorL.Run (-hastighet);
g_motorR.Run (-hastighet);
}
Stoppa fordon.
void Stop()
{
Stäng av motorer.
g_motorL.Run (0);
g_motorR.Run (0);
}