Gör: it Robotics startkit - skicka Sensor Data trådlöst
Detta Instructable vi ska ta vad vi lärt oss i "Make: it Robotics Starter Kit – trådlös anslutning" och "Make: it Robotics Starter Kit – fånga sensordata" och kombinera dessa uppgifter för att fånga sensordata i realtid och skicka dessa data till ett program som körs på vår dator trådlöst.
Så om du inte har din robot som konfigurerats för att använda sändare och mottagare, ta en titt på blogginlägg "Make: it Robotics Starter Kit – fånga sensordata" och konfigurera din robot och FTDI kabel.
För att skicka sensordata till vår dator har vi igen att göra några små förändringar till vår lineFollow.ino Arduino program:
Kommentera ut följande rad, som vi inte längre behöver våra variabel.
int counter;
Kommentera ut variabelinitieringen counter variabel:
räknare = 0;
I funktionen loop() i programmet kommentaren ut följande rader:
mySerial.println (counter, DEC);
räknaren ++;
Tillägga den följande lina till funktionen loop():
mySerial.println (insats 1, HEX);
om (insats 1! = åtgärd2)
{
om (insats 1 == 3)
line_following.go_forward(50);
om (insats 1 == 1)
line_following.line_following_turn_left(50);
om (insats 1 == 2)
line_following.line_following_turn_right(50);
om (insats 1 == 0)
line_following.go_forward(50);
}
åtgärd2 = Åtgärd1;
}
När vi kör roboten våra sensordata kommer att skicka trådlöst till vår dator, men vi vill inte bara fånga seriella data med seriell bildskärmen med resultaten som visas som hexadecimala tal.
Vi vill visa i realtid faktiska anvisningarna roboten ges utifrån sensordata. Vi kan inte använda följetong bildskärmen för att göra detta.
Vi måste skriva ett program som har liknande logik som våra lineFollow.ino program. Så vi kommer att utveckla ett Python program som läser in serieporten data och skriva ut instruktionerna att roboten ges på ren svenska.
Bifogat är Python programmet, kommer vi att analysera programmet i lite. Om du inte gjort det, se tidigare blogginlägg "Make: it Robotics startkit-binära del 1″ och titta på Video på hur till setup Python på datorn.
importera följetong
Importera tid
Import-programsatser ge bibliotekets funktioner som vår Python program behöver för att kommunicera till den seriella porten.
def main ():
Uttrycket definierar en funktion som kallas main)
ser = följetong. Serial ("COM3", 1200, timeout = 0)
Detta uttalande skapar en seriell objekt och berättar objektet vilken serieport att lyssna på, vilken överföringshastighet som du använder och timeout = 0 används för att läsa data när den är tillgänglig utan att vänta.
medan 1:
Den medan 1: uttalande används för att starta en loop som upprepas och slutar inte som villkor för 1 är alltid sant.
värde = ser.read(1)
Här läser vi en byte av data från seriella porten och lagra detta värde till variabeln värdet.
om värde > = "0" och värdet < = "3":
Om innehållet i variabeln värdet är mellan 0 och 3 köra innehållet i if uttalande
om värdet == '0' eller värde == '3'
skriva ut "Gå fram"
Om variabeln värdet är köra antingen 1 eller 3 sedan print "gå framåt" meddelandet.
om värdet == '1':
skriva ut "Sväng vänster"
Om variabeln värdet är 1 och skriv sedan ut meddelandet "Sväng vänster"
om värdet == '2':
skriva ut "Sväng höger"
Om variabeln värdet är 2 sedan skriva ut meddelandet "Sväng höger"
om __name__ == "__main__": main)
Om detta program utföra som körs och inte en biblioteksfil då huvudfunktionen.
Kom ihåg Python är ett indrag känsliga känsliga språk. Om din indrag inte stämmer ditt program kommer att generera syntaxfel när du försöker utföra den. Räkna spaces indrag när coping koden i din texteditor.
Kom ihåg när du ansluter USB-kabeln in till programmet Arduino måste du se till att den seriella porten är korrekt för den seriella portinställningar i Arduino IDE.
Se blogginlägget "Make: it Robotics Starter Kit - fånga Sensor Data" för information om hur du avgöra rätt seriell Port och hur man ställer in Arduino IDE.
Om du använder en annan USB-Port för din FTDI USB kabel, blir din Serial Port annorlunda också.
Placera din readSerial.py program i en mapp på din dator och starta kommandotolken och ändra katalog till samma mapp i readSerial.py programmet.
Kör kommando från Kommandotolken:
Python runSerial.py
Om du stöter på fel, kontrollera att din runSerial.py program är inställd på rätt seriell port.
Kontrollera att du har din förare ombord och FTDI kabel wired korrekt.
Om du får konstiga tecken som skrivs ut till din befalla snabb, kontrollera att din baudfrekvens är densamma i den Arduino lineFollow.ino och readSerial.py programmen.
Om du gjorde allt korrekt, när din robot är efter den svarta linjen din Python programmet bör produktionen något visas i bilden ovan.