- Nødvendige materialer:
- Installation af Python på din computer:
- Sådan får du PySerial i Python:
- Vores første Arduino Python-program:
- Styring af LED med Python og Arduino:
Arduino har altid været en stærk og en nem at bruge lærings / udviklingsplatform, når det kommer til open source hardwareudvikling. I nutidens moderne verden er enhver hardware drevet af et højt niveau programmeringssprog til generelle formål for at gøre det mere effektivt og brugervenligt. Et sådant sprog er Python. Python er et fortolket, objektorienteret programmeringssprog på højt niveau med dynamisk semantik med højt niveau indbygget datastrukturer kombineret med dynamisk typning og dynamisk binding gør det meget attraktivt for hurtig applikationsudvikling.
At kombinere kraften fra Arduino og Python åbner døre for mange muligheder, da python har en øget produktivitet med sin evne til at interagere med andre platforme som openCV, Matlab osv. Så i denne vejledning lærer vi, hvordan vi kan installere python på vores computer og hvordan man bruger det med Arduino til at skifte Arduinos indbyggede LED.
Så lad os komme i gang….
Nødvendige materialer:
- Arduino Uno (eller ethvert Arduino Board)
- Computer med internetforbindelse
Installation af Python på din computer:
Det første trin i denne vejledning ville naturligvis være at installere Python på vores computer. De nævnte trin gælder kun for Windows-brugere, der kører enten 32-bit eller 64-bit OS. Installationsproceduren for MAC og Linux er forskellig.
- Klik på 32-bit Python-2.7.9, og dette vil installere 32-bit Python IDLE på din computer. Download ikke 64-bit versionen eller opdaterede versioner, da de ikke yder support til vores Arduino Libraries. Selvom din computer fungerer på 64-bit, kan du bruge 32-bit Python selv.
- Åbn den downloadede exe-fil, og følg instruktionerne. Du må ikke ændre den mappe, hvor python bliver installeret. Det vil være C: \ Python27 som standard og lade det være som sådan.
- Mens installationen finder sted, kan du muligvis få en advarsel fra din antivirus (hvis nogen) i så fald klik på tillad.
Det er det !, python er installeret med succes på vores computer. Du kan bekræfte det ved at søge efter "Python IDLE" i Windows- søgefeltet og åbne det.
Når du åbner, skal du få følgende skærmbillede. Dette vindue kaldes Python Shell, og vi vil henvise til det som " Python shell " fra nu af.
Denne skærm kaldes Python Shell. Du kan direkte kode ind her og få output på samme skærm eller oprette en ny fil og skrive programmet der og kontrollere programmet her. Vi kommer senere ind i detaljerne i oprettelsen af et pythonprogram, lad os nu kontrollere, om python fungerer.
For at gøre det skal du blot skrive “ print (1 + 1) ” og trykke på enter. Du bør se resultatet blive udskrevet som vist nedenfor.
Sådan får du PySerial i Python:
Det næste trin er at installere pyserial. PySerial er et Python API-modul, der bruges til at læse og skrive serielle data til Arduino eller andre Microcontroller.
Klik på Pyserial Windows for at downloade PySerial. Den resulterende download vil være en exe-fil, som kan installeres direkte. Du må ikke ændre nogen indstillinger under installationen. Overlad det til standardkataloget og standardindstillingerne.
Lad os nu kontrollere, om PySerial er installeret korrekt. For at gøre dette skal du åbne Python Shell igen og skrive
importer serie . Hvis biblioteket blev installeret med succes, skulle du ikke modtage nogen fejlmeddelelser som vist på billedet nedenfor. Hvis du får fejl, skal du sende dem i kommentarsektionen, og vi vil prøve at løse det.
Denne vejledning forudsætter, at du er fortrolig med Arduino og har erfaring i at uploade projekter til Arduino. Så lad os springe direkte ind i vores Python-program. Hvis du er nybegynder med Arduino, skal du tjekke vores Arduino-projekter og starte fra LED blinker med Arduino.
Vores første Arduino Python-program:
Som tidligere nævnt styrer vi den indbyggede Arduino-kort-LED ved hjælp af Python-script. Lad os starte med Arduino-koden.
Program til Arduino:
Det komplette program til denne Arduino-python-tutorial gives i slutningen af denne side. Læs videre for at vide, hvordan det fungerer.
Inde i opsætningsfunktionen initialiserer vi den serielle kommunikation ved 9600 baudhastighed og erklærer, at vi bruger den indbyggede led som output og sænker den lav under programstart. Vi har også sendt en velkomstbesked til python via serieudskrivning som vist nedenfor:
ugyldig opsætning () {Serial.begin (9600); // initialiser seriel COM ved 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // lav LED-stiften (13) som output digitalWrite (LED_BUILTIN, LOW); Serial.println ("Hej! Jeg er Arduino"); }
Inde i loop- funktionen læser vi uanset hvilke data der kommer ind serielt og tildeler værdien til variablen "data". Baseret på værdien af denne variabel (“data”) skifter vi nu den indbyggede led som vist nedenfor.
ugyldig sløjfe () {mens (Serial.available ()) {data = Serial.read (); } hvis (data == '1') digitalWrite (LED_BUILTIN, HIGH); ellers hvis (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Program til Python:
Det komplette pythonprogram til denne tutorial gives i slutningen af denne side. Læs videre for at vide, hvordan man skriver og bruger det samme.
- Åbn din Python Shell (Python IDLE), og klik på Filer-> Ny
- Dette åbner en ny tekstfil, hvor du kan skrive dit program.
- Før vi skriver noget, kan vi gemme filen ved at Ctrl + S. Indtast et hvilket som helst navn, og klik på Gem. Dette gemmer automatisk din fil i ".py" -udvidelsen.
- Indtast nu programmet, eller indsæt den pythonkode, der er angivet i slutningen af denne side. Forklaringen på det samme er givet nedenfor og kør endelig programmet.
I vores program ville det første trin være at importere serie- og tidsbiblioteket. Serielbiblioteket som tidligere nævnt vil blive brugt til at læse og skrive serielle data, og tidsbiblioteket vil blive brugt til at skabe forsinkelser i vores program. Disse to biblioteker kan importeres i vores program ved hjælp af følgende to linjer:
import seriel #Serie importeret til seriel kommunikation importtid # Kræves for at bruge forsinkelsesfunktioner
Det næste trin ville være at initialisere et serielt objekt ved hjælp af vores serielle bibliotek. I dette program har vi navngivet vores serielle objekt som “ArduinoSerial” . I denne linje skal vi nævne navnet på COM-porten, som vores Arduino er tilsluttet, og med hvilken baudhastighed den fungerer som vist nedenfor.
ArduinoSerial = serial.Serial ('com18', 9600)
Bemærk: Det er meget vigtigt at nævne det korrekte COM-portnavn. Det kan findes ved hjælp af Enhedshåndtering på din computer.
Så snart det serielle objekt initialiseres, skal vi holde programmet i to sekunder, før den serielle kommunikation oprettes. Dette kan gøres ved hjælp af nedenstående linje:
time.sleep (2)
Nu kan vi læse eller skrive noget fra / til vores Arduino Board.
Den følgende linje vil læse alt, hvad der kommer fra Arduino og udskrive det på skalvinduet
udskriv ArduinoSerial.readline ()
Du kan også tildele værdien til en variabel og bruge den til beregninger.
Den følgende linje skriver værdien af parameteren til Arduino Board.
ArduinoSerial.write ('1')
Denne linje vil skrive '1' til Arduino. Du kan sende alt fra decimaler til strenge ved hjælp af samme linje.
Nu, når vi kommer tilbage til vores program, inden i den uendelige while-loop, har vi følgende linjer
var = raw_input () #get input fra brugerudskrivning "du indtastede", var #print input for bekræftelse, hvis (var == '1'): # hvis værdien er 1 ArduinoSerial.write ('1') #send 1 print ("LED tændt") time.sleep (1) hvis (var == '0'): # hvis værdien er 0 ArduinoSerial.write ('0') #send 0 print ("LED slukket") tid.sove (1)
Linjen var = raw_input får enhver værdi, der er skrevet i Shell-scriptet og tildeler denne værdi til variablen var .
Senere, hvis værdien er 1, udskrives den '1' serielt til Arduino, og hvis 0 den udskriver '0' serielt til Arduino. Koden i vores Arduino-program (diskuteret ovenfor) vi skifter LED baseret på den modtagne værdi.
Når det komplette program er færdigt, skal dit script se sådan ud nedenfor
Klik nu på Kør -> Kør modul, eller tryk på F5, dette kan bede dig om at gemme programmet og derefter starte det.
Styring af LED med Python og Arduino:
Arbejdet med dette projekt er ret ligetil. Upload programmet til din Arduino og kontroller, at det er tilsluttet den samme COM-port som nævnt i python-programmet. Start derefter Python-programmet som nævnt ovenfor.
Dette starter et python shell-script som vist nedenfor. Vinduet til venstre er skalvinduet, der viser output, og vinduet til højre er scriptet, der viser programmet.
Som du kan se strengen "Hej !, jeg er Arduino", der er indtastet i Arduino-programmet, modtages af Python og vises i dets shell-vindue.
Når shell-vinduet beder om at indtaste værdier, kan vi indtaste enten 0 eller 1. Hvis vi sender 1, tændes lysdioden på Arduino Board, og hvis vi sender 0, slukkes LED'en på vores Arduino Board. Viser en vellykket forbindelse mellem vores Arduino-program og Python.
Der er to programmer angivet nedenfor, det ene skal uploades og køres fra Arduino, og det andet skal køres fra Python Shell i Windows.
Håber du forstod projektet og var i stand til at få det til at fungere. Hvis ikke, skal du sende dit problem i kommentaren nedenfor, så hjælper jeg dig gerne. I vores næste projekt lærer vi, hvad der ellers kan gøres sejt med Python og Arduino ved at udforske dybt ind i andre python-moduler som Vpython, gamepython osv. Indtil da skal du holde øje med….