Hvordan programmere og kontrollere en Arduino med Python

Hvordan programmere og kontrollere en Arduino med Python

Python har tatt kodeverdenen med storm. Ved siden av fremveksten av dette nye språket, har DIY -elektronikk -scenen også blomstret. Utviklingstavler og enkeltkort datamaskiner fra selskaper som Arduino og Raspberry Pi har endret måten folk lager hjemmelaget elektronikk på. Ville det ikke vært fantastisk hvis du kunne programmere en Arduino med Python?





er wii u bakoverkompatibel med gamecube

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





Denne artikkelen viser deg hvordan du konfigurerer en Arduino UNO (selv om et hvilket som helst Arduino -kompatibelt bord kan fungere her) for å bli programmert og kontrollert 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 for den ultimate doble DIY-opplevelsen.





Konfigurere Arduino for Python

For dagens prosjekt bruker vi en Arduino Uno, sammen med pyFirmata -grensesnittet for Python. Du kan bruke nesten alle Arduino-kompatible tavler til dette, men i skrivende stund 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 brettstøtte til pyFirmata - sørg for å oppdatere GitHub hvis du gjør det!

Hvis du ikke allerede har det, må du installere Arduino IDE. Hvis du er helt ny i verden av mikrokontrollere, vil vår nybegynnerguide til Arduino vil hjelpe deg med å få alt på plass.



Koble til Arduino -kortet, og åpne IDE. Kontroller at du har riktig brett og port valgt i Verktøy Meny. Last opp Standard Firmata eksempelskisse og last den opp til tavlen. Dette lar deg kontrollere Arduino direkte så lenge den er koblet til datamaskinen via USB. Forutsatt at skissene lastes opp til brettet ditt uten feil, er du klar til å gå videre.

Python og kommandolinjekontroll

Vi bruker Python 3.4 til å kontrollere Arduino, siden modulen du skal installere spesifiserer dette som den siste kompatible versjonen. Enhver versjon før dette burde fungere fint, og senere versjoner er rapportert å fungere. Du kan laste ned Python 3.4 for Windows 10 fra Python Software Foundation nettstedet. Hvis du vil kjøre flere versjoner av Python, vil vår guide til virtuelle Python -miljøer kunne hjelpe deg.





Når du har installert Python, vil vi legge den til systemets PATH -variabel. Dette lar 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 Kontrollpanel , Leter etter Miljø og klikk på Rediger systemmiljøvariablene . Velg nederst i vinduet Miljøvariabler . Dette vil vise dette vinduet:

Hvis du allerede ser STI Klikk på rediger i listen, og legg til din Python og Python/skript katalog. Hvis du ikke har en PATH -variabel, klikker du på ny og legger den til. Vær oppmerksom på at Python ble installert direkte i C: her. Hvis du installerte det andre steder, må du endre det for å gjenspeile dette. Klikk OK tilbake i kjeden av vinduer, og du er nesten klar til å kontrollere Arduino med Python!





Det magiske fettet

Du trenger en siste brikke i puslespillet for å få Python til å snakke pent med vår Arduino. Dette kommer i form av et Python -grensesnitt kalt pyFirmata . Dette grensesnittet, laget av Tino de Bruijn er tilgjengelig for nedlasting fra github, selv om du kan installere det rett fra kommandolinjen ved å skrive:

pip install pyfirmata

Alt godt, det bør installere og se slik ut:

Hvis det mislykkes, gå over å legge Python til Miljøvariabel og sørg for at du har gitt den riktige banen til Python -katalogen.

Få det til å skje

Nå er alt satt opp, og du kan lage et Python -program for Arduino for å teste det. Åpne en IDE etter eget valg. Vi kommer til å bruke Formørkelse i dag, men du kan like gjerne bruke hvilken som helst tekstredigerer, eller til og med en IDE i skyen.

Lag et nytt skript, og lagre det som blink. py . Hvis du bryter tradisjonen med det standard blinkende LED -programmet, skal du lage et program som ber brukeren om hvor mange ganger de vil at LED -en skal blinke før den utføres. Det er et kort program, som du kan Last ned her hvis du vil komme rett til det, men la oss bryte det ned.

For det første vil du importere det du trenger fra pyFirmata modul, sammen med standard Python Tid modul.

datamaskinen starter ikke etter oppdatering av Windows 10
from pyfirmata import Arduino, util
import time

Nå vil du sette opp Arduino -brettet. Denne artikkelen antar at du bruker en Arduino uno bord, selv om flere andre Arduino -kort 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 som variabelen borde .

board = Arduino('COM3')

Nå vil du konfigurere brukermanualen. De som er kjent med Python vil kjenne igjen alt her. Du skriver ut et spørsmål til skjermen ved hjelp av input funksjon, og lagre svaret som en variabel. Når brukeren har oppgitt et nummer, melder programmet tilbake hvor mange ganger LED -en vil blinke.

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

For å få LED -en til å blinke det riktige antallet ganger, bruker du a for sløyfe . Hvis du er ny på Python , vær forsiktig med innrykk, ettersom mellomrom er en del av syntaksen i motsetning til andre språk. Vær oppmerksom på at pin 13 er innebygd LED for Arduino Uno, du må endre dette hvis brettet 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 variabel til et heltall her, ettersom input fra brukeren automatisk blir lagret som en streng. I denne enkle demoen antar vi at brukeren vil legge inn en numerisk verdi. Enhver annen oppføring som 'åtte' vil kaste en feil.

Lagre skriptet ditt, og åpne Ledeteksten .

Blinkende lys og andre åpenbaringer

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

Alt godt, programmet starter med en liten forsinkelse ettersom Arduino initialiserer, ber deg om et nummer, og deretter blinker så mange ganger med den innebygde LED -en.

Programutgangen skal se slik ut:

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

Liten begynnelse

Dette prosjektet har vært en barebones start for å kommunisere mellom Python og et Arduino -bord. Denne tilnærmingen er veldig annerledes enn den vanlige arbeidsflyten for å laste opp skript til Arduino selv, men det åpner en helt ny måte å jobbe med plattformen, spesielt hvis du liker programmeringsspråket Python.

Hvis du bruker en Linux server hjemme, kan denne metoden for kommunikasjon med Arduino -kort utvide denne serveren til et fullverdig DIY Home Automation -system. Ved å kombinere Python -skript som styrer mikrokontrolleren med en DIY -automatiseringskrets, kan NAS -lagringsboksen din ta på et helt nytt sett med nyttige funksjoner.

hvor lang tid tar det å lære excel

For å gjøre det til den ultimate DIY -opplevelsen, hvorfor ikke bygg din egen NAS -boks og bruke den til også å kontrollere apparatene dine? Tenk hvor kult det ville være å trykke play på Plex -serveren din og få lysene til å slå seg av automatisk!

Kontrollerer du allerede Arduino med Python? Er det fantastiske løsninger vi bare ikke vet om ennå? Gi oss beskjed i kommentarfeltet nedenfor!

Dele Dele kvitring E -post 5 tips for å overbelaste VirtualBox Linux -maskinene dine

Lei av den dårlige ytelsen som tilbys av virtuelle maskiner? Her er hva du bør gjøre for å øke VirtualBox -ytelsen.

Les neste
Relaterte temaer
  • DIY
  • Programmering
  • Arduino
  • Hjemmeautomatisering
  • Python
Om forfatteren Ian Buckley(216 artikler publisert)

Ian Buckley er frilansjournalist, musiker, utøver og videoprodusent bosatt i Berlin, Tyskland. Når han ikke skriver eller står på scenen, pusler han med DIY elektronikk eller kode i håp om å bli en gal forsker.

Mer fra Ian Buckley

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere