Sådan programmeres og styres en Arduino med python

Desværre er det umuligt at programmere en Arduino i Python direkte, men du kan styre den over USB ved hjælp af et Python-program. Sådan er det.

Desværre er det umuligt at programmere en Arduino i Python direkte, men du kan styre den over USB ved hjælp af et Python-program.  Sådan er det.
Reklame

Python har taget den kodende verden med storm. Ved siden af ​​fremkomsten af ​​dette nye sprog har DIY-elektronikscenen også blomstret. Udviklingsbrætter og single board computere fra virksomheder som Arduino Hvad er Arduino & Hvad kan du gøre med det? Hvad er Arduino & Hvad kan du gøre med det? Arduino er en bemærkelsesværdig lille elektronik enhed, men hvis du aldrig har brugt en før, hvad præcist er de, og hvad kan du gøre med en? Læs mere og Raspberry Pi Raspberry Pi: Den uofficielle Tutorial Raspberry Pi: Den uofficielle Tutorial Uanset om du er en nuværende Pi ejer, der ønsker at lære mere eller en potentiel ejer af denne kreditkort størrelse enhed, dette er ikke en guide, du vil at savne. Læs mere har ændret måden folk skaber hjemmelavet elektronik på. Ville det ikke være fantastisk, hvis du kunne programmere en Arduino med Python?

Der er ingen bedre følelse end at kombinere to kølige ting. Desværre er det umuligt at programmere en Arduino med Python direkte, da bestyrelserne ikke har mulighed for indbygget fortolkning af sproget. Hvad der dog er muligt, er direkte kontrol over USB ved hjælp af et Python-program.

Denne artikel vil vise dig, hvordan du opretter en Arduino UNO (selvom et Arduino-kompatibelt kort Arduino-købsvejledning: Hvilket stykke skal du få? Arduino-købsvejledning: Hvilket bord skal du få? Der er så mange forskellige slags Arduino boards derude, du vil blive tilgivet for at være forvirret. Hvad skal du købe til dit projekt? Lad os hjælpe med denne Arduino købeguide! Læs mere kan arbejde her) til at blive programmeret og styret fra kommandolinjen ved hjælp af Python-programmer. Denne vejledning er skrevet til Windows 10, men fungerer også til Mac og Linux. Du kan endda bruge denne arbejdsgang til at styre en Arduino direkte fra en Raspberry Pi Home Automation Guide med Raspberry Pi og Arduino Home Automation Guide med Raspberry Pi og Arduino Hjemmautomatiseringsmarkedet oversvømmes med dyre forbruger systemer, inkompatible med hinanden og kostbart at installere . Hvis du har en Raspberry Pi og en Arduino, kan du stort set opnå det samme ved ... Læs mere for den ultimative dobbelt-ned-DIY oplevelse.

Opsætning af din Arduino til Python

Til dagens projekt bruger vi en Arduino Uno sammen med pyFirmata-grænsefladen til Python. Du kan bruge næsten ethvert Arduino-kompatibelt kort til dette, men på tidspunktet for skrivning understøttes kun Arduino Uno, Mega, Due og Nano af pyFfirmata-grænsefladen. Hvis du allerede er en Python guru, kan du tilføje din egen board support til pyFirmata - sørg for at opdatere deres GitHub, hvis du gør det!

program og kontrol arduino med python

Hvis du ikke allerede har installeret Arduino IDE. Hvis du er helt ny i verden af ​​mikrocontrollere, er vores begynderguide til Arduino Kom godt i gang med Arduino: En nybegyndervejledning Kom i gang med Arduino: En nybegyndervejledning Arduino er en open source elektronik prototypeplanlægning baseret på fleksibel, brugervenlig hardware og software. Det er beregnet til kunstnere, designere, hobbyister og alle interesserede i at skabe interaktive objekter eller miljøer. Læs mere hjælper dig med at få alt på plads.

Tilslut dit Arduino bord og åbner IDE. Sørg for, at du har den korrekte bord og port valgt i menuen Værktøjer . Indlæs StandardFirmata- eksemplets skitse og upload det til tavlen. Dette giver dig mulighed for at styre Arduino direkte, så længe det er tilsluttet computeren via USB. Forudsat skits uploads til dit bord uden fejl, er du klar til at fortsætte.

Python og Command Line Control

Vi bruger Python 3.4 til at styre vores Arduino, da det modul, du vil installere, angiver dette som den nyeste kompatible version. Enhver version før dette skal fungere fint, og senere versioner er blevet rapporteret til at fungere. Du kan downloade Python 3.4 til Windows 10 fra Python Software Foundation. Hvis du vil køre flere versioner af Python, er vores guide til virtuelle virtuelle miljøer i Python Lær at bruge det virtuelle miljø i Python Lær at bruge Python Virtual Environment Uanset om du er en erfaren Python-udvikler, eller du lige er begyndt, lærer du hvordan du opsætning af et virtuelt miljø er afgørende for ethvert Python-projekt. Læs mere vil være i stand til at hjælpe dig.

Når du har installeret Python, vil vi tilføje det til systemets PATH-variabel. Dette vil lade os køre Python-kode direkte fra kommandolinjen uden at skulle være i den mappe, den blev installeret i. Du kan gøre dette ved at åbne Kontrolpanel, søge efter Miljø og klikke på Rediger systemets miljøvariabler . Nederst i vinduet vælg Miljøvariabler . Dette vil hente dette vindue op:

program og kontrol arduino med python

Hvis du allerede ser PATH i listen, skal du klikke på redigere og tilføje din Python og Python / Scripts- mappe. Hvis du ikke har en PATH-variabel, skal du klikke på ny og tilføje den. Bemærk, at Python blev installeret direkte i C: \ her. Hvis du installerede det andetsteds, skal du ændre det for at afspejle dette. Klik OK tilbage ned i kæden af ​​vinduer, og du er næsten klar til at styre din Arduino med Python!

Den magiske fedt

Du skal bruge et sidste stykke af puslespillet for at få Python at snakke fint med vores Arduino. Dette kommer i form af en Python-grænseflade kaldet pyFirmata . Denne grænseflade, der er oprettet af Tino de Bruijn, kan downloades fra github, selvom du kan installere den direkte fra kommandolinjen ved at skrive:

pip install pyfirmata 

Alt er godt, det skal installere og se sådan ud:

program og kontrol arduino med python

Hvis det fejler, skal du fortsætte med at tilføje Python til miljøvariabelen og sørg for, at du har givet den rigtige vej til din Python-mappe.

Gør det til at ske

Nu er alt oprettet, og du kan oprette et Python-program til din Arduino for at teste det. Åbn en IDE efter eget valg. Vi vil bruge Eclipse 8 mest nyttige tastaturgenveje til nybegyndere Eclipse IDE-brugere 8 mest nyttige tastaturgenveje til nybegyndere Eclipse IDE-brugere Som nybegyndervenlig som Eclipse IDE (interface) er du skylt over det selv for at lære disse tastaturgenveje. Læs mere i dag, men du kan lige så nemt bruge enhver tekstredigerer Tekstredaktører vs IDE'er: Hvilken er bedre for programmører? Tekstredaktører vs IDE'er: Hvilken er bedre for programmører? At vælge mellem en avanceret IDE og en enklere tekst editor kan være svært. Vi tilbyder nogle indsigt til at hjælpe dig med at træffe den beslutning. Læs mere, eller endda en IDE i skyen Codenvy IDE: En online IDE til Ruby, HTML, Java, Python og mere Codenvy IDE: En online IDE til Ruby, HTML, Java, Python og mere læs mere.

Opret et nyt script, og gem det som blink.py . Bryder tradition med det standard blinkende LED-program, du skal oprette et program, der beder brugeren for hvor mange gange de vil have LED'en til at blinke, før den udføres. Det er et kort program, som du kan downloade her, hvis du vil komme direkte til det, men lad os bryde det ned.

For det første vil du importere, hvad du har brug for fra pyFirmata modulet, sammen med standard Python Time modul.

 from pyfirmata import Arduino, util import time 

Nu skal du oprette Arduino bordet. Denne artikel forudsætter, at du bruger et Arduino Uno bord, selvom flere andre Arduino boards understøttes. Se pyFirmata github for detaljer om bordstøtte.

Kontroller hvilken COM-port du bruger i Arduino IDE, og indtast den i din kode som variabelkort.

 board = Arduino("COM3") 

Nu skal du oprette brugerprompten. De, der er bekendt med Python, genkender alt her. Du udskriver et spørgsmål til skærmen ved hjælp af inputfunktionen og gemmer svaret som en variabel. Når brugeren har angivet et nummer, rapporterer programmet tilbage, hvor mange gange LED'en blinker.

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

For at få LED'en til at blinke det korrekte antal gange, bruger du en for-loop . Hvis du er ny til Python 10 Basic Python-eksempler, der hjælper dig med at lære hurtigt 10 Grundlæggende Python-eksempler, der hjælper dig med at lære dig hurtigt Denne artikel med grundlæggende python-eksempler er for dem, der allerede har nogle programmeringserfaringer og simpelthen ønsker at overgå til Python så hurtigt som muligt. Læs mere, pas på indrykket, som i modsætning til andre sprog er rummene en del af syntaksen. Bemærk at pin 13 er indbygget LED til Arduino Uno, du skal ændre dette, hvis dit bord er anderledes.

 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 vil kaste loopTimes- variablen til et helt tal her, da indgangen fra brugeren automatisk gemmes som en streng. I denne enkle demo antager vi, at brugeren indtaster en numerisk værdi. Enhver anden post som 'otte' vil smide en fejl.

Gem dit script, og åbn Kommandoprompt .

Blinkende lys og andre åbenbaringer

Alt er klar til at gå, alt du skal gøre er at navigere til, hvor scriptet er og køre det. Gør dette ved at skrive cd [sti til scriptets mappe] og derefter skrive python blink.py .

Alt er godt, dit program starter med en lille forsinkelse, da Arduino initialiserer, beder dig om et nummer og blinker så mange gange ved hjælp af indbygget LED.

Programmets output skal se sådan ud:

program og kontrol arduino med python

Så snart du trykker på Enter efter dit valgte antal blinker, skal Arduino udføre dine ordrer.

Små begyndelser

Dette projekt har været en barebones begyndelse at kommunikere mellem Python og et Arduino bord. Denne tilgang er meget forskellig fra den sædvanlige arbejdsgang til upload af scripts til Arduino selv, men det åbner en helt ny måde at arbejde med platformen, især hvis du kan lide Python programmeringssprog.

Hvis du bruger en Linux-server 12 Bedste Linux Server-operativsystemer, og hvem skal bruge dem 12 Bedste Linux-server-operativsystemer, og hvem skal bruge dem til at oprette en server? Linux er ideel, som typisk tilbyder forbedrede tilladelser, øget fleksibilitet og stabilitet. Men hvilken skal man vælge? Tjek de 12 bedste Linux-server operativsystemer, og hvem skal bruge dem. Læs mere hjemme, denne metode til kommunikation med Arduino boards kunne udvide den server til et fuldt udbygget DIY Home Automation system. Ved at kombinere Python scripts, der styrer mikrocontrolleren med et DIY automationskredsløb Arduino Project Ideas til et automatiseret Home Arduino Project Idéer til et automatiseret hjem Vil det ikke være dejligt at vandre dit drivhus uden at forlade din stol? En Arduino kan være forlovet som nøgleelementet i nogle hjemmeautomatiseringsprojekter - her er fem! Læs mere, din NAS opbevaringsboks kunne tage et helt nyt sæt nyttige funktioner.

For at gøre det til den ultimative DIY oplevelse, hvorfor ikke opbygge din egen NAS-box. Har du brug for netværksopbevaring? Sådan bygger du din egen NAS-box Har du brug for netværksopbevaring? Her er hvordan man opbygger din egen NAS Box NAS står for Network Attached Storage. Da Windows blev lettere at bruge sammen med netværkstilsluttede enheder, og hardwarepriserne faldt, begyndte dette begreb at blive brugt på forbrugermarkedet. I dag er der et bredt udvalg ... Læs mere og brug det til også at styre dine apparater? Forestil dig, hvor cool det ville være at trykke på spil på din Plex. Din guide til Plex - The Awesome Media Center Din guide til Plex - The Awesome Media Center Hvis du har mange lokalt gemte film og tv-shows, skal du installere Plex. Og det er den eneste vejledning til at komme i gang med Plex, du skal nogensinde læse. Læs mere server og få lysene til at slukke automatisk!

Styrer du allerede Arduino ved hjælp af Python? Er der fantastiske løsninger, vi bare ikke ved om endnu? Lad os vide i kommentarfeltet nedenfor!

In this article