Iepriekšējā apmācībā mēs uzzinājām, kā instalēt pitonu mūsu Windows datorā un kā saskarni Arduino ar pitonu, izmantojot vienkāršu LED vadības projektu. Ja esat jauns, es iesaku jums atgriezties pie iepriekšējās apmācības, jo šī apmācība ir tās pašas turpinājums.
Jūs, iespējams, jau esat sākuši domāt, kāpēc mums būtu vajadzīgs pitons ar Arduino, ja viss, ko tas varētu darīt, ir vienkārši sazināties pa seriālo portu. Tomēr Python ir ļoti spēcīga izstrādes platforma, kurā var integrēt daudz foršu lietojumprogrammu, kurās var integrēt mašīnmācīšanos, datorizāciju un daudz ko citu. Šajā apmācībā mēs uzzināsim, kā mēs varam izveidot nelielu grafisko saskarni, izmantojot Python. Lai to izdarītu, mums būs nepieciešams modulis ar nosaukumu Vpython. Šī apmācība ir piemērojama tikai Windows lietotājiem, jo Mac vai Linux lietotājiem procedūra ir atšķirīga.
Šīs apmācības beigās mēs uzzināsim, kā mēs varam izveidot vienkāršu GUI, izmantojot Python. Mēs izveidosim nelielu animāciju, kas reaģē uz Arduino piestiprinātā ultraskaņas sensora vērtību. Šī lietojumprogramma izseko objektu, izmantojot ultraskaņas sensoru, un parāda to grafiskā formā datorā, izmantojot VPython. Kad mēs pārvietojam objektu, ultraskaņas sensors uztver attālumu un nosūta šo informāciju Python programmai, izmantojot Arduino, un tas pārvietos objektu arī datorā. Izklausās interesanti labi! Tāpēc ļaujiet sākt darbu…
Priekšnosacījumi:
- Arduino (jebkura versija)
- Ultraskaņas sensors HC-SR04
- Vadu savienošana
- Dators ar Python
- Zināšanas par iepriekšējo apmācību
VPython instalēšana datorā:
Mūsu iepriekšējā apmācībā mēs jau esam iemācījušies, kā datorā instalēt python un kā pārvietoties tajā un izveidot vienkāršu programmu ar Arduino. Tagad mums papildus ir instalēts Visual Python (VPython), lai mēs varētu izveidot foršu grafiku, izmantojot Python for Arduino. Lai sāktu darbu ar VPython, veiciet tālāk norādītās vienkāršās darbības
1. solis. Pārliecinieties, vai Python jau ir instalēts atbilstoši iepriekšējām apmācības vadlīnijām.
2. solis. Noklikšķiniet uz VPython, lai lejupielādētu Vise Python exe failu. Neizvēlieties instalēt 64 bitu versiju, pat ja jūsu iekārta darbojas ar 64 bitu versiju. Vienkārši sekojiet norādītajai saitei.
3. solis. Palaidiet exe failu un izpildiet iestatīšanu. Nemainiet noklusējuma direktorijas ceļu un pārliecinieties, vai esat izvēlējies “pilna instalācija”.
4. solis. Pēc instalēšanas darbvirsmā vai lietojumprogrammas panelī jāatrod jauna lietojumprogramma ar nosaukumu “VIDLE (VPython)”, kā parādīts zemāk.
5. solis. Palaidiet lietojumprogrammu, un jums vajadzētu iegūt logu, kā parādīts zemāk.
6. solis. Šis ir logs, kurā mēs rakstīsim VPython programmā. Bet tagad pārbaudīsim, vai Vpython darbojas, atverot programmas paraugu. Lai to izdarītu, atlasiet File-> Open-> Bounce
7. solis. Jums vajadzētu atvērt atvērtu programmas paraugu. Mēģiniet palaist programmu, izmantojot Run -> Run Module . Ja viss darbojas kā paredzēts, jums jāiegūst šāds ekrāns.
Jums vajadzētu redzēt Shell logu (pa kreisi) ar diviem >>>, kas norāda veiksmīgu kompilāciju, un faktisko logu (priekšā), kurā redzama bumbas atlēciens.
8. solis. Varat arī izmēģināt citas programmas, lai atklātu VPython spēku, piemēram, programma ar nosaukumu “elektromotors” pārsteigs jūs ar nākamo ekrānu.
9. solis. Tas nozīmē, ka jūsu VPython ir gatavs lietošanai un jūs varat noklikšķināt uz tēmas “ Vpython programmēšana ”.
10. solis. Citādi, ja jūs esat viens no daudzajiem, kas saņem “numpy kļūdu” , nezaudējiet cerību, ka mēs šo problēmu atrisināsim turpmākajās darbībās
11. solis. Atveriet Mans dators -> C disks -> Python 27 -> Skripti -> local.bat . Tas palaidīs komandu uzvedni, kā parādīts zemāk
12. solis. Tagad ierakstiet “pip install --upgrade numpy” un nospiediet taustiņu Enter. Jaunajai Numpy versijai vajadzētu būt instalētai jūsu datorā. Iespējams, kādu laiku būs jāgaida, ja interneta savienojums ir lēns.
13. solis. Kad tas ir izdarīts, jūs varat atgriezties pie 4. soļa un izmēģināt piemēru programmai, un jums vajadzētu būt iespējai to darbināt.
VPython programmēšana:
Tālāk mēs sākam programmēt mūsu VPython logā. Šajā programmā mēs izveidosim divus 3D taisnstūrveida objektus, viens tiks ievietots ekrāna centrā, atsaucoties uz stacionāro ultraskaņas sensoru, un otrs atradīsies dinamiskā vietā, pamatojoties uz attālumu starp ASV sensoru un objektu (papīru).
Pilnīga Python kodu var atrast beigās šajā lapā. Tālāk es esmu izskaidrojis šo pitona kodu, sadalot tos mazos nozīmīgos džungļos.
Pirmā rinda būtu vizuālās bibliotēkas importēšana, lai mēs varētu izveidot 3D objektus. Zemāk esošā līnija dara to pašu.
no vizuālā importa *
Jums vajadzētu būt pazīstamam ar nākamajām četrām rindiņām, jo mēs tās esam izmantojuši jau iepriekšējā apmācībā. Tos izmanto, lai importētu sērijas un laika bibliotēku, kā arī izveido sērijveida savienojumu ar Arduino pie COM18 ar 9600 kā ātrumu
importēt sērijas # sēriju, kas importēta sērijveida sakaru importēšanas laikam # Nepieciešams izmantot aizkaves funkcijas ArduinoSerial = sērijas.Serial ('com18', 9600) # Izveidot sērijas porta objektu ar nosaukumu arduinoSerialData time.sleep (2) #gaidiet 2 sekundes, lai sazinātos ar izveidojies
Tagad ir pienācis laiks izveidot objektus. Esmu izveidojis divus 3D taisnstūrus, kas nosaukti par obj un wall. WallL ir stacionārs siena ciāna krāsā novietots centrā ekrāna, un obj ir pārvietojams objekts baltā krāsā. Pie sienas objekta esmu ievietojis arī tekstu “ASV sensors”.
obj = lodziņš (pos = (- 5,0,0), izmērs = (0,1,4,4), krāsa = krāsa. balta) siena L = lodziņš (pos = (- 1,0,0), izmērs = (0,2), 12,12), color = color.cyan) text (text = 'ASV sensors', ass = (0,1,0), pos = (- 2, -6,0), dziļums = -0,3, krāsa = krāsa. ciāna)
Esmu pārliecināts, ka iepriekš minētās trīs rindas lielākoties pirmo reizi lasītājiem būtu parādījušās grieķu un latīņu valodā, taču ar laiku jūs to spētu saprast. Viss, kas minēts iekavās, ir (x, y, z) koordinātas. Šīs koordinātas ir ļoti līdzīgas tām, kuras mēs atrodam mūsu vidusskolas ģeometrijas klasē, kā parādīts zemāk.
Tagad grafiskais un seriālais ports ir gatavs, un viss, kas mums jādara, ir nolasīt datus un ievietot “obj” (balto taisnstūri) atbilstoši datiem, kas nāk no Arduino. To var izdarīt ar šādām rindām, kur obj.pos.x kontrolē objekta X koordinātu pozīciju (balts taisnstūris).
t = int (ArduinoSerial.readline ()) #lasiet sērijas datus un izdrukājiet tos kā līniju t = t * 0,05 obj.pos.x = t
Arduino sagatavošana:
Python skripts ir gatavs klausīties vērtības no COM porta un attiecīgi animēt grafiku, taču mūsu Arduino vēl nav gatavs. Vispirms mums ir jāpievieno ultraskaņas sensors ar Arduino saskaņā ar šo shēmu. Ja jūs esat pilnīgi jauns ASV sensoru un Arduino lietošanai, jums jāatgriežas pie Arduino un ultraskaņas sensoru bāzes attāluma mērīšanas apmācības.
Pēc tam augšupielādējiet šīs lapas beigās norādīto Arduino programmu. Programma ir pašsaprotama, izmantojot komentāru rindiņas. Mēs zinām, ka ultraskaņas sensors darbojas, aprēķinot laiku, kas vajadzīgs, lai impulss trāpītu objektā un atgrieztos atpakaļ. Šo vērtību aprēķina, izmantojot PulseIn funkciju Arduino. Vēlāk patērētais laiks tiek pārveidots par attālumu, izmantojot zemāk esošo līniju.
dist = (plānotais / 2) / 2,91;
Šeit attālumu aprēķina milimetros (mm).
Darbs:
Projekta darbība ir vienkārša. Palaidiet programmu Python un novietojiet objektu pirms ASV sensora, kā parādīts zemāk:
Tagad palaidiet programmu python, un jums vajadzētu būt iespējai pamanīt, kā baltais taisnstūris pārvietojas kopā ar jūsu papīru, attālums starp papīru un sensoru tiks parādīts arī čaulas logā, kā parādīts zemāk esošajā attēlā.
Šādi mēs varam izsekot objekta kustībai, izmantojot Ultraskaņas sensoru un Python ar Arduino.
Ceru, ka sapratāt projektu un patika to uzcelt. Tas ir tikai viens smalks solis ceļā uz pitonu, taču, izmantojot šo, jūs varat izveidot daudz radošākas lietas. Ja jums ir ideja par to, ko veidot, ievietojiet tos komentāru sadaļā un izmantojiet forumus tehniskai palīdzībai. Uz tikšanos ar citu interesantu pitona projektu.