Sådan programmeres og styres en Arduino med Python

Sådan programmeres og styres en Arduino med Python

Python har taget den kodende verden med storm. Ved siden af ​​stigningen i dette nye sprog har DIY -elektronikscenen også blomstret. Udviklingstavler og single board computere fra virksomheder som Arduino og Raspberry Pi har ændret den måde, folk skaber hjemmelavet elektronik. Ville det ikke være fantastisk, hvis du kunne programmere en Arduino med Python?





hvordan man kopierer dvd'er til harddisk

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





Denne artikel viser dig, hvordan du konfigurerer en Arduino UNO (selvom ethvert Arduino -kompatibelt kort kan fungere her), der skal programmeres og styres 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 til 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 i skrivende stund 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!

Hvis du ikke allerede har gjort det, skal du installere Arduino IDE. Hvis du er helt ny i verden af ​​mikrokontrollere, vores begynderguide til Arduino hjælper dig med at få alt på plads.



Tilslut dit Arduino -kort, og åbn IDE'en. Sørg for, at du har valgt det korrekte kort og port i Værktøjer menu. Indlæs Standard Firmata eksempelskitse og uploade det til tavlen. Dette giver dig mulighed for at styre Arduino direkte, så længe den er tilsluttet computeren via USB. Forudsat at skitsen uploades til dit bord uden fejl, er du klar til at gå videre.

Python og kommandolinjekontrol

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 skulle fungere fint, og senere versioner er rapporteret til at fungere. Du kan downloade Python 3.4 til Windows 10 fra Python Software Foundation websted. Hvis du vil køre flere versioner af Python, kan vores guide til virtuelle Python -miljøer hjælpe dig.





Når du har installeret Python, vil vi tilføje det til dit systems PATH -variabel. Dette lader 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 , leder efter Miljø og klik på Rediger systemmiljøvariablerne . Vælg nederst i vinduet miljøvariabler . Dette åbner dette vindue:

Hvis du allerede ser STI Klik på rediger på listen, og tilføj din Python og Python/scripts vejviser. 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 har installeret det andre steder, skal du ændre det for at afspejle dette. Klik på OK tilbage i vindueskæden, og du er næsten klar til at styre din Arduino med Python!





Det magiske fedt

Du skal bruge en sidste brik i puslespillet for at få Python til at tale pænt med vores Arduino. Dette kommer i form af et Python -interface kaldet pyFirmata . Denne grænseflade, skabt af Tino de Bruijn, er tilgængelig til download fra github, selvom du kan installere det direkte fra kommandolinjen ved at skrive:

pip install pyfirmata

Alt i orden bør det installere og se sådan ud:

Hvis det mislykkes, skal du tilføje Python til Miljø Variabel og sørg for, at du har givet den rigtige vej til dit Python -bibliotek.

At få det til at ske

Nu er alt konfigureret, og du kan oprette et Python -program til din Arduino for at teste det. Åbn en IDE efter eget valg. Vi vil bruge Formørkelse i dag, men du kan lige så let bruge enhver tekstredigerer eller endda en IDE i skyen.

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

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

er det ulovligt at få adgang til det dybe web
from pyfirmata import Arduino, util
import time

Nu vil du konfigurere Arduino -kortet. Denne artikel forudsætter, at du bruger en Arduino uno board, selvom flere andre Arduino -boards understøttes. Se pyFirmata github for detaljer om board support.

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

board = Arduino('COM3')

Nu konfigurerer du brugerprompten. Dem, der kender Python, vil genkende alt her. Du udskriver et spørgsmål til skærmen ved hjælp af input funktion, og gem 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 passende antal gange, bruger du en til sløjfe . Hvis du er ny i Python , pas på med indrykningen, da rumene i modsætning til andre sprog er en del af syntaksen. Bemærk, at pin 13 er den indbyggede LED til Arduino Uno, du bliver nødt til at æ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 kaster loopTimes variabel til et helt tal her, da input fra brugeren automatisk gemmes som en streng. I denne simple demo antager vi, at brugeren vil indtaste en numerisk værdi. Enhver anden post, f.eks. 'Otte', udsender en fejl.

Gem dit script, og åbn Kommandoprompt .

Blinkende lys og andre åbenbaringer

Alt er klar til at gå, alt hvad 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 bibliotek] og derefter skrive python blink.py .

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

Programoutput skal se sådan ud:

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

Små begyndelser

Dette projekt har været en barebones start til at kommunikere mellem Python og et Arduino -kort. Denne tilgang er meget anderledes end den sædvanlige arbejdsgang ved upload af scripts til selve Arduino, men alligevel åbner den en helt ny måde at arbejde med platformen, især hvis du kan lide Python -programmeringssproget.

Hvis du bruger en Linux server herhjemme, kunne denne metode til kommunikation med Arduino -kort udvide den server til et fuldt udbygget DIY Home Automation -system. Ved at kombinere Python -scripts, der styrer mikrokontrolleren, med et DIY -automatiseringskredsløb, kan din NAS -opbevaringsboks modtage et helt nyt sæt nyttige funktioner.

hvordan man tvinger til at afslutte en proces

For at gøre det til den ultimative DIY -oplevelse, hvorfor ikke bygge din egen NAS -boks og bruge den til også at styre dine apparater? Forestil dig hvor sejt det ville være at trykke play på din Plex -server og få lysene til at slukke automatisk!

Har du allerede styr på Arduino ved hjælp af Python? Er der fantastiske løsninger, vi bare ikke ved om endnu? Lad os vide det i kommentarfeltet herunder!

Del Del Tweet E -mail 5 tips til at overlade dine VirtualBox Linux -maskiner

Træt af den dårlige ydelse, der tilbydes af virtuelle maskiner? Her er hvad du skal gøre for at øge din VirtualBox -ydeevne.

Læs Næste
Relaterede emner
  • gør det selv
  • Programmering
  • Arduino
  • Hjemmeautomatisering
  • Python
Om forfatteren Ian Buckley(216 artikler udgivet)

Ian Buckley er freelance journalist, musiker, performer og videoproducent bosat i Berlin, Tyskland. Når han ikke skriver eller på scenen, piller han med DIY -elektronik eller kode i håb om at blive en gal videnskabsmand.

Mere fra Ian Buckley

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere