- Potrebni materiali:
- Namestitev Pythona v računalnik:
- Pridobivanje PySerial v Pythonu:
- Naš prvi program Arduino Python:
- Upravljanje LED s Pythonom in Arduinom:
Arduino je bil vedno odlična in enostavna platforma za učenje / razvoj, ko gre za razvoj odprtokodne strojne opreme. V sodobnem svetu vsako strojno opremo poganja visokokakovostni programski jezik za splošno rabo, da postane učinkovitejša in uporabniku prijaznejša. Takšen jezik je Python. Python je interpretiran, objektno usmerjen programski jezik na visoki ravni z dinamično semantiko z visoko vgrajenimi podatkovnimi strukturami, v kombinaciji z dinamičnim tipkanjem in dinamično vezavo pa je zelo privlačen za hiter razvoj aplikacij.
Združevanje moči Arduino in Python se bodo odprla vrata za veliko možnosti, saj ima piton povečano produktivnost z njegovo sposobnost za interakcijo z drugimi platformami, kot so openCV, Matlab itd.. Torej, v tem Tutorial bomo naučiti , kako se lahko namesti pitona na našem računalniku in kako ga uporabljati z Arduinom za vklop vgrajene LED diode Arduino.
Torej, začnimo….
Potrebni materiali:
- Arduino Uno (ali katere koli plošče Arduino)
- Računalnik z internetno povezavo
Namestitev Pythona v računalnik:
Očitno bi bil prvi korak v tej vadnici namestitev Pythona v naš računalnik. Spodaj navedeni koraki veljajo samo za uporabnike sistema Windows z 32-bitnim ali 64-bitnim OS. Namestitveni postopek za MAC in Linux je drugačen.
- Kliknite 32-bitni Python-2.7.9 in to bo namestilo 32-bitni Python IDLE v vaš računalnik. Ne prenašajte 64-bitne različice ali posodobljenih različic, ker ne nudijo podpore za naše knjižnice Arduino. Tudi če vaš računalnik deluje na 64-bitni različici, lahko uporabite 32-bitni Python.
- Odprite preneseno datoteko exe in sledite navodilom. Ne spreminjajte imenika, v katerem se namešča python. Privzeto bo C: \ Python27 in ga pusti kot takega.
- Med namestitvijo boste morda dobili opozorilo protivirusnega programa (če obstaja), v tem primeru kliknite dovoli.
To je to !, python je uspešno nameščen v našem računalniku. Preverite ga lahko tako, da v iskalnem polju Windows poiščete »Python IDLE« in ga odprete.
Ko se odpre, se prikaže naslednji zaslon. To okno se imenuje lupina Python in odslej ga bomo imenovali » lupina Python «.
Ta zaslon se imenuje lupina Python. Tu lahko neposredno kodirate in dobite izhodne podatke na istem zaslonu ali ustvarite novo datoteko in tam napišite program in tukaj preverite program. Kasneje bomo prešli v podrobnosti ustvarjanja programa python, za zdaj preverimo, ali python deluje.
Če želite to narediti, preprosto vnesite » print (1 + 1) « in pritisnite enter. Rezultat bi se moral natisniti, kot je prikazano spodaj.
Pridobivanje PySerial v Pythonu:
Naslednji korak je namestitev pyserial. PySerial je modul API Python, ki se uporablja za branje in zapisovanje serijskih podatkov v Arduino ali kateri koli drug mikrokrmilnik.
Kliknite Pyserial Windows, da naložite PySerial. Nastali prenos bo datoteka exe, ki jo je mogoče neposredno namestiti. Med namestitvijo ne spreminjajte nobene nastavitve. Prepustite privzetemu imeniku in privzetim nastavitvam.
Zdaj pa preverimo, ali je PySerial pravilno nameščen. Če želite to narediti, znova odprite Python Shell in vnesite
uvozi serijsko . Če je bila knjižnica uspešno nameščena, ne bi smeli prejemati sporočil o napakah, kot je prikazano na spodnji sliki. Če pride do kakršnih koli napak, jih objavite v oddelku za komentarje in jih bomo poskusili odpraviti.
Ta vadnica predpostavlja, da poznate Arduino in imate izkušnje z nalaganjem projektov v Arduino. Pojdimo torej neposredno v naš program Python. Če ste začetnik Arduina, si oglejte naše Arduino projekte in začnite z LED utripanjem z Arduino.
Naš prvi program Arduino Python:
Kot smo že omenili, bomo vgrajeno LED ploščo Arduino nadzirali s pomočjo skripta Python. Začnimo s kodo Arduino.
Program za Arduino:
Celoten program za to vadnico za Arduino python je podan na koncu te strani. Preberite še, če želite vedeti, kako deluje.
Znotraj nastavitvene funkcije inicializiramo serijsko komunikacijo s hitrostjo 9600 baudov in izjavimo, da bomo vgrajeni led uporabljali kot izhod in ga med zagonom programa nizko postavili. Pythonu smo poslali tudi pozdravno sporočilo s serijskim tiskom, kot je prikazano spodaj:
void setup () {Serial.begin (9600); // inicializiramo serijski COM na 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // naredimo zatič LED (13) kot izhod digitalWrite (LED_BUILTIN, LOW); Serial.println ("Živijo! Jaz sem Arduino"); }
Znotraj funkcije zanke beremo podatke, ki serijsko prihajajo, in spremenljivki "data" dodelimo vrednost . Zdaj na podlagi vrednosti te spremenljivke (»podatki«) preklopimo vgrajeni led, kot je prikazano spodaj.
void loop () {while (Serial.available ()) {data = Serial.read (); } if (data == '1') digitalWrite (LED_BUILTIN, HIGH); sicer if (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Program za Python:
Celoten program python za to vadnico je podan na koncu te strani. Nadaljujte, če želite vedeti, kako pisati in uporabljati isto
- Odprite lupino Python (Python IDLE) in kliknite Datoteka-> Novo
- Odprla se bo nova besedilna datoteka, kamor lahko vnesete svoj program.
- Preden karkoli vtipkamo, shranimo datoteko s Ctrl + S. Vnesite poljubno ime in kliknite shrani. S tem boste datoteko samodejno shranili v pripono.py.
- Zdaj vnesite program ali prilepite kodo pythona, navedeno na koncu te strani. Razlaga za isto je podana spodaj in končno zaženite program.
V našem programu bi bil prvi korak uvoz serijske in časovne knjižnice. Kot smo že omenili, bo serijska knjižnica uporabljena za branje in zapisovanje serijskih podatkov, časovna knjižnica pa za ustvarjanje zamud v našem programu. Ti dve knjižnici lahko v naš program uvozite v naslednjih dveh vrsticah:
import serial #Serial uvožen za čas uvoza serijske komunikacije #Za uporabo funkcij zakasnitve
Naslednji korak bi bil inicializiranje serijskega predmeta z uporabo naše serijske knjižnice. V tem programu smo svoj serijski objekt poimenovali "ArduinoSerial" . V tej vrstici moramo omeniti ime vrat COM, na katera je povezan naš Arduino, in s hitrostjo prenosa podatkov, kot je prikazano spodaj.
ArduinoSerial = serial.Serial ('com18', 9600)
Opomba: Zelo pomembno je omeniti pravilno ime vrat COM. Najdete ga lahko z upraviteljem naprav v računalniku.
Takoj, ko je serijski objekt inicializiran, bi morali dve sekundi držati program, da se vzpostavi serijska komunikacija. To lahko storite s spodnjo vrstico:
čas.spa (2)
Zdaj lahko beremo ali pišemo kar koli iz / na našo ploščo Arduino.
V naslednji vrstici bo prebrano vse, kar prihaja iz Arduina, in natisnjeno na okno lupine
natisni ArduinoSerial.readline ()
Vrednost lahko dodelite tudi spremenljivki in jo uporabite za izračune.
V naslednjo vrstico bo vrednost parametra zapisana na Arduino Board.
ArduinoSerial.write ('1')
Ta vrstica bo Arduinu napisala '1'. Z isto vrstico lahko v nize pošljete karkoli od decimalk.
Zdaj, ko se vrnemo k našemu programu, znotraj neskončne zanke while imamo naslednje vrstice
var = raw_input () #get input from user print "ste vnesli", var #print vnesite za potrditev, če (var == '1'): # če je vrednost 1 ArduinoSerial.write ('1') #send 1 print ("LED vklopljena") time.sleep (1) if (var == '0'): # če je vrednost 0 ArduinoSerial.write ('0') #send 0 print ("LED OFF OFF") čas.spanje (1)
Vrstica var = raw_input bo dobila katero koli vrednost, ki jo vtipkate v skriptu lupine in to vrednost dodeli spremenljivki var .
Kasneje, če je vrednost 1, bo serijsko v Arduino natisnil '1', če pa 0, pa v Arduino serijsko '0'. Kodo v našem programu Arduino (o kateri smo razpravljali zgoraj) bomo preklopili LED glede na prejeto vrednost.
Ko končate celoten program, mora biti vaš skript videti spodaj približno tako
Zdaj kliknite Zaženi -> Zaženi modul ali pritisnite F5, da boste morda morali shraniti program in ga nato zagnati.
Upravljanje LED s Pythonom in Arduinom:
Delovanje tega projekta je precej enostavno. Naložite program na svoj Arduino in preverite, ali je povezan z istimi vrati COM, kot je omenjeno v programu python. Nato zaženite program Python, kot je omenjeno zgoraj.
S tem se bo zagnal skript lupine python, kot je prikazano spodaj. Okno na levi je okno lupine, ki prikazuje izhod, okno na desni pa skript, ki prikazuje program.
Kot lahko vidite, niz »Zdravo! Jaz sem Arduino«, vnesen v program Arduino, Python prejme in prikaže v oknu lupine.
Ko okno lupine zahteva vnos vrednosti, lahko vnesemo bodisi 0 bodisi 1. Če pošljemo 1, se LED na plošči Arduino vklopi in če pošljemo 0, se LED na plošči Arduino izklopi. Prikaz uspešne povezave med našim programom Arduino in Pythonom.
Obstajata dva programa navedeno spodaj, eden je treba naložiti in zagnati iz Arduino in drugi, je treba teči od Python Shell v operacijskem sistemu Windows.
Upam, da ste projekt razumeli in ste ga lahko sprožili. V nasprotnem primeru objavite težavo v komentarju spodaj in z veseljem vam bom pomagal. V našem naslednjem projektu bomo izvedeli, kaj vse je mogoče narediti kul s Pythonom in Arduinom z raziskovanjem globoko v druge pythonove module, kot so Vpython, gamepython itd. Do takrat pa spremljajte….