Hur man programmerar och kontrollerar en Arduino med Python

Tyvärr är det omöjligt att direkt programmera en Arduino i Python, men du kan styra den via USB med ett Python-program. Här är hur.

Tyvärr är det omöjligt att direkt programmera en Arduino i Python, men du kan styra den via USB med ett Python-program.  Här är hur.
Annons

Python har tagit den kodande världen med storm. Tillsammans med uppkomsten av detta nya språk har också DIY elektronik scenen blomstrat. Utvecklingsbrädor och enkeldrivna datorer från företag som Arduino Vad är Arduino och vad kan du göra med det? Vad är Arduino och vad kan du göra med det? Arduino är en anmärkningsvärd liten elektronik enhet, men om du aldrig har använt en tidigare, precis vad exakt är de, och vad kan du göra med en? Läs mer och Raspberry Pi Raspberry Pi: Den Inofficiella Tutorialen Raspberry Pi: Den Inofficiella Handledningen Om du är en nuvarande Pi-ägare som vill lära sig mer eller en potentiell ägare av denna kreditkortstorlek, är det här inte en guide du vill ha att sakna. Läs mer har förändrat hur människor skapar hemmabryggad elektronik. Skulle det inte vara fantastiskt om du kan programmera en Arduino med Python?

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

Den här artikeln kommer visa dig hur du ställer in en Arduino UNO (men någon Arduino-kompatibel bräda Arduino Köpguide: Vilken styrelse ska du få? Arduino Köpguide: Vilket styrelse ska du få? Det finns så många olika typer av Arduino brädor där ute, du skulle bli förlåtad för att vara förvirrad. Vilka ska du köpa för ditt projekt? Låt oss hjälpa till med denna Arduino-köpguide! Läs mer kan fungera här) att programmeras och kontrolleras från kommandoraden med Python-program. Denna handledning skrivs 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 Home Automation Guide med hallon Pi och Arduino Home Automation Guide med hallon Pi och Arduino Hemautomatiseringsmarknaden översvämmas med dyra konsumentsystem, inkompatibla med varandra och kostsamt att installera . Om du har en Raspberry Pi och en Arduino, kan du i princip uppnå samma sak på ... Läs mer för den ultimata dubbla-DIY-upplevelsen.

Ställa in din Arduino för Python

För dagens projekt använder vi en Arduino Uno, tillsammans med pyFirmata-gränssnittet för Python. Du kan använda nästan alla Arduino-kompatibla brädor för detta, men vid skrivningstillfället stöds bara Arduino Uno, Mega, Due och Nano av pyFfirmata-gränssnittet. Om du redan är en Python-guru kan du lägga till ditt eget styrsystem till pyFirmata - var noga med att uppdatera deras GitHub om du gör det!

program och kontroll arduino med python

Om du inte redan har installerat Arduino IDE. Om du är helt ny i världen av mikrokontroller, börjar vår nybörjarguide till Arduino Komma igång med Arduino: En nybörjarguide Komma igång med Arduino: En nybörjarhandbok Arduino är en öppen prototypplattform för öppen källkod baserad på flexibel, lättanvänd maskinvara och programvara. Den är avsedd för artister, designers, hobbyister och alla som är intresserade av att skapa interaktiva objekt eller miljöer. Läs mer hjälper dig att få allt på plats.

Anslut din Arduino bräda och öppna IDE. Se till att du har rätt styrelse och port vald i menyn Verktyg . Ladda upp StandardFirmata exempel skiss och ladda upp det till brädet. Det här låter dig styra Arduino direkt så länge det är anslutet till datorn via USB. Förutsatt skissuppladdningar till din styrelse utan några fel, är du redo att fortsätta.

Python och Command Line Control

Vi använder Python 3.4 för att styra vår Arduino, eftersom modulen du ska installera specificerar detta som den senaste kompatibla versionen. Varje version före detta ska fungera bra, och senare versioner har rapporterats fungera. Du kan ladda ner Python 3.4 för Windows 10 från Python Software Foundation. Om du vill köra flera versioner av Python, vår guide till Python virtuella miljöer Lär dig hur du använder Python Virtual Environment Lär dig hur du använder Python Virtual Environment Oavsett om du är en erfaren Python-utvecklare, eller om du bara har börjat, lär dig hur du Installera en virtuell miljö är viktigt för alla Python-projekt. Läs mer kommer att kunna hjälpa dig.

När du har installerat Python vill vi lägga till den i systemets 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 det genom att öppna Kontrollpanelen, leta efter Miljö och klicka på Redigera systemmiljövariablerna . Längst ner i fönstret välj miljövariabler . Detta kommer att hämta detta fönster:

program och kontroll arduino med python

Om du redan ser PATH i listan klickar du på redigera och lägger till Python och Python / Scripts- katalogen. 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 på annat håll måste du ändra det för att avspegla detta. Klicka på OK bakåt i kedjan av Windows, och du är nästan redo att styra din Arduino med Python!

Den magiska smeten

Du behöver en sista del av pusslet 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ä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, det borde installeras och se ut så här:

program och kontroll arduino med python

Om det misslyckas, gå över till att lägga till Python i avsnittet om miljövariabel och se till att du har lagt rätt väg till din Python-katalog.

Göra det hända

Nu är allt upplagt, och du kan skapa ett Python-program för din Arduino att testa det. Öppna ett IDE efter eget val. Vi kommer att använda Eclipse 8 mest användbara tangentbordsgenvägar för nybörjare Eclipse IDE-användare 8 mest användbara tangentbordsgenvägar för nybörjare Eclipse IDE-användare Som nybörjevänlig som Eclipse IDE (gränssnitt) är du skyldig att själv lära dig dessa kortkommandon. Läs mer idag, men du kan lika lätt använda någon textredigerare Textredigerare vs IDE: Vilken är bättre för programmerare? Textredigerare vs IDE: Vilken är bättre för programmerare? Att välja mellan en avancerad IDE och en enklare textredigerare kan vara svår. Vi erbjuder lite insikt för att hjälpa dig att fatta beslutet. Läs mer, eller till och med ett IDE i molnet Codenvy IDE: Ett online IDE för Ruby, HTML, Java, Python och More Codenvy IDE: En online IDE för Ruby, HTML, Java, Python och mer Läs mer.

Skapa ett nytt skript och spara det som blink.py . Bryt tradition med standard blinkande LED-programmet, du kommer att skapa ett program som uppmanar användaren för 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 rakt på det, men låt oss bryta ner det.

För det första vill du importera vad du behöver från pyFirmata- modulen, tillsammans med standard Python Time- modulen.

 from pyfirmata import Arduino, util import time 

Nu vill du skapa Arduino-styrelsen. Denna artikel förutsätter att du använder ett Arduino Uno- kort, även om flera andra Arduino-kort stöds. Se pyFirmata github för detaljer om ombordstöd.

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

 board = Arduino("COM3") 

Nu ställer du in användarprompten. De som är bekanta med Python kommer att känna igen allt här. Du skriver ut en fråga till skärmen med hjälp av inmatningsfunktionen och lagrar svaret som en variabel. När användaren har angivit ett nummer, rapporterar programmet hur många gånger LED lyser.

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

För att få LED-lampan att blinka rätt antal gånger, använder du en för loop . Om du är ny på Python 10 Basic Python-exempel som hjälper dig att lära dig snabbt 10 Basic Python-exempel som hjälper dig att lära dig snabbt Denna artikel med grundläggande python-exempel är för dem som redan har någon programmeringserfarenhet och vill bara övergå till Python så fort som möjligt. Läs mer, var försiktig med indragningen, till skillnad från andra språk är mellanslagen en del av syntaxen. Observera att stift 13 är inbyggd LED för Arduino Uno, du måste ändra detta om ditt bräde ä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 variabeln loopTimes till ett heltal här, eftersom inmatningen 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. Alla andra poster som "åtta" kommer att göra ett fel.

Spara ditt skript och öppna kommandotolken .

Blinkande ljus och andra uppenbarelser

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

Allt är bra, ditt program börjar med en liten fördröjning när Arduino initierar, uppmanar dig till ett nummer och blinkar så många gånger med inbyggd LED.

Programutmatningen ska se ut så här:

program och kontroll arduino med python

Så snart du trycker på enter efter det valda antalet blinkar, ska Arduino genomföra dina order.

Små början

Detta projekt har blivit en nybörjad start för att kommunicera mellan Python och en Arduino-styrelse. Detta tillvägagångssätt är väldigt annorlunda än det vanliga arbetsflödet för uppladdning av 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 12 Bästa Linux-operativsystem och vem ska använda dem 12 Bästa Linux-operativsystem och vem ska använda dem Att bygga en server? Linux är idealiskt, och erbjuder vanligtvis förbättrade behörigheter, ökad flexibilitet och stabilitet. Men vilken ska du välja? Kolla in de 12 bästa Linux-operativsystemen och vem ska använda dem. Läs mer hemma, den här metoden att kommunicera med Arduino-styrelser kan utvidga den till ett heltäckande DIY-hemautomatiseringssystem. Genom att kombinera Python-skript som styr mikrokontrollen med en DIY-automationskrets Arduino Project Ideas för ett Automatiserat Hem Arduino Project Idéer för ett Automatiserat Hem Skulle det inte vara bra att bevattna ditt växthus utan att lämna din stol? En Arduino kan vara förlovad som nyckelfaktor i vissa hemautomatiseringsprojekt - här är fem! Läs mer, din NAS-förvaringslåda kan ta på sig en helt ny uppsättning användbara funktioner.

För att göra det till den ultimata DIY-upplevelsen, varför bygg inte din egen NAS-box behöver Nätverkslagring? Så här bygger du din egen NAS-box behöver du nätverkslagring? Så här bygger du din egen NAS-box NAS står för Nätverksansluten lagring. Eftersom Windows blev lättare att använda med nätverksanslutna enheter, och hårdvarupriserna föll, började den här terminen användas på konsumentmarknaden. Idag finns det ett brett utbud ... Läs mer och använd det för att även styra dina apparater? Föreställ dig hur cool det skulle vara att trycka på spel på din Plex Din guide till Plex - The Awesome Media Center Din guide till Plex - The Awesome Media Center Om du har många lokalt sparade filmer och tv-program måste du installera Plex. Och det här är den enda guiden för att komma igång med Plex du behöver någonsin läsa. Läs mer server och få lamporna att stänga av sig automatiskt!

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

In this article