- Forutsetninger:
- Installere VPython på datamaskinen din:
- Programmering av VPython:
- Gjør Arduino klar:
- Jobber:
I vår forrige opplæring lærte vi hvordan du installerer python på Windows-maskinen vår og hvordan du kan grensesnitt Arduino med python ved hjelp av et enkelt LED-kontrollprosjekt. Hvis du er ny, vil jeg sterkt anbefale deg å falle tilbake til forrige opplæring, siden denne opplæringen er en fortsettelse av den samme.
Du har kanskje allerede begynt å lure på hvorfor vi trenger python med Arduino hvis alt det bare kan kommunisere over seriell port. Men Python er en veldig sterk utviklingsplattform der mange kule applikasjoner der maskinlæring, datasyn og mye mer kan integreres. I denne opplæringen lærer vi hvordan vi kan lage et lite grafisk grensesnitt ved hjelp av Python. For å gjøre dette trenger vi en modul som heter Vpython. Følgende veiledning gjelder bare for Windows-brukere, siden prosedyren er forskjellig for Mac- eller Linux-brukere.
På slutten av denne opplæringen vil vi lære hvordan vi kan lage enkel GUI ved hjelp av Python. Vi vil lage en liten animasjon som reagerer på verdien av ultralydsensoren som er festet til Arduino. Denne applikasjonen sporer objektet ved hjelp av ultralydsensor og viser det i grafisk form på datamaskinen ved hjelp av VPython. Når vi beveger objektet, registrerer ultralydssensoren avstanden og sender denne informasjonen til Python-programmet ved hjelp av Arduino, og den vil også flytte objektet i datamaskinen. Høres interessant ut! Så la oss komme i gang…
Forutsetninger:
- Arduino (hvilken som helst versjon)
- Ultralydssensor HC-SR04
- Koble ledninger
- Datamaskin med Python
- Kunnskap om forrige opplæring
Installere VPython på datamaskinen din:
I vår forrige opplæring har vi allerede lært hvordan du installerer python på maskinen din og hvordan du beveger deg rundt den og lager et enkelt program med Arduino. Nå har vi installert Visual Python (VPython) på toppen av dette slik at vi kan lage kule grafikk ved hjelp av Python for Arduino. For de enkle trinnene nedenfor for å komme i gang med VPython
Trinn 1. Forsikre deg om at Python allerede er installert i henhold til tidligere retningslinjer for opplæringen.
Trinn 2. Klikk på VPython for å laste ned exe-filen for Visual Python. Ikke velg å installere en 64-biters versjon selv om maskinen din kjører på 64-bit. Bare følg lenken gitt.
Trinn 3. Start exe-filen og følg installasjonen. Ikke endre standard katalogbane og sørg for at du har valgt “full installasjon”.
Trinn 4. Når du er installert, bør du finne et nytt program med navnet “VIDLE (VPython)” på skrivebordet eller applikasjonspanelet som vist nedenfor.
Trinn 5. Start applikasjonen, og du skal få et vindu som vist nedenfor.
Trinn 6. Dette er vinduet der vi skal skrive inn programmet for VPython. Men, for nå, la oss sjekke om Vpython fungerer ved å åpne et eksempelprogram. For å gjøre dette velger du File-> Open-> Bounce
Trinn 7. Du bør få åpnet et eksempelprogram. Prøv å starte programmet ved hjelp av Run -> Run Module . Hvis alt fungerer som forventet, bør du få følgende skjerm.
Du skal se Shell-vinduet (til venstre) med to >>> som indikerer vellykket kompilering og det faktiske vinduet (foran) som viser en ball som spretter.
Trinn 8. Du kan også prøve andre eksempelprogrammer for å oppdage kraften til VPython, for eksempel vil eksempelprogrammet kalt “elektrisk motor” forbløffe deg av følgende skjermbilde.
Trinn 9. Dette betyr at VPython er klar til bruk, og at du kan falle ned til " Programmering av Vpython " -emnet .
Trinn 10. Ellers hvis du er som en av de mange som får en "numpy Error", må du ikke miste håpet for at vi vil ordne problemet i de videre trinnene.
Trinn 11. Åpne Min datamaskin -> C-stasjon -> Python 27 -> Skript -> local.bat . Dette vil starte en ledetekst som vist nedenfor
Trinn 12. Skriv nå “pip install --upgrade numpy” og trykk enter. Den nye versjonen av Numpy skal installeres på maskinen din. Du må kanskje vente en stund hvis internettforbindelsen er treg.
Trinn 13. Når du er ferdig kan du falle tilbake til trinn 4 og prøve et eksempelprogram, og du skal kunne få det til å fungere.
Programmering av VPython:
Deretter begynner vi å programmere inn i VPython-vinduet. I dette programmet vil vi lage to 3D-rektangulære objekter, en vil bli plassert i midten av skjermen med referanse til den stasjonære ultralydssensoren, og den andre vil være på et dynamisk sted basert på avstanden mellom den amerikanske sensoren og objektet (papir).
Den komplette Python-koden finner du på slutten av denne siden. Lenger ned har jeg forklart denne pythonkoden ved å dele dem opp i små meningsfulle klynger.
Den første linjen ville være å importere det visuelle biblioteket slik at vi kan lage 3D-objekter. Linjen nedenfor gjør det samme.
fra visuell import *
Du bør være kjent med de neste fire linjene, siden vi har brukt dem allerede i vår forrige opplæring. De brukes til å importere serie- og tidsbibliotek og opprette også en seriell forbindelse med Arduino på COM18 med 9600 som baudrate
importer seriell #Serie importert for seriell kommunikasjon importtid #Krever å bruke forsinkelsesfunksjoner ArduinoSerial = seriell.Serie ('com18', 9600) # Opprett seriell portobjekt kalt arduinoSerialData time.sleep (2) # vent i 2 sekunder for kommunikasjonen til bli etablert
Nå er det på tide å lage objekter. Jeg har laget to 3d-rektangler kalt obj og vegg. Den walll er en stasjonær vegg i cyanfarge plassert i sentrum av skjermen og den obj er den bevegelige gjenstand i hvit farge. Jeg har også plassert en tekst “US sensor” nær veggobjektet.
obj = boks (pos = (- 5,0,0), størrelse = (0,1,4,4), farge = farge. hvit) veggL = boks (pos = (- 1,0,0), størrelse = (0,2), 12,12), farge = color.cyan) tekst (tekst = 'US sensor', akse = (0,1,0), pos = (- 2, -6,0), dybde = -0,3, farge = color.cyan)
Jeg er sikker på at de ovennevnte tre linjene ville ha dukket opp som gresk og latin for de fleste første gangs lesere, men med tiden ville du være i stand til å forstå det. Alt som er nevnt i parentes er (x, y, z) koordinater. Og disse koordinatene ligner veldig på dem vi finner i videregående geometri-klasse som vist nedenfor.
Nå er grafikk- og serieporten klar, alt vi trenger å gjøre er å lese dataene og plassere “obj” (hvitt rektangel) på et sted i henhold til dataene som kommer fra Arduino. Dette kan gjøres med følgende linjer, der obj.pos.x styrer X-koordinatposisjonen til objektet (hvitt rektangel).
t = int (ArduinoSerial.readline ()) #les seriell data og skriv den ut som linje t = t * 0,05 obj.pos.x = t
Gjør Arduino klar:
Python-skriptet er klart til å lytte etter verdier fra COM-porten og animere grafikken deretter, men Arduino er ikke klar ennå. Først må vi koble ultralydssensoren til Arduino i henhold til følgende kretsdiagram. Hvis du er helt ny med amerikansk sensor og Arduino, må du falle tilbake til Arduino & Ultrasonic Sensor Based Distance Measuring tutorial.
Last deretter opp Arduino-programmet gitt på slutten av denne siden. Programmet forklares selv ved hjelp av kommentarlinjer. Vi vet at ultralydssensoren fungerer ved å beregne tiden det tar for pulsen å treffe et objekt og komme tilbake. Denne verdien beregnes ved bruk av PulseIn- funksjonen i Arduino. Senere konverteres tiden tatt til avstand ved hjelp av linjen nedenfor.
dist = (timetaken / 2) / 2.91;
Her beregnes avstanden i millimeter (mm).
Jobber:
Arbeidet med prosjektet er enkelt. Start Python-programmet og legg et objekt foran den amerikanske sensoren som vist nedenfor:
Start nå pythonprogrammet, og du skal kunne legge merke til at det hvite rektangelet beveger seg sammen med papiret ditt, avstanden mellom papiret og sensoren vil også vises i skallvinduet som vist i bildet nedenfor.
Slik kan vi spore objektets bevegelse ved hjelp av ultralydsensor og Python med Arduino.
Håper du forsto prosjektet og likte å bygge et. Dette er bare et subtilt skritt mot python, men du kan bygge mye mer kreative ting ved å bruke dette. Hvis du har noen ide om hva du skal bygge med dette, legg dem inn i kommentarseksjonen og bruk forumene for teknisk hjelp. Se deg med et annet interessant python-prosjekt.