Slik programmerer og styrer du en Arduino med Python

Dessverre er det umulig å programmere en Arduino i Python direkte, men du kan styre den over USB ved hjelp av et Python-program. Dette er hvordan.

Dessverre er det umulig å programmere en Arduino i Python direkte, men du kan styre den over USB ved hjelp av et Python-program.  Dette er hvordan.
Annonse

Python har tatt den kodende verden med storm. Ved siden av fremveksten av dette nye språket har DIY-elektronikkfilmen også blomstret. Utviklingsbrett og single board datamaskiner fra selskaper som Arduino Hva er Arduino og hva kan du gjøre med det? Hva er Arduino og hva kan du gjøre med det? Arduino er en bemerkelsesverdig liten elektronikk enhet, men hvis du aldri har brukt en før, akkurat hva er de, og hva kan du gjøre med en? Les mer og Raspberry Pi Raspberry Pi: Den uoffisielle opplæringen Raspberry Pi: Den uoffisielle opplæringen Uansett om du er en nåværende Pi-eier som ønsker å lære mer eller en potensiell eier av denne kredittkortstørrelsesenheten, er dette ikke en guide du vil ha å savne. Les mer har forandret måten folk lager hjemmelaget elektronikk på. Ville det ikke vært fantastisk hvis du kunne programmere en Arduino med Python?

Det er ingen bedre følelse enn å kombinere to kule ting. Dessverre er det umulig å programmere en Arduino med Python direkte, da styrene ikke har mulighet for å tolke språket om bord. Det som er mulig er imidlertid direkte kontroll over USB ved hjelp av et Python-program.

Denne artikkelen vil vise deg hvordan du setter opp en Arduino UNO (om noen Arduino-kompatible brett Arduino Kjøpsguide: Hvilket brett bør du få? Arduino Kjøpsguide: Hvilket brett bør du få? Det er så mange forskjellige typer Arduino brett der ute, du vil bli tilgitt for å være forvirret. Hva skal du kjøpe for prosjektet? La oss hjelpe, med denne Arduino kjøpsguiden! Les mer kan fungere her) for å bli programmert og styrt fra kommandolinjen ved hjelp av Python-programmer. Denne opplæringen er skrevet for Windows 10, men fungerer også for Mac og Linux. Du kan til og med bruke denne arbeidsflyten til å kontrollere en Arduino direkte fra en Raspberry Pi Home Automation Guide Med Raspberry Pi og Arduino Home Automation Guide Med Raspberry Pi og Arduino Hjemmautomatiseringsmarkedet er oversvømmet med dyre forbrukersystemer, inkompatible med hverandre og kostbart å installere . Hvis du har en Raspberry Pi og en Arduino, kan du i utgangspunktet oppnå det samme ved ... Les mer for den ultimate dobbelt-ned-DIY-opplevelsen.

Sette opp din Arduino for Python

For dagens prosjekt vil vi bruke en Arduino Uno, sammen med pyFirmata-grensesnittet for Python. Du kan bruke nesten alle Arduino-kompatible kort til dette, men på tidspunktet for skriving støttes bare Arduino Uno, Mega, Due og Nano av pyFfirmata-grensesnittet. Hvis du allerede er en Python guru, kan du legge til din egen styringsstøtte til pyFirmata - vær sikker på å oppdatere GitHuben din hvis du gjør det!

program og kontroll arduino med python

Hvis du ikke allerede har installert Arduino IDE. Hvis du er helt ny i verden av mikrokontroller, er vår nybegynners guide til Arduino Komme i gang med Arduino: En nybegynnersveiledning Komme i gang med Arduino: En nybegynnersguide Arduino er en åpen prototypeplan for åpen kildekode basert på fleksibel, brukervennlig maskinvare og programvare. Det er ment for kunstnere, designere, hobbyister, og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer vil hjelpe deg med å få alt på plass.

Koble Arduino-kortet, og åpne IDE-en. Kontroller at du har riktig bord og port valgt i Verktøy- menyen. Last opp StandardFirmata- eksempelskissen og last opp den til brettet. Dette vil tillate deg å kontrollere Arduino direkte så lenge det er koblet til datamaskinen via USB. Forutsatt skisseopplastingene til brettet ditt uten feil, er du klar til å fortsette.

Python og Command Line Control

Vi bruker Python 3.4 til å kontrollere vår Arduino, da modulen du vil installere spesifiserer dette som den nyeste kompatible versjonen. Enhver versjon før dette burde fungere bra, og senere versjoner har blitt rapportert å fungere. Du kan laste ned Python 3.4 for Windows 10 fra Python Software Foundation. Hvis du vil kjøre flere versjoner av Python, er vår guide til virtuelle miljøer i Python Lær hvordan du bruker Python Virtual Environment Lær hvordan du bruker Python Virtual Environment Uansett om du er en erfaren Python-utvikler, eller du er bare i gang, lærer du hvordan du Oppsett av et virtuelt miljø er viktig for ethvert Python-prosjekt. Les mer vil kunne hjelpe deg.

Når du har installert Python, vil vi legge den til i systemets PATH-variabel. Dette vil la oss kjøre Python-koden direkte fra kommandolinjen uten å måtte være i katalogen den ble installert i. Du kan gjøre dette ved å åpne Kontrollpanelet, søke etter Miljø og klikke på Rediger systemmiljøvariablene . Nederst i vinduet velg Miljøvariabler . Dette vil hente opp dette vinduet:

program og kontroll arduino med python

Hvis du allerede ser PATH i listen, klikker du på Rediger, og legger til Python og Python / Scripts- katalogen. Hvis du ikke har en PATH-variabel, klikker du på nytt og legger til det. Legg merke til at Python ble installert direkte inn i C: \ her. Hvis du installerte det andre steder, må du endre det for å gjenspeile dette. Klikk OK tilbake ned i Windows-kjeden, og du er nesten klar til å kontrollere din Arduino med Python!

Den magiske fett

Du trenger et siste stykke av puslespillet for å få Python å snakke pent med vår Arduino. Dette kommer i form av et Python-grensesnitt kalt pyFirmata . Dette grensesnittet, opprettet av Tino de Bruijn, er tilgjengelig for nedlasting fra github, men du kan installere det direkte fra kommandolinjen ved å skrive:

pip install pyfirmata 

Alt er bra, det burde installere og se slik ut:

program og kontroll arduino med python

Hvis det mislykkes, går du over til å legge til Python i miljøvariabelen og sørg for at du har gitt riktig vei til Python-katalogen din.

Gjør det skje

Nå er alt satt opp, og du kan lage et Python-program for din Arduino for å teste det. Åpne en IDE etter eget valg. Vi vil bruke Eclipse 8 mest nyttige tastaturgenveier for nybegynnere Eclipse IDE-brukere 8 mest nyttige tastaturgenveier for nybegynnere Eclipse IDE-brukere Som nybegynner-vennlig som Eclipse IDE (grensesnitt) er du skylt på deg selv for å lære disse hurtigtastene. Les mer i dag, men du kan like enkelt bruke noen tekstredigerer Tekstredigerere vs IDE: Hvilken er bedre for programmerere? Tekstredigerere vs IDE: Hvilken er bedre for programmerere? Å velge mellom en avansert IDE og en enklere tekstredigerer kan være vanskelig. Vi gir litt innsikt for å hjelpe deg med å ta den beslutningen. Les mer, eller til og med en IDE i skyen Codenvy IDE: En online IDE for Ruby, HTML, Java, Python, og mer Codenvy IDE: En online IDE for Ruby, HTML, Java, Python og mer. Les mer.

Opprett et nytt skript, og lagre det som blink.py . Bryter tradisjon med standard blinkende LED-program, du skal lage et program som ber brukeren om hvor mange ganger de vil at LED-lampen skal blinke før den utføres. Det er et kort program, som du kan laste ned her hvis du vil komme rett på det, men la oss slå det ned.

For det første vil du importere det du trenger fra pyFirmata- modulen, sammen med standard Python Time- modulen.

 from pyfirmata import Arduino, util import time 

Nå vil du sette opp Arduino-bordet. Denne artikkelen antar at du bruker et Arduino Uno- kort, selv om flere andre Arduino-plater støttes. Se pyFirmata github for detaljer om bordstøtte.

Sjekk hvilken COM-port du bruker i Arduino IDE, og skriv den inn i koden din som variabelkortet.

 board = Arduino("COM3") 

Nå skal du sette opp brukerprompten. De som er kjent med Python, vil gjenkjenne alt her. Du skriver ut et spørsmål til skjermen ved hjelp av inngangsfunksjonen, og lagrer svaret som en variabel. Når brukeren har oppgitt et nummer, rapporterer programmet tilbake hvor mange ganger lysdioden vil blinke.

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

For å få lysdioden til å blinke riktig antall ganger, bruker du en forløkke . Hvis du er ny til Python 10 Basic Python Eksempler som vil hjelpe deg å lære raskt 10 Grunnleggende Python Eksempler som vil hjelpe deg å lære fort Denne artikkelen av grunnleggende python eksempler er for de som allerede har noen programmeringserfaring og vil bare overgå til Python så fort som mulig. Les mer, vær forsiktig med innrykk, i motsetning til andre språk er mellomromene en del av syntaksen. Vær oppmerksom på at pin 13 er innendørs LED for Arduino Uno, du må endre dette dersom styret ditt er annerledes.

 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- variabelen til et heltall her, da innspillet fra brukeren automatisk lagres som en streng. I denne enkle demoen antar vi at brukeren vil skrive inn en numerisk verdi. Enhver annen oppføring som "åtte" vil kaste en feil.

Lagre skriptet ditt, og åpne kommandoprompt .

Blinkende lys og andre åpenbaringer

Alt er klart å gå, alt du trenger å gjøre er å navigere til hvor skriptet er og kjøre det. Gjør dette ved å skrive cd [sti til skriptets katalog] og deretter skrive python blink.py .

Alt er bra, programmet starter med en liten forsinkelse når Arduino initialiserer, spør deg om et nummer, og blink så mange ganger med LED-lampen.

Programutgangen skal se slik ut:

program og kontroll arduino med python

Så snart du trykker på enter etter at det valgte antallet blinker, bør Arduino utføre bestillingene dine.

Små begynnelser

Dette prosjektet har vært en barebones begynner å kommunisere mellom Python og et Arduino bord. Denne tilnærmingen er svært forskjellig fra den vanlige arbeidsflyten for opplasting av skript til Arduino selv, men det åpner en helt ny måte å jobbe med plattformen, spesielt hvis du liker Python programmeringsspråket.

Hvis du bruker en Linux-server 12 Best Linux Server-operativsystemer og hvem bør bruke dem 12 Best Linux Server-operativsystemer og hvem bør bruke dem til å bygge en server? Linux er ideelt, og tilbyr vanligvis forbedrede tillatelser, økt fleksibilitet og stabilitet. Men hvilken skal du velge? Sjekk ut de 12 beste Linux-server-operativsystemene og hvem skal bruke dem. Les mer hjemme, denne metoden for å kommunisere med Arduino boards kan forlenge den serveren til et fullverdig DIY Home Automation-system. Ved å kombinere Python-skript som styrer mikrokontrolleren med en DIY-automatiseringskrets Arduino Project Ideas for et automatisert Home Arduino Project Ideas for et automatisert hjem Vil det ikke være fint å vanne drivhuset ditt uten å forlate stolen din? En Arduino kan være forlovet som nøkkelkomponenten til noen hjemmeautomatiseringsprosjekter - her er fem! Les mer, din NAS-oppbevaringsboks kan ta på seg et helt nytt sett med nyttige funksjoner.

For å gjøre det til den ultimate DIY-opplevelsen, hvorfor ikke bygge din egen NAS-boks, trenger du nettverkslagring? Slik bygger du din egen NAS-boks trenger du nettverkslagring? Slik bygger du din egen NAS-boks NAS står for nettverkstilkoblet lagring. Siden Windows ble lettere å bruke med nettverkstilkoblede enheter, og maskinvareprisene falt, begynte dette begrepet i forbrukermarkedet. I dag er det et bredt utvalg ... Les mer og bruk den til å også kontrollere apparatene dine? Tenk deg hvor kul det ville være å trykke på spill på din Plex. Din guide til Plex - The Awesome Media Center Din guide til Plex - The Awesome Media Center Hvis du har mange lokalt lagrede filmer og TV-programmer, må du installere Plex. Og dette er den eneste veiledningen for å komme i gang med Plex du trenger å lese. Les mer server og få lysene til å slå seg av automatisk!

Behandler du allerede Arduino ved hjelp av Python? Er det fantastiske løsninger vi bare ikke vet om ennå? Gi oss beskjed i kommentarseksjonen nedenfor!

In this article