- Material som krävs:
- Installera Python på din dator:
- Få PySerial i Python:
- Vårt första Arduino Python-program:
- Styrande LED med Python och Arduino:
Arduino har alltid varit en kraftfull och lättanvänd inlärnings- / utvecklingsplattform när det gäller utveckling av hårdvara med öppen källkod. I dagens moderna värld drivs varje hårdvara av ett högnivåprogrammeringsspråk för att göra det mer effektivt och användarvänligt. Ett sådant språk är Python. Python är ett tolkat, objektorienterat, högnivåprogrammeringsspråk med dynamisk semantik med högnivå inbyggda datastrukturer i kombination med dynamisk typning och dynamisk bindning, vilket gör det mycket attraktivt för snabb applikationsutveckling.
Att kombinera kraften i Arduino och Python kommer att öppna dörrar för många möjligheter eftersom python har ökad produktivitet med sin förmåga att interagera med andra plattformar som openCV, Matlab osv. Så i denna handledning lär vi oss hur vi kan installera python på vår dator och hur man använder den med Arduino för att växla ombord-lysdioden på Arduino.
Så, låt oss komma igång….
Material som krävs:
- Arduino Uno (eller några Arduino-styrelser)
- Dator med internetanslutning
Installera Python på din dator:
Uppenbarligen skulle det första steget i denna handledning vara att installera Python på vår dator. Stegen som nämns nedan är endast tillämpliga för Windows-användare som kör antingen 32-bitars eller 64-bitars OS. Installationsproceduren för MAC och Linux är annorlunda.
- Klicka på 32-bitars Python-2.7.9 så installeras 32-bitars Python IDLE på din dator. Ladda inte ner 64-bitarsversionen eller uppdaterade versioner eftersom de inte ger support för våra Arduino-bibliotek. Även om din dator fungerar på 64-bit kan du använda 32-bitars Python själv.
- Öppna den nedladdade exe-filen och följ instruktionerna. Ändra inte katalogen där pythonen installeras. Det kommer att vara C: \ Python27 som standard och lämna det som sådant.
- Medan installationen äger rum kan du få en varning från ditt antivirusprogram (om något). Klicka i så fall på Tillåt.
Det är det !, python har installerats på vår dator. Du kan verifiera det genom att söka efter "Python IDLE" i Windows sökruta och öppna den.
När du öppnar ska du få följande skärm. Det här fönstret kallas Python Shell och vi kommer att hänvisa till det som " Python shell " från och med nu.
Den här skärmen kallas Python Shell. Du kan direkt koda in här och få utdata på samma skärm eller skapa en ny fil och skriva programmet där och verifiera programmet här. Vi kommer senare att komma in i detaljerna för att skapa ett pythonprogram, för nu låt oss kontrollera om python fungerar.
För att göra det, skriv bara “ skriv ut (1 + 1) ” och tryck på enter. Du bör se resultatet skrivas ut som visas nedan.
Få PySerial i Python:
Nästa steg är att installera pyserial. PySerial är en Python API-modul som används för att läsa och skriva seriell data till Arduino eller någon annan mikrokontroller.
Klicka på Pyserial Windows för att ladda ner PySerial. Den resulterande nedladdningen blir en exe-fil som kan installeras direkt. Ändra inte någon inställning under installationen. Lämna det till standardkatalogen och standardinställningarna.
Låt oss nu kontrollera om PySerial är korrekt installerat. För att göra detta, öppna Python Shell igen och skriv in
importera serie . Om biblioteket har installerats framgångsrikt ska du inte få några felmeddelanden som visas på bilden nedan. Om du får några fel, lägg upp dem i kommentarsektionen och vi kommer att försöka lösa det.
Denna handledning förutsätter att du känner till Arduino och har erfarenhet av att ladda upp projekt till Arduino. Så låt oss direkt hoppa in i vårt Python-program. Om du är nybörjare med Arduino, kolla in våra Arduino-projekt och börja med att LED blinkar med Arduino.
Vårt första Arduino Python-program:
Som sagt tidigare kommer vi att styra den inbyggda Arduino-kortets LED med Python-skript. Låt oss börja med Arduino-koden.
Program för Arduino:
Det kompletta programmet för denna Arduino-pythonhandledning ges i slutet av denna sida. Läs vidare för att veta hur det fungerar.
Inuti installationsfunktionen initialiserar vi seriekommunikationen med 9600 baudhastighet och förklarar att vi kommer att använda den inbyggda ledningen som utgång och vrida den låg under programstart. Vi har också skickat ett välkomstmeddelande till python via serietryck enligt nedan:
ogiltig installation () {Serial.begin (9600); // initiera seriell COM vid 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // gör LED-stiftet (13) som utgång digitalWrite (LED_BUILTIN, LOW); Serial.println ("Hej! Jag är Arduino"); }
Inne i loop -funktionen, läser vi oavsett data som kommer in i serie och tilldela värdet till variabeln ”data”. Nu baserat på värdet på denna variabel ("data") växlar vi den inbyggda ledningen som visas nedan.
void loop () {while (Serial.available ()) {data = Serial.read (); } if (data == '1') digitalWrite (LED_BUILTIN, HIGH); annars om (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Program för Python:
Det fullständiga pythonprogrammet för denna handledning ges i slutet av denna sida. Läs vidare för att veta hur man skriver och använder detsamma.
- Öppna din Python-skal (Python IDLE) och klicka på Arkiv-> Ny
- Detta öppnar en ny textfil där du kan skriva in ditt program.
- Innan vi skriver något kan vi spara filen, med Ctrl + S. Skriv in något namn och klicka på spara. Detta sparar automatiskt din fil i ".py" -förlängningen.
- Skriv nu in programmet eller klistra in pythonkoden som ges i slutet av den här sidan. Förklaringen till detsamma ges nedan och kör slutligen programmet.
I vårt program skulle det första steget vara att importera serie- och tidsbiblioteket. Seriellbiblioteket som tidigare nämnts kommer att användas för att läsa och skriva seriell data och tidsbiblioteket kommer att användas för att skapa förseningar i vårt program. Dessa två bibliotek kan importeras i vårt program med följande två rader:
importera serienummer # Serien importeras för seriell kommunikation importtid # Krävs för att använda fördröjningsfunktioner
Nästa steg skulle vara att initiera ett seriellt objekt med vårt seriella bibliotek. I det här programmet har vi utsett vårt serieobjekt till ”ArduinoSerial” . I den här raden måste vi nämna namnet på COM-porten som vår Arduino är ansluten till och med vilken baudhastighet den fungerar enligt nedan.
ArduinoSerial = serial.Serial ('com18', 9600)
Obs! Det är mycket viktigt att nämna rätt COM-portnamn. Det kan hittas med hjälp av Enhetshanteraren på din dator.
Så snart det seriella objektet har initierats bör vi hålla programmet i två sekunder för att seriekommunikationen ska upprättas. Detta kan göras med hjälp av nedanstående rad:
time.sleep (2)
Nu kan vi läsa eller skriva allt från / till vårt Arduino Board.
Följande rad läser allt som kommer från Arduino och skriver ut det på skalfönstret
skriv ut ArduinoSerial.readline ()
Du kan också tilldela värdet till en variabel och använda det för beräkningar.
Följande rad skriver värdet på parametern till Arduino Board.
ArduinoSerial.write ('1')
Den här raden skriver '1' till Arduino. Du kan skicka allt från decimaler till strängar med samma rad.
Nu när vi kommer tillbaka till vårt program, i den oändliga stundslingan, har vi följande rader
var = raw_input () #get input från användarutskrift "du angav", var #print input för bekräftelse om (var == '1'): # om värdet är 1 ArduinoSerial.write ('1') #send 1 utskrift ("LED tänd PÅ") tid. sömn (1) om (var == '0'): # om värdet är 0 ArduinoSerial.write ('0') # skicka 0 utskrift ("LED avstängd") tid.sleep (1)
Linjen var = raw_input får något värde som skrivs i Shell script och tilldela det värdet till variabeln var .
Senare, om värdet är 1 kommer det att skriva ut '1' i serie till Arduino och om 0 kommer det att skriva ut '0' i serie till Arduino. Koden i vårt Arduino-program (diskuteras ovan) vi växlar lysdioden baserat på det mottagna värdet.
När det kompletta programmet är klart ska ditt skript se ut så här nedan
Nu klicka på Run -> Kör modul eller tryck F5 detta kan be dig att spara programmet och sedan kommer att lansera det.
Styrande LED med Python och Arduino:
Arbetet med detta projekt är ganska enkelt. Ladda upp programmet till din Arduino och kontrollera att det är anslutet till samma COM-port som nämns i pythonprogrammet. Starta sedan Python-programmet som nämnts ovan.
Detta startar ett pythonskalskript som visas nedan. Fönstret till vänster är skalfönstret som visar utdata och fönstret till höger är skriptet som visar programmet.
Som du kan se strängen ”Hej !, jag är Arduino” som matats in i Arduino-programmet tas emot av Python och visas i dess skalfönster.
När skalfönstret frågar om att ange värden kan vi ange antingen 0 eller 1. Om vi skickar 1 tänds lysdioden på Arduino-kortet och om vi skickar 0 släcks lysdioden på vårt Arduino-kort. Visar en framgångsrik anslutning mellan vårt Arduino-program och Python.
Det finns två program nedan, ett som ska laddas upp och köras från Arduino och det andra ska köras från Python Shell i Windows.
Hoppas att du förstod projektet och lyckades få det att fungera. Om inte, skicka ditt problem i kommentaren nedan så hjälper jag dig gärna. I vårt nästa projekt kommer vi att lära oss vad mer som kan göras coolt med Python och Arduino genom att utforska djupt in i andra pythonmoduler som Vpython, gamepython etc. Fram tills dess håll dig uppdaterad….