- Forudsætninger:
- Installation af VPython på din computer:
- Programmering af VPython:
- Gør din Arduino klar:
- Arbejder:
I vores tidligere vejledning lærte vi, hvordan man installerer python på vores Windows-maskine, og hvordan man grænseflade Arduino med python ved hjælp af et simpelt LED-kontrolprojekt. Hvis du er ny, vil jeg kraftigt anbefale dig at falde tilbage til den foregående tutorial, da denne tutorial er en fortsættelse af den samme.
Du er måske allerede begyndt at spekulere på, hvorfor vi har brug for python med Arduino, hvis alt, hvad det kunne gøre, er at kommunikere over seriel port. Men Python er en meget stærk udviklingsplatform, hvor en masse seje applikationer, hvor maskinindlæring, computersyn og meget mere kan integreres. I denne vejledning lærer vi, hvordan vi kan oprette en lille grafisk grænseflade ved hjælp af Python. For at gøre dette har vi brug for et modul kaldet Vpython. Følgende vejledning gælder kun for Windows-brugere, da proceduren er anderledes for Mac- eller Linux-brugere.
I slutningen af denne tutorial lærer vi, hvordan vi kan oprette enkel GUI ved hjælp af Python. Vi laver en lille animation, der reagerer på værdien af ultralydssensor, der er knyttet til Arduino. Denne applikation sporer objektet ved hjælp af ultralydssensor og viser det i grafisk form på computeren ved hjælp af VPython. Når vi bevæger objektet, registrerer ultralydssensoren afstanden og sender disse oplysninger til Python-programmet ved hjælp af Arduino, og det vil også flytte objektet i computeren. Lyder interessant lige! Så lad os komme i gang…
Forudsætninger:
- Arduino (enhver version)
- Ultralydssensor HC-SR04
- Tilslutning af ledninger
- Computer med Python
- Viden om tidligere tutorial
Installation af VPython på din computer:
I vores tidligere tutorial har vi allerede lært, hvordan du installerer python på din maskine, og hvordan du bevæger dig rundt om det og opretter et simpelt program med Arduino. Nu har vi installeret Visual Python (VPython) oven på dette, så vi kan oprette seje grafik ved hjælp af Python til Arduino. For de enkle trin nedenfor for at komme i gang med VPython
Trin 1. Sørg for, at Python allerede er installeret i henhold til tidligere retningslinjer for vejledning.
Trin 2. Klik på VPython for at downloade exe-filen til Visual Python. Vælg ikke at installere en 64-bit version, selvom din maskine kører på 64-bit. Følg bare det givne link.
Trin 3. Start exe-filen og følg opsætningen. Ændr ikke standardkatalogstien, og sørg for, at du har valgt “fuld installation”.
Trin 4. Når du er installeret, skal du finde et nyt program med navnet “VIDLE (VPython)” på dit skrivebord eller applikationspanel som vist nedenfor.
Trin 5. Start applikationen, og du skal få et vindue som vist nedenfor.
Trin 6. Dette er det vindue, hvor vi skriver i programmet til VPython. Men lad os nu kontrollere, om Vpython fungerer ved at åbne et eksempelprogram. For at gøre dette skal du vælge Filer-> Åbn-> Bounce
Trin 7. Du skal få et eksempel på et program åbnet. Prøv at starte programmet ved hjælp af Kør -> Kør modul . Hvis alt fungerer som forventet, skal du få følgende skærmbillede.
Du skal se Shell-vinduet (til venstre) med to >>>, der angiver en vellykket kompilering, og det faktiske vindue (foran), der viser en bold, der hopper.
Trin 8. Du kan også prøve andre eksempler på programmer for at opdage kraften i VPython, for eksempel vil eksempelprogrammet kaldet “elektrisk motor” forbløffe dig ved følgende skærmbillede.
Trin 9. Dette betyder, at din VPython er klar til brug, og at du kan falde ned til emnet " Programmering af din Vpython ".
Trin 10. Ellers hvis du er som en blandt de mange, der får en "numpy Error", skal du ikke miste håbet for vi vil ordne problemet i de yderligere trin
Trin 11. Åbn Min computer -> C-drev -> Python 27 -> Scripts -> local.bat . Dette starter en kommandoprompt som vist nedenfor
Trin 12. Skriv nu “pip install --upgrade numpy” og tryk på enter. Den nye version af Numpy skal installeres på din maskine. Du bliver muligvis nødt til at vente et stykke tid, hvis din internetforbindelse er langsom.
Trin 13. Når du er færdig, kan du falde tilbage til trin nummer 4 og prøve et eksempelprogram, og du skal kunne få det til at fungere.
Programmering af VPython:
Dernæst begynder vi programmering i vores VPython-vindue. I dette program opretter vi to 3D-rektangulære objekter, den ene placeres i midten af skærmen henvisning til den stationære ultralydssensor, og den anden vil være på et dynamisk sted baseret på afstanden mellem den amerikanske sensor og objektet (papir).
Den komplette Python-kode findes i slutningen af denne side. Længere nede har jeg forklaret denne pythonkode ved at opdele dem i små meningsfulde junks.
Den første linje ville være at importere det visuelle bibliotek, så vi kan oprette 3D-objekter. Nedenstående linje gør det samme.
fra visuel import *
Du skal være fortrolig med de næste fire linjer, da vi allerede har brugt dem i vores tidligere tutorial. De bruges til at importere serie- og tidsbibliotek og etablere også en seriel forbindelse med Arduino på COM18 med 9600 som baudrate
import seriel #Serie importeret til seriel kommunikation importtid #Krævet at bruge forsinkelsesfunktioner ArduinoSerial = seriel.Serie ('com18', 9600) # Opret seriel portobjekt kaldet arduinoSerialData time.sleep (2) # vent i 2 sekunder for kommunikationen til blive etableret
Nu er det tid til at oprette objekter. Jeg har oprettet to 3d-rektangler navngivet som obj og wall. Den walll er en stationær væg i cyan farve placeret i midten af skærmen og den obj er det bevægelige objekt i hvid farve. Jeg har også placeret en tekst "US sensor" nær væggen.
obj = kasse (pos = (- 5,0,0), størrelse = (0,1,4,4), farve = farve. hvid) wallL = kasse (pos = (- 1,0,0), størrelse = (0,2), 12,12), color = color.cyan) tekst (tekst = 'US sensor', akse = (0,1,0), pos = (- 2, -6,0), dybde = -0,3, color = color.cyan)
Jeg er sikker på, at de ovennævnte tre linjer ville have vist sig som græsk og latin for de fleste af de første læsere, men med tiden ville du være i stand til at forstå det. Alt, hvad der er nævnt inden for parenteser, er (x, y, z) koordinater. Og disse koordinater ligner meget dem, som vi finder i vores gymnasiumskole som vist nedenfor.
Nu er grafikken og den serielle port klar, alt hvad vi skal gøre er at læse dataene og placere “obj” (hvidt rektangel) et sted i henhold til dataene, der kommer fra Arduino. Dette kan gøres ved hjælp af følgende linjer, hvor obj.pos.x styrer objektets X-koordinatposition (Hvidt rektangel).
t = int (ArduinoSerial.readline ()) #læs serielle data og udskriv dem som linje t = t * 0,05 obj.pos.x = t
Gør din Arduino klar:
Python-scriptet er klar til at lytte efter værdier fra COM-porten og animere grafikken i overensstemmelse hermed, men vores Arduino er ikke klar endnu. Først skal vi forbinde ultralydssensoren til Arduino i henhold til følgende kredsløbsdiagram. Hvis du er helt ny med amerikansk sensor og Arduino, er du nødt til at falde tilbage til Arduino & Ultrasonic Sensor Based Distance Measuring tutorial.
Upload derefter Arduino-programmet, der er givet i slutningen af denne side. Programmet forklares selv ved hjælp af kommentarlinjer. Vi ved, at ultralydssensoren fungerer ved at beregne den tid, det tager for pulsen at ramme en genstand og vende tilbage. Denne værdi beregnes ved hjælp af PulseIn- funktionen i Arduino. Senere konverteres den taget tid til afstand ved hjælp af nedenstående linje.
dist = (timetaken / 2) / 2.91;
Her beregnes afstanden udtrykt i millimeter (mm).
Arbejder:
Arbejdet med projektet er enkelt. Start Python-programmet, og placer et objekt foran den amerikanske sensor som vist nedenfor:
Start nu python-programmet, og du skal være i stand til at bemærke, at det hvide rektangel bevæger sig sammen med dit papir, afstanden mellem dit papir og sensoren vises også i skalvinduet som vist i billedet nedenfor.
Sådan kan vi spore objektets bevægelse ved hjælp af ultralydssensor og Python med Arduino.
Håber du forstod projektet og nød at bygge et. Dette er kun et subtilt skridt mod python, men du kan bygge meget mere kreative ting ved hjælp af dette. Hvis du har nogen idé om, hvad du skal bygge med dette, skal du skrive dem i kommentarsektionen og bruge fora til teknisk hjælp. Vi ses med et andet interessant python-projekt.