Hur man programmerar och styr en Arduino med Python

Hur man programmerar och styr en Arduino med Python

Python har tagit kodningsvärlden med storm. Vid sidan av uppkomsten av detta nya språk har DIY -elektronikscenen också blomstrat. Utvecklingskort och enstaka datorer från företag som Arduino och Raspberry Pi har förändrat hur människor skapar hembryggd elektronik. Vore det inte fantastiskt om du kunde programmera en Arduino med Python?





bärbar hårddisk dyker inte upp

Det finns ingen bättre känsla än att kombinera två häftiga saker. Tyvärr är det omöjligt att direkt programmera en Arduino med Python, eftersom brädorna inte har något alternativ för inbyggd tolkning av språket. Det som är möjligt är dock direkt kontroll över USB med ett Python -program.





Den här artikeln visar dig hur du konfigurerar en Arduino UNO (även om alla Arduino -kompatibla kort kan fungera här) för att programmeras och styras från kommandoraden med Python -program. Denna handledning är skriven för Windows 10, men fungerar också för Mac och Linux. Du kan till och med använda detta arbetsflöde för att styra en Arduino direkt från en Raspberry Pi för den ultimata dubbel-ner-DIY-upplevelsen.





Konfigurera din Arduino för Python

För dagens projekt kommer vi att använda en Arduino Uno, tillsammans med pyFirmata -gränssnittet för Python. Du kan använda nästan alla Arduino-kompatibla kort för detta, men i skrivande stund stöds endast Arduino Uno, Mega, Due och Nano av pyFfirmata-gränssnittet. Om du redan är en Python -guru kan du lägga till ditt eget styrelsestöd till pyFirmata - se till att uppdatera deras GitHub om du gör det!

Om du inte redan har gjort det, installera Arduino IDE. Om du är helt ny i världen av mikrokontroller, vår nybörjarguide till Arduino hjälper dig att få allt på plats.



Anslut ditt Arduino -kort och öppna IDE. Se till att du har rätt kort och port valt i Verktyg meny. Ladda upp Standard Firmata exempelskiss och ladda upp den till tavlan. Detta gör att du kan styra Arduino direkt så länge den är ansluten till datorn via USB. Förutsatt att skissen laddas upp till ditt bräde utan några fel är du redo att gå vidare.

Python och kommandoradskontroll

Vi kommer att använda Python 3.4 för att styra vår Arduino, eftersom modulen du kommer att installera anger detta som den senaste kompatibla versionen. Alla versioner före detta borde fungera bra, och senare versioner har rapporterats fungera. Du kan ladda ner Python 3.4 för Windows 10 från Python Software Foundation webbplats. Om du vill köra flera versioner av Python kan vår guide till virtuella miljöer i Python hjälpa dig.





När du har installerat Python vill vi lägga till den i ditt systems PATH -variabel. Detta låter oss köra Python -kod direkt från kommandoraden utan att behöva vara i katalogen den installerades i. Du kan göra detta genom att öppna Kontrollpanel , söker efter Miljö och klicka på Redigera systemmiljövariablerna . Välj längst ned i fönstret Miljövariabler . Detta öppnar det här fönstret:

Om du redan ser VÄG i listan, klicka på redigera och lägg till din Pytonorm och Python/skript katalog. Om du inte har en PATH -variabel klickar du på ny och lägger till den. Observera att Python installerades direkt i C: här. Om du installerade det någon annanstans måste du ändra det för att återspegla detta. Klicka på OK igen i fönsterkedjan, och du är nästan redo att styra din Arduino med Python!





Det magiska fettet

Du behöver en sista pusselbit för att få Python att prata snyggt med vår Arduino. Detta kommer i form av ett Python -gränssnitt som kallas pyFirmata . Detta gränssnitt, skapat av Tino de Bruijn är tillgänglig för nedladdning från github, men du kan installera det direkt från kommandoraden genom att skriva:

pip install pyfirmata

Allt bra ska det installeras och se ut så här:

Om det misslyckas, gå över att lägga till Python till Miljöfaktor och se till att du har gett rätt sökväg till din Python -katalog.

Att få det att hända

Nu är allt klart och du kan skapa ett Python -program för din Arduino för att testa det. Öppna en IDE efter eget val. Vi kommer att använda Förmörkelse idag, men du kan lika gärna använda vilken textredigerare som helst, eller till och med en IDE i molnet.

Skapa ett nytt skript och spara det som blinka. py . Bryter tradition med standard blinkande LED -program, kommer du att skapa ett program som uppmanar användaren hur många gånger de vill att lysdioden ska blinka innan den utförs. Det är ett kort program, som du kan ladda ner här om du vill komma direkt till det, men låt oss bryta ner det.

För det första vill du importera det du behöver från pyFirmata modul, tillsammans med standard Python Tid modul.

som följer mig på facebook -appen
from pyfirmata import Arduino, util
import time

Nu vill du konfigurera Arduino -kortet. Denna artikel förutsätter att du använder en Arduino uno kort, även om flera andra Arduino -kort stöds. Se pyFirmata github för mer information om styrelsen.

Kontrollera vilken COM -port du använder i Arduino IDE och ange den i din kod som variabel styrelse .

board = Arduino('COM3')

Nu ställer du in användarprompten. De som känner till Python kommer att känna igen allt här. Du skriver ut en fråga till skärmen med inmatning funktion och lagra svaret som en variabel. När användaren har angett ett nummer rapporterar programmet hur många gånger lysdioden blinkar.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

För att få lysdioden att blinka rätt antal gånger använder du en för slinga . Om du är ny på Python , var försiktig med indragningen, eftersom till skillnad från andra språk är mellanslag en del av syntaxen. Observera att stift 13 är den inbyggda lysdioden för Arduino Uno, du måste ändra detta om ditt kort är annorlunda.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Du kastar loopTimes variabel till ett heltal här, eftersom input från användaren automatiskt lagras som en sträng. I denna enkla demo antar vi att användaren kommer att mata in ett numeriskt värde. Varje annan post som 'åtta' kommer att ge ett fel.

Spara skriptet och öppna Kommandotolken .

Blinkande lampor och andra uppenbarelser

Allt är klart, allt du behöver göra är att navigera till var manuset är och köra det. Gör detta genom att skriva cd [sökväg till skriptets katalog] och sedan skriva python blink.py .

Allt bra kommer ditt program att börja med en liten fördröjning när Arduino initierar, uppmanar dig till ett nummer och sedan blinkar så många gånger med den inbyggda lysdioden.

Programutmatningen ska se ut så här:

Så snart du trycker på enter efter ditt valda antal blinkningar bör Arduino utföra dina beställningar.

Liten början

Detta projekt har varit en barebones start för att kommunicera mellan Python och ett Arduino -kort. Detta tillvägagångssätt skiljer sig mycket från det vanliga arbetsflödet för att ladda upp skript till Arduino själv, men det öppnar ett helt nytt sätt att arbeta med plattformen, särskilt om du gillar programmeringsspråket Python.

Om du använder en Linux -server hemma kan den här metoden för att kommunicera med Arduino -kort förlänga den servern till ett fullfjädrat DIY Home Automation -system. Genom att kombinera Python -skript som styr mikrokontrollen med en DIY -automationskrets kan din NAS -lagringsbox ta en helt ny uppsättning användbara funktioner.

hur laddar man ner musik gratis

För att göra det till den ultimata DIY -upplevelsen, varför inte bygg din egen NAS -box och använda den för att även styra dina apparater? Tänk vad häftigt det skulle vara att trycka på play på din Plex -server och få lamporna att släcka sig automatiskt!

Kontrollerar du redan Arduino med Python? Finns det fantastiska lösningar som vi bara inte vet om ännu? Låt oss veta i kommentarsfältet nedan!

Dela med sig Dela med sig Tweet E-post 5 tips för att ladda dina VirtualBox Linux -maskiner

Trött på den dåliga prestanda som erbjuds av virtuella maskiner? Här är vad du bör göra för att öka din VirtualBox -prestanda.

Läs Nästa
Relaterade ämnen
  • DIY
  • Programmering
  • Arduino
  • Hemautomation
  • Pytonorm
Om författaren Ian Buckley(216 artiklar publicerade)

Ian Buckley är frilansjournalist, musiker, artist och videoproducent som bor i Berlin, Tyskland. När han inte skriver eller på scenen, pysslar han med DIY -elektronik eller kod i hopp om att bli en galet forskare.

Mer från Ian Buckley

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera