- Förutsättningar:
- Installera VPython på din dator:
- Programmering av VPython:
- Gör din Arduino redo:
- Arbetssätt:
I vår tidigare handledning lärde vi oss hur man installerar python på vår Windows-maskin och hur man gränssnitt Arduino med python med ett enkelt LED-kontrollprojekt. Om du är ny skulle jag starkt rekommendera att du faller tillbaka till föregående handledning eftersom den här självstudien är en fortsättning på densamma.
Du kanske redan har börjat undra varför vi skulle behöva python med Arduino om allt det kunde göra är att bara kommunicera via seriell port. Men Python är en mycket stark utvecklingsplattform där många coola applikationer där maskininlärning, datasyn och mycket mer kan integreras. I den här handledningen lär vi oss hur vi kan skapa ett litet grafiskt gränssnitt med Python. För att göra detta behöver vi en modul som heter Vpython. Följande handledning gäller endast för Windows-användare eftersom för Mac- eller Linux-användare är proceduren annorlunda.
I slutet av denna handledning lär vi oss hur vi kan skapa enkel GUI med Python. Vi kommer att göra en liten animation som svarar på värdet på ultraljudssensorn som är ansluten till Arduino. Den här applikationen spårar objektet med hjälp av ultraljudssensor och visar det i grafisk form på datorn med VPython. När vi flyttar objektet känner ultraljudssensorn avståndet och skickar denna information till Python-programmet med hjälp av Arduino och det kommer också att flytta objektet i datorn. Låter intressant rätt! Så låt oss komma igång…
Förutsättningar:
- Arduino (valfri version)
- Ultraljudsensor HC-SR04
- Anslutande ledningar
- Dator med Python
- Kunskap om tidigare handledning
Installera VPython på din dator:
I vår tidigare handledning har vi redan lärt oss hur man installerar python på din maskin och hur man rör sig och skapar ett enkelt program med Arduino. Nu har vi installerat Visual Python (VPython) ovanpå detta så att vi kan skapa cool grafik med Python för Arduino. För de enkla stegen nedan för att komma igång med VPython
Steg 1. Se till att Python redan är installerat enligt tidigare handledning.
Steg 2. Klicka på VPython för att ladda ner exe-filen för Visual Python. Välj inte att installera en 64-bitarsversion även om din maskin körs på 64-bitars. Följ bara länken.
Steg 3. Starta exe-filen och följ installationen. Ändra inte standardkatalogvägen och se till att du har valt "fullständig installation".
Steg 4. När du väl har installerat bör du hitta ett nytt program med namnet “VIDLE (VPython)” på skrivbordet eller applikationspanelen som visas nedan.
Steg 5. Starta applikationen och du ska få ett fönster som visas nedan.
Steg 6. Detta är fönstret där vi kommer att skriva in programmet för VPython. Men låt oss för närvarande kontrollera om Vpython fungerar genom att öppna ett exempelprogram. För att göra detta väljer du Arkiv-> Öppna-> Studs
Steg 7. Du bör få ett exempelprogram öppnat. Försök starta programmet med Run -> Run Module . Om allt fungerar som förväntat bör du få följande skärm.
Du bör se Shell-fönstret (vänster) med två >>> som indikerar framgångsrik kompilering och det faktiska fönstret (fram) som visar en boll studsande.
Steg 8. Du kan också prova andra exempelprogram för att upptäcka kraften hos VPython, till exempel kommer exempelprogrammet som kallas "elmotor" att förvåna dig av följande skärm.
Steg 9. Detta innebär att din VPython är redo att användas och du kan falla ner till avsnittet " Programmera din Vpython ".
Steg 10. Annars om du är som en bland många som får ett "dumt fel" tappar inte hoppet för vi kommer att reda ut problemet i de ytterligare stegen
Steg 11. Öppna Min dator -> C-enhet -> Python 27 -> Skript -> local.bat . Detta kommer att starta en kommandotolk som visas nedan
Steg 12. Skriv nu “pip install --upgrade numpy” och tryck på enter. Den nya versionen av Numpy ska installeras på din maskin. Du kan behöva vänta en stund om din internetanslutning är långsam.
Steg 13. När du är klar kan du falla tillbaka till steg 4 och prova ett exempelprogram och du bör kunna få det att fungera.
Programmering av VPython:
Därefter börjar vi programmera i vårt VPython-fönster. I det här programmet skapar vi två 3D-rektangulära objekt, en kommer att placeras i mitten av skärmen med referens till den stationära ultraljudssensorn och den andra kommer att vara på en dynamisk plats baserat på avståndet mellan den amerikanska sensorn och objektet (papper).
Den fullständiga Python-koden finns i slutet av denna sida. Längre ner har jag förklarat den här pythonkoden genom att dela dem i små meningsfulla munkar.
Den första raden skulle vara att importera det visuella biblioteket så att vi kan skapa 3D-objekt. Raden nedan gör detsamma.
från visuell import *
Du bör vara bekant med de kommande fyra raderna, eftersom vi har använt dem redan i vår tidigare handledning. De används för att importera serie- och tidsbibliotek och upprättar också en seriell anslutning med Arduino vid COM18 med 9600 som baudrat
importera serie # Serien importerad för seriell kommunikation importtid # Krävs för att använda fördröjningsfunktioner ArduinoSerial = seriell. Seriell ('com18', 9600) # Skapa serieportobjekt som kallas arduinoSerialData time.sleep (2) # vänta i 2 sekunder för kommunikationen till bli etablerad
Nu är det dags att skapa objekt. Jag har skapat två 3d-rektanglar som heter obj och wall. Den walll är en stationär vägg i cyan färg placeras i centrum av skärmen och den obj är det rörliga objektet i vit färg. Jag har också placerat en text "US-sensor" nära väggobjektet.
obj = låda (pos = (- 5,0,0), storlek = (0,1,4,4), färg = färg. vit) wallL = låda (pos = (- 1,0,0), storlek = (0,2), 12,12), color = color.cyan) text (text = 'US sensor', axel = (0,1,0), pos = (- 2, -6,0), djup = -0,3, color = färg.cyan)
Jag är säker på att de tre ovanstående raderna skulle ha verkat som grekiska och latinska för de flesta första läsarna, men med tiden skulle du kunna förstå det. Allt som nämns inom parentes är (x, y, z) koordinater. Och dessa koordinater är mycket lika de som vi hittar i vår gymnasiegeometri klass som visas nedan.
Nu är grafik- och serieporten redo allt vi behöver göra är att läsa data och placera “obj” (vit rektangel) på en plats enligt data som kommer från Arduino. Detta kan göras med följande rader, där obj.pos.x styr X-koordinatpositionen för objektet (vit rektangel).
t = int (ArduinoSerial.readline ()) #läs seriell data och skriv ut den som rad t = t * 0,05 obj.pos.x = t
Gör din Arduino redo:
Python-skriptet är redo att lyssna på värden från COM-porten och animera grafiken därefter, men vår Arduino är inte redo än. Först måste vi ansluta ultraljudssensorn till Arduino enligt följande kretsschema. Om du är helt ny inom amerikansk sensor och Arduino måste du falla tillbaka till Arduino & Ultrasonic Sensor Based Distance Measuring tutorial.
Ladda sedan upp Arduino-programmet som ges i slutet av denna sida. Programmet förklaras själv med hjälp av kommentarer. Vi vet att ultraljudssensorn fungerar genom att beräkna den tid det tar för pulsen att träffa ett objekt och återvända. Detta värde beräknas med hjälp av PulseIn- funktionen i Arduino. Senare konverteras tiden som tas till avstånd med hjälp av nedanstående rad.
dist = (tidsplan / 2) / 2.91;
Här beräknas avståndet i millimeter (mm).
Arbetssätt:
Projektets arbete är enkelt. Starta Python-programmet och placera ett objekt framför den amerikanska sensorn enligt nedan:
Starta nu pythonprogrammet och du bör kunna märka att den vita rektangeln rör sig tillsammans med ditt papper, avståndet mellan ditt papper och sensorn kommer också att visas i skalfönstret som visas i bilden nedan.
Så här kan vi spåra objektets rörelse med hjälp av ultraljudssensor och Python med Arduino.
Hoppas att du förstod projektet och gillade att bygga ett. Detta är bara ett subtilt steg mot python men du kan bygga mycket mer kreativa saker med hjälp av detta. Om du har någon aning om vad du ska bygga med det här, lägg dem i kommentarsektionen och använd forumen för teknisk hjälp. Vi ses med ett annat intressant python-projekt.