În tutorialul nostru anterior am învățat cum să instalăm python pe computerul nostru Windows și cum să interfațăm Arduino cu python folosind un proiect simplu de control LED. Dacă sunteți nou, vă recomand cu tărie să reveniți la tutorialul anterior, deoarece acest tutorial este o continuare a aceluiași.
S-ar putea să fi început deja să vă întrebați de ce am avea nevoie de python cu Arduino dacă tot ceea ce ar putea face este să comunicăm pur și simplu prin portul serial. Dar, Python este o platformă de dezvoltare foarte puternică pe care pot fi integrate o mulțime de aplicații interesante în care învățarea automată, viziunea computerizată și multe altele. În acest tutorial vom afla cum putem crea o interfață grafică mică folosind Python. Pentru a face acest lucru, vom avea nevoie de un modul numit Vpython. Următorul tutorial este aplicabil numai pentru utilizatorii Windows, deoarece pentru utilizatorii Mac sau Linux, procedura este diferită.
La sfârșitul acestui tutorial vom afla cum putem crea GUI simplă folosind Python. Vom face o mică animație care să răspundă la valoarea senzorului cu ultrasunete care este atașat la Arduino. Această aplicație urmărește obiectul utilizând senzorul cu ultrasunete și îl afișează în formă grafică pe computer utilizând VPython. Pe măsură ce mutăm obiectul, senzorul cu ultrasunete detectează distanța și trimite aceste informații către programul Python folosind Arduino și va muta obiectul și în computer. Sună interesant, nu-i așa! Deci, să începem…
Cerințe prealabile:
- Arduino (Orice versiune)
- Senzor cu ultrasunete HC-SR04
- Conectarea firelor
- Computer cu Python
- Cunoștințe despre tutorialul anterior
Instalarea VPython pe computer:
În tutorialul nostru anterior am învățat deja cum să instalezi python pe mașina ta și cum să te miști în jurul ei și să creezi un program simplu cu Arduino. Acum avem instalat Visual Python (VPython) pe deasupra, astfel încât să putem crea grafică grozavă folosind Python pentru Arduino. Pentru pașii simpli de mai jos pentru a începe cu VPython
Pasul 1. Asigurați-vă că Python este deja instalat conform instrucțiunilor de tutorial anterioare.
Pasul 2. Faceți clic pe VPython pentru a descărca fișierul exe pentru Visual Python. Nu alegeți să instalați o versiune pe 64 de biți, chiar dacă aparatul dvs. rulează pe 64 de biți. Doar urmați linkul dat.
Pasul 3. Lansați fișierul exe și urmați configurarea. Nu modificați calea implicită a directorului și asigurați-vă că ați selectat „instalare completă”.
Pasul 4. Odată instalat, ar trebui să găsiți o nouă aplicație numită „VIDLE (VPython)” pe desktop sau pe panoul aplicației, așa cum se arată mai jos.
Pasul 5. Lansați aplicația și ar trebui să obțineți o fereastră așa cum se arată mai jos.
Pasul 6. Aceasta este fereastra în care vom scrie în programul pentru VPython. Dar, deocamdată, să verificăm dacă Vpython funcționează deschizând un exemplu de program. Pentru a face acest lucru, selectați Fișier-> Deschidere-> Bounce
Pasul 7. Ar trebui să deschideți un exemplu de program. Încercați să lansați programul utilizând Run -> Run Module . Dacă totul funcționează conform așteptărilor, ar trebui să obțineți următorul ecran.
Ar trebui să vedeți fereastra Shell (stânga) cu două >>> care indică compilarea reușită și fereastra reală (față) care arată o minge care sări.
Pasul 8. Puteți încerca și alte exemple de programe pentru a descoperi puterea VPython, de exemplu programul de exemplu numit „motor electric” vă va uimi prin următorul ecran.
Pasul 9. Aceasta înseamnă că VPython este gata de utilizare și puteți intra în subiectul „ Programarea Vpython ”.
Pasul 10. Altfel, dacă sunteți ca unul dintre mulți care primesc o „eroare numpy”, nu vă pierdeți speranța, pentru că vom rezolva problema în pașii următori
Pasul 11. Deschideți computerul meu -> Unitatea C -> Python 27 -> Scripturi -> local.bat . Aceasta va lansa un prompt de comandă așa cum se arată mai jos
Pasul 12. Acum tastați „pip install --upgrade numpy” și apăsați Enter. Noua versiune de Numpy ar trebui instalată pe computer. S-ar putea să trebuiască să așteptați ceva timp dacă conexiunea dvs. la internet este lentă.
Pasul 13. După ce ați terminat, puteți reveni la pasul nr. 4 și puteți încerca un exemplu de program și ar trebui să îl puteți funcționa.
Programare VPython:
Apoi începem programarea în fereastra noastră VPython. În acest program vom crea două obiecte dreptunghiulare 3D, unul va fi plasat în centrul ecranului cu referință la senzorul ultrasunet staționar și celălalt va fi într-o locație dinamică bazată pe distanța dintre senzorul SUA și obiect (hârtie).
Codul complet Python poate fi găsit la sfârșitul acestei pagini. Mai jos, am explicat acest cod python împărțindu-le în mici joncțiuni semnificative.
Prima linie ar fi importarea bibliotecii vizuale, astfel încât să putem crea obiecte 3D. Linia de mai jos face la fel.
din importul vizual *
Ar trebui să fiți familiarizați cu următoarele patru rânduri, deoarece le-am folosit deja în tutorialul nostru anterior. Acestea sunt folosite pentru importul seriei și bibliotecii de timp și, de asemenea, stabilesc o conexiune serială cu Arduino la COM18 cu 9600 ca baudrate
import serial #Serial importat pentru comunicare serial Timp de import # Necesar pentru a utiliza funcțiile de întârziere ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial port object called arduinoSerialData time.sleep (2) #wit for 2 secounds for the communication to stabiliți-vă
Acum, este timpul să creați obiecte. Am creat două dreptunghiuri 3d numite ca obiect și perete. WallL este un perete staționar în culoarea cyan plasată în centrul ecranului și obj este obiect mobil de culoare alba. De asemenea, am plasat un text „senzor SUA” lângă obiectul de pe perete.
obj = cutie (pos = (- 5,0,0), dimensiune = (0,1,4,4), culoare = culoare.alb) perete L = cutie (pos = (- 1,0,0), dimensiune = (0,2, 12,12), color = color.cyan) text (text = „senzor SUA”, ax = (0,1,0), pos = (- 2, -6,0), adâncime = -0,3, culoare = color.cyan)
Sunt sigur că cele trei rânduri de mai sus ar fi apărut ca greacă și latină pentru majoritatea primilor cititori, dar cu timpul ați fi capabil să o înțelegeți. Tot ceea ce este menționat în paranteze este (x, y, z) coordonate. Și aceste coordonate sunt foarte asemănătoare cu cele pe care le găsim în clasa noastră de geometrie din liceu, așa cum se arată mai jos.
Acum, grafica și portul serial sunt gata tot ce trebuie să facem este să citim datele și să plasăm „obj” (dreptunghi alb) într-un loc conform datelor provenite de la Arduino. Acest lucru se poate face prin următoarele linii, unde obj.pos.x controlează poziția coordonatei X a obiectului (dreptunghi alb).
t = int (ArduinoSerial.readline ()) #citește datele seriale și tipărește-le ca linie t = t * 0,05 obj.pos.x = t
Pregătirea Arduino:
Scriptul Python este gata să asculte valorile din portul COM și să animeze graficele în consecință, dar Arduino nu este încă pregătit. Mai întâi trebuie să conectăm senzorul cu ultrasunete la Arduino în conformitate cu următoarea diagramă a circuitului. Dacă sunteți complet nou în senzorul SUA și Arduino, atunci trebuie să vă întoarceți la tutorialul de măsurare a distanței bazate pe senzorul Arduino și ultrasonic.
Apoi încărcați programul Arduino dat la sfârșitul acestei pagini. Programul se explică de la sine folosind linii de comentarii. Știm că senzorul cu ultrasunete funcționează calculând timpul necesar pentru ca pulsul să lovească un obiect și să se întoarcă înapoi. Această valoare este calculată utilizând funcția PulseIn din Arduino. Mai târziu, timpul necesar este convertit în distanță folosind linia de mai jos.
dist = (timetaken / 2) / 2.91;
Aici distanța este calculată în termeni de milimetri (mm).
Lucru:
Funcționarea proiectului este simplă. Lansați programul Python și plasați un obiect înaintea senzorului SUA, așa cum se arată mai jos:
Acum lansați programul Python și ar trebui să puteți observa mișcarea dreptunghiului alb împreună cu hârtia dvs., distanța dintre hârtie și senzor va fi afișată și în fereastra shell, așa cum se arată în imaginea de mai jos.
Acesta este modul în care putem urmări mișcarea obiectului folosind senzorul cu ultrasunete și Python cu Arduino.
Sper că ați înțeles proiectul și v-a plăcut să construiți unul. Acesta este doar un pas subtil către Python, dar puteți construi multe lucruri mai creative folosind acest lucru. Dacă aveți idee despre ce să construiți cu acest post, postați-le în secțiunea de comentarii și folosiți forumurile pentru ajutor tehnic. Ne vedem cu un alt proiect piton interesant.