V prejšnji vadnici smo se naučili, kako namestiti python na naš računalnik z operacijskim sistemom Windows in kako povezati Arduino s pythonom z uporabo enostavnega projekta nadzora LED. Če ste novi, vam toplo priporočam, da se vrnete na prejšnjo vadnico, saj je ta vadnica nadaljevanje iste.
Morda ste se že začeli spraševati, zakaj bi potrebovali python z Arduinom, če bi le lahko komuniciral prek serijskih vrat. Toda Python je zelo močna razvojna platforma, v katero je mogoče vključiti veliko kul aplikacij, v katere je mogoče vključiti strojno učenje, računalniški vid in še veliko več. V tej vadnici bomo izvedeli, kako lahko z Pythonom ustvarimo majhen grafični vmesnik. Za to bomo potrebovali modul z imenom Vpython. Naslednja vadnica velja samo za uporabnike operacijskega sistema Windows, saj je za uporabnike Mac ali Linux postopek drugačen.
Na koncu te vaje bomo izvedeli, kako lahko z uporabo Pythona ustvarimo preprost GUI. Naredili bomo majhno animacijo, ki se odziva na vrednost ultrazvočnega senzorja, ki je pritrjen na Arduino. Ta aplikacija sledi predmetu z uporabo ultrazvočnega senzorja in ga v grafični obliki prikaže v računalniku z uporabo VPython. Ko premikamo predmet, ultrazvočni senzor zazna razdaljo in te podatke pošlje v program Python s pomočjo Arduina in bo premaknil tudi predmet v računalniku. Sliši se zanimivo, kajne! Začnimo torej…
Predpogoji:
- Arduino (katera koli različica)
- Ultrazvočni senzor HC-SR04
- Povezovanje žic
- Računalnik s Pythonom
- Znanje o prejšnjih vajah
Namestitev VPython v računalnik:
V prejšnji vadnici smo se že naučili, kako namestiti python na vaš računalnik in kako se premikati po njem ter ustvariti preprost program z Arduino. Zdaj smo na to namestili še Visual Python (VPython), tako da lahko z uporabo Pythona za Arduino ustvarimo kul grafiko. Za spodnje preproste korake za začetek uporabe VPython
1. korak. Prepričajte se, da je Python že nameščen v skladu s prejšnjimi navodili za vadnico.
Korak 2. Kliknite VPython, da prenesete datoteko exe za Visual Python. Ne odločite se za namestitev 64-bitne različice, tudi če vaša naprava deluje na 64-bitni različici. Samo sledite navedeni povezavi.
3. korak. Zaženite datoteko exe in sledite nastavitvam. Ne spreminjajte privzete poti do imenika in se prepričajte, da ste izbrali »popolno namestitev«.
4. korak. Po namestitvi bi morali na namizju ali podoknu z aplikacijami najti novo aplikacijo z imenom »VIDLE (VPython)«, kot je prikazano spodaj.
5. korak. Zaženite aplikacijo in dobili boste okno, kot je prikazano spodaj.
Korak 6. To je okno, v katerem bomo tipkali v program za VPython. Za zdaj pa preverimo, ali Vpython deluje, tako da odpremo primer programa. Če želite to narediti, izberite File-> Open-> Bounce
Korak 7. Morali bi odpreti primer programa. Poskusite zagnati program s pomočjo Run -> Run Module . Če vse deluje po pričakovanjih, dobite naslednji zaslon.
Videli bi okno školjke (levo) z dvema >>>, ki označujeta uspešno sestavljanje in dejansko okno (spredaj), ki prikazuje odskočno kroglo.
Korak 8. Lahko poskusite tudi z drugimi primeri programov, da odkrijete moč VPythona, na primer primer z imenom "elektromotor" vas bo osupnil na naslednjem zaslonu.
Korak 9. To pomeni, da je vaš VPython pripravljen za uporabo in lahko preidete na temo » Programiranje vašega Vpythona «.
10. korak. V nasprotnem primeru, če ste kot eden izmed mnogih, ki dobijo "numpy napako" , ne izgubite upanja, saj bomo to težavo uredili v nadaljnjih korakih
11. korak. Odprite Moj računalnik -> Pogon C -> Python 27 -> Skripti -> local.bat . S tem se zažene ukazni poziv, kot je prikazano spodaj
12. korak. Zdaj vnesite »pip install --upgrade numpy« in pritisnite enter. Nova različica Numpy naj se namesti na vaš računalnik. Če je internetna povezava počasna, boste morda morali počakati nekaj časa.
Korak 13. Ko končate, se lahko vrnete na korak št. 4 in preizkusite primer programa, ki bi ga lahko zagotovil.
Programiranje VPython:
Nato začnemo programirati v okno VPython. V tem programu bomo ustvarili dva 3D pravokotna predmeta, eden bo postavljen na sredino zaslona glede na stacionarni ultrazvočni senzor, drugi pa na dinamičnem mestu glede na razdaljo med ameriškim senzorjem in predmetom (papir).
Popolna Python kodo lahko najdete na koncu te strani. Spodaj sem razložil to kodo pythona, tako da sem jih razdelil na majhne pomembne smeti.
Prva vrstica bi bila uvoz vizualne knjižnice, da lahko ustvarimo 3D predmete. Spodnja vrstica naredi enako.
iz vizualnega uvoza *
Naslednje štiri vrstice bi morali poznati, saj smo jih uporabili že v prejšnji vadnici. Uporabljajo se za uvoz serijske in časovne knjižnice ter vzpostavijo serijsko povezavo z Arduino na COM18 s 9600 kot baudrate
import serial #Serial import for Serial communication time time #Required to use delay functions ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial port object called arduinoSerialData time.sleep (2) # cakati 2 secounds to the communication to se uveljavi
Zdaj je čas za ustvarjanje predmetov. Ustvaril sem dva 3d pravokotnika, imenovana obj in wall. WallL je stacionarna stena v cian barvi postavljen na sredini zaslona in obj je premičen objekt v beli barvi. V bližini predmeta na steni sem postavil tudi besedilo »ameriški senzor«.
obj = škatla (pos = (- 5,0,0), velikost = (0,1,4,4), barva = barva.bela) stena L = škatla (pos = (- 1,0,0), velikost = (0,2, 12,12), barva = color.cyan) besedilo (text = 'ameriški senzor', os = (0,1,0), pos = (- 2, -6,0), globina = -0,3, color = color.cyan)
Prepričan sem, da bi bile zgornje tri vrstice za večino bralcev prvič videti grško in latinsko, vendar bi jih sčasoma lahko razumeli. Vse, kar je omenjeno v oklepajih, je (x, y, z) koordinate. In te koordinate so zelo podobne tistim, ki jih najdemo pri našem srednješolskem pouku geometrije, kot je prikazano spodaj.
Zdaj so grafična in serijska vrata pripravljena. Vse, kar moramo storiti, je, da preberemo podatke in postavimo “obj” (beli pravokotnik) na mesto v skladu s podatki, ki prihajajo iz Arduina. To lahko naredite v naslednjih vrsticah, kjer obj.pos.x nadzoruje X-koordinatni položaj predmeta (beli pravokotnik).
t = int (ArduinoSerial.readline ()) # preberite serijske podatke in jih natisnite kot vrstico t = t * 0,05 obj.pos.x = t
Priprava vašega Arduina:
Skript Python je pripravljen poslušati vrednosti iz vrat COM in ustrezno animirati grafiko, vendar naš Arduino še ni pripravljen. Najprej moramo ultrazvočni senzor priključiti na Arduino v skladu z naslednjim vezjem. Če ste popolnoma novi v ameriškem senzorju in Arduinu, se morate vrniti na vadnico za merjenje razdalje na osnovi senzorjev Arduino in ultrazvočni sistem.
Nato naložite program Arduino, naveden na koncu te strani. Program je sam razložen z uporabo vrstic za komentarje. Vemo, da ultrazvočni senzor deluje tako, da izračuna čas, potreben pulzu, da zadene predmet in se vrne nazaj. Ta vrednost se izračuna z uporabo funkcije PulseIn v Arduinu . Kasneje se porabljeni čas pretvori v razdaljo s pomočjo spodnje vrstice.
dist = (zajeto / 2) / 2,91;
Tu se razdalja izračuna v milimetrih (mm).
Delo:
Delo projekta je preprosto. Zaženite program Python in postavite predmet pred ameriškim senzorjem, kot je prikazano spodaj:
Zdaj zaženite program python in opazili boste, kako se beli pravokotnik premika skupaj s papirjem, razdalja med papirjem in senzorjem pa bo prikazana tudi v oknu lupine, kot je prikazano na spodnji sliki.
Tako lahko sledimo gibanju predmeta z uporabo ultrazvočnega senzorja in Pythona z Arduinom.
Upam, da ste projekt razumeli in ste uživali pri njegovi izdelavi. To je le en subtilen korak k pythonu, vendar lahko s tem ustvarite veliko več kreativnih stvari. Če imate kakšno idejo, kaj zgraditi s tem, jih objavite v oddelku za komentarje in uporabite forume za tehnično pomoč. Se vidimo z drugim zanimivim projektom python.