Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man programmerar och styr en Arduino med Python

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

Det finns ingen bättre känsla än att kombinera två coola 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 dock är möjligt är direkt kontroll över USB med hjälp av ett Python-program.

Den här artikeln kommer att visa dig hur du ställer in 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 även 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 dubbla gör-det-själv-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 inom mikrokontrollervärlden hjälper vår nybörjarguide till Arduino dig att få allt på plats.

Anslut ditt Arduino-kort och öppna IDE. Se till att du har valt rätt kort och port i Verktyg meny. Ladda upp StandardFirmata 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 din tavla 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 webbplatsen Python Software Foundation. Om du vill köra flera versioner av Python, kommer vår guide till Python virtuella miljöer att kunna hjälpa dig.

Relaterad  Pebble vs. Apple Watch: Om det smartaste marknadsföringsbeslutet 2015, hittills

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 kommer att ta upp detta fönster:

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, klicka på ny och lägg 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 OK tillbaka ner i kedjan av fönster, 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 bra 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ängligt för nedladdning från github, men du kan installera det direkt från kommandoraden genom att skriva:

pip install pyfirmata

Allt är bra bör 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 inställt, och du kan skapa ett Python-program för din Arduino för att testa det. Öppna en IDE som du väljer. Vi kommer att använda Eclipse 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 blink.py. Genom att bryta traditionen med det vanliga blinkande LED-programmet, kommer du att skapa ett program som frågar användaren om hur många gånger de vill att LED-lampan 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 dela upp det.

Relaterad  Nytt högeffektläge i macOS Monterey kommer bara att få en 16-tums MacBook Pro med ett M1 Max-chip

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

from pyfirmata import Arduino, util
import time

Nu vill du ställa in Arduino-brädet. Den här artikeln förutsätter att du använder en Arduino Uno board, även om flera andra Arduino-brädor stöds. Se pyFirmata github för detaljer om bordssupport.

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

board = Arduino("COM3")

Nu ska du ställa in användarprompten. De som är bekanta med Python kommer att känna igen allt här. Du skriver ut en fråga på skärmen med hjälp av inmatning funktion och lagra svaret som en variabel. När användaren har angett ett nummer, rapporterar programmet tillbaka hur många gånger lysdioden kommer att blinka.

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 indraget, eftersom till skillnad från andra språk är mellanslagen 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 kommer att kasta loopTimes variabel till ett heltal här, eftersom indata från användaren automatiskt lagras som en sträng. I denna enkla demo antar vi att användaren matar in ett numeriskt värde. Varje annan post som “åtta” kommer att ge ett fel.

Spara ditt skript och öppna Kommandotolken.

Blinkande ljus och andra uppenbarelser

Allt är klart, allt du behöver göra är att navigera till var skriptet finns och köra det. Gör detta genom att skriva CD [path to the script’s directory] och sedan skriva python blink.py.

Om allt är bra, kommer ditt program att starta med en liten fördröjning när Arduino initieras, uppmanar dig att ange ett nummer och sedan blinka det många gånger med den inbyggda lysdioden.

Relaterad  Xiaomi går med i topp 500 av de största företagen i världen

Programutgången 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.

Små början

Det här projektet har varit en barbensstart 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, speciellt om du gillar Python-programmeringsspråket.

Om du använder en Linux-server hemma, kan den här metoden att kommunicera med Arduino-kort utöka den servern till ett fullfjädrat DIY Home Automation-system. Genom att kombinera Python-skript som styr mikrokontrollern med en gör-det-själv-automatiseringskrets kan din NAS-lagringsbox ta sig an en helt ny uppsättning användbara funktioner.

För att göra det till den ultimata gör-det-själv-upplevelsen, varför inte bygga din egen NAS-box och använda den för att också styra dina apparater? Föreställ dig hur coolt det skulle vara att trycka på play på din Plex-server och låta lamporna stängas av automatiskt!

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

Om författaren

Ian Buckley (220 publicerade artiklar)

Ian Buckley är en frilansjournalist, musiker, artist och videoproducent bosatt i Berlin, Tyskland. När han inte skriver eller står på scen, pysslar han med DIY-elektronik eller kod i hopp om att bli en galen vetenskapsman.

Mer från Ian Buckley

Prenumerera på vårt nyhetsbrev

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

Klicka här för att prenumerera

Table of Contents