Kako programirati i kontrolirati Arduino s Pythonom

Kako programirati i kontrolirati Arduino s Pythonom

Python je olujno zauzeo svijet kodiranja. Uz uspon ovog novog jezika, procvjetala je i elektronička scena DIY. Ploče za razvoj i single board računala tvrtki poput Arduino i Raspberry Pi promijenili su način na koji ljudi stvaraju domaću elektroniku. Ne bi li bilo sjajno da možete programirati Arduino s Pythonom?





excel kombinira dvije kolone u jednu

Nema boljeg osjećaja od kombiniranja dvije cool stvari. Nažalost, nemoguće je izravno programirati Arduino s Pythonom, jer ploče nemaju mogućnost unutarnje interpretacije jezika. Ono što je moguće je izravna kontrola USB -a pomoću programa Python.





Ovaj članak će vam pokazati kako postaviti Arduino UNO (iako ovdje može raditi bilo koja Arduino kompatibilna ploča) za programiranje i upravljanje iz naredbenog retka pomoću programa Python. Ovaj vodič je napisan za Windows 10, ali radi i za Mac i Linux. Ovaj tijek rada možete čak koristiti za upravljanje Arduinom izravno s Raspberry Pi-a za vrhunsko iskustvo s dvostrukim spuštanjem.





Postavljanje vašeg Arduina za Python

Za današnji projekt koristit ćemo Arduino Uno, zajedno sa sučeljem pyFirmata za Python. Za to možete koristiti gotovo sve ploče kompatibilne s Arduinom, iako je u vrijeme pisanja samo sučelje pyFfirmata podržavalo Arduino Uno, Mega, Due i Nano. Ako ste već Python guru, pyFirmati možete dodati vlastitu podršku za ploču - svakako ažurirajte njihov GitHub!

Ako već niste, instalirajte Arduino IDE. Ako ste potpuno novi u svijetu mikrokontrolera, naš vodič za početnike u Arduinu pomoći će vam da sve postavite na svoje mjesto.



Povežite Arduino ploču i otvorite IDE. Provjerite jeste li odabrali ispravnu ploču i priključak u Alati Jelovnik. Učitajte Standardne firme primjer skice i prenesite je na ploču. To će vam omogućiti izravno upravljanje Arduinom sve dok je povezan s računalom putem USB -a. Pod uvjetom da se skice prenose na vašu ploču bez ikakvih pogrešaka, spremni ste za nastavak.

Python i kontrola naredbenog retka

Za kontrolu našeg Arduina koristit ćemo Python 3.4 jer modul koji ćete instalirati to navodi kao najnoviju kompatibilnu verziju. Svaka verzija prije ovoga trebala bi dobro funkcionirati, a prijavljeno je da rade i kasnije verzije. Python 3.4 za Windows 10 možete preuzeti s Python Software Foundation mjestu. Ako želite pokrenuti više verzija Pythona, naš vodič kroz virtualna okruženja Python moći će vam pomoći.





Nakon što instalirate Python, želimo ga dodati u varijablu PATH vašeg sustava. To će nam omogućiti pokretanje Python koda izravno iz naredbenog retka bez potrebe da se nalazi u direktoriju u kojem je instaliran. To možete učiniti otvaranjem Upravljačka ploča , u potrazi za Okoliš i kliknite na Uredite varijable okruženja sustava . Pri dnu prozora odaberite Varijable okoliša . Ovo će otvoriti ovaj prozor:

Ako već vidite STAZA na popisu kliknite Uredi i dodajte svoj Piton i Python/skripte imenik. Ako nemate varijablu PATH, kliknite novo i dodajte je. Imajte na umu da je Python instaliran izravno u C: ovdje. Ako ste ga instalirali na drugom mjestu, morat ćete ga izmijeniti tako da odražava ovo. Pritisnite OK natrag niz lanac prozora i gotovo ste spremni za upravljanje svojim Arduinom s Pythonom!





Čarobna mast

Trebat će vam posljednji dio slagalice da Python lijepo razgovara s našim Arduinom. To dolazi u obliku Python sučelja tzv pyFirmata . Ovo sučelje, koje je stvorio Tino de Bruijn, jest dostupna za preuzimanje s github -a, iako ga možete instalirati izravno iz naredbenog retka upisivanjem:

pip install pyfirmata

Sve u redu, trebao bi se instalirati i izgledati ovako:

Ako ne uspije, pređite na dodavanje Pythona u Promjenjiva okolina odjeljak i provjerite jeste li dali pravi put svom Python direktoriju.

Making It Happen

Sada je sve postavljeno i možete stvoriti Python program za svoj Arduino kako biste ga testirali. Otvorite IDE po svom izboru. Koristit ćemo Zasjeniti danas, ali biste jednako lako mogli koristiti bilo koji uređivač teksta, pa čak i IDE u oblaku.

Izradite novu skriptu i spremite je kao blink.py . Prekinuvši tradiciju standardnim LED programom koji treperi, stvorit ćete program koji od korisnika traži koliko puta želi da LED dioda bljesne prije izvođenja. To je kratak program, koji možete preuzmite ovdje ako želite odmah prijeći na to, ali hajde da to raščlanimo.

Prvo ćete htjeti uvesti ono što vam je potrebno iz pyFirmata modul, zajedno sa standardnim Pythonom Vrijeme modul.

kombinirajte više fotografija u jedan Photoshop
from pyfirmata import Arduino, util
import time

Sada ćete htjeti postaviti Arduino ploču. Ovaj članak pretpostavlja da koristite Arduino uno ploča, iako je podržano nekoliko drugih Arduino ploča. Za detalje o podršci na ploči pogledajte pyFirmata github.

Provjerite koji COM port koristite u Arduino IDE -u i unesite ga u svoj kôd kao varijablu odbor .

board = Arduino('COM3')

Sada ćete postaviti korisnički upit. Oni koji poznaju Python ovdje će prepoznati sve. Ispisujete pitanje na zaslon pomoću ulazni funkciju i odgovor spremite kao varijablu. Nakon što korisnik unese broj, program izvješćuje koliko će puta LED treperiti.

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

Da bi LED dioda trepnula odgovarajući broj puta, koristite a za petlju . Ako ste novo za Python , vodite računa o uvlačenju, jer su za razliku od drugih jezika razmaci dio sintakse. Imajte na umu da je pin 13 ugrađena LED dioda za Arduino Uno, morat ćete to promijeniti ako je vaša ploča drugačija.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Vi ćete baciti loopTimes varijabla na cijeli broj, jer će se unos korisnika automatski pohraniti kao niz. U ovom jednostavnom demo pretpostavljamo da će korisnik unijeti brojčanu vrijednost. Bilo koji drugi unos, poput 'osam', dovest će do pogreške.

Spremite skriptu i otvorite Naredbeni redak .

Trepćuća svjetla i druga otkrića

Sve je spremno za rad, sve što trebate učiniti je otići do skripte i pokrenuti je. Učinite to upisivanjem cd [put do direktorija skripte] a zatim tipkanje python blink.py .

Sve u redu, vaš će se program pokrenuti s laganim kašnjenjem dok se Arduino inicijalizira, od vas će tražiti broj, a zatim će bljeskati toliko puta pomoću ugrađene LED diode.

Izlaz programa trebao bi izgledati ovako:

Čim pritisnete enter nakon odabranog broja treptaja, Arduino bi trebao izvršiti vaše narudžbe.

Mali počeci

Ovaj projekt je bio pravi početak komunikacije između Pythona i Arduino ploče. Ovaj pristup je vrlo različit od uobičajenog tijeka postavljanja skripti na sam Arduino, ali otvara potpuno novi način rada s platformom, pogotovo ako vam se sviđa programski jezik Python.

Ako koristite a Linux poslužitelj kod kuće, ova metoda komuniciranja s Arduino pločama mogla bi proširiti taj poslužitelj u potpuno razvijen sustav za kućnu automatizaciju. Kombinirajući Python skripte koje upravljaju mikrokontrolerom s automatizacijskim krugom 'uradi sam', vaša NAS memorijska kutija mogla bi preuzeti potpuno novi skup korisnih funkcija.

najbolja aplikacija za WiFi pozive za android

Kako bi to bilo vrhunsko iskustvo 'uradi sam', zašto ne izgradite vlastitu NAS kutiju i upotrijebiti ga za kontrolu svojih uređaja? Zamislite kako bi bilo super pritisnuti play na vašem Plex poslužitelju i svjetla se automatski isključiti!

Kontrolirate li već Arduino pomoću Pythona? Postoje li nevjerojatna rješenja za koja jednostavno još ne znamo? Javite nam u odjeljku komentara ispod!

Udio Udio Cvrkut E -pošta 5 savjeta za nadopunu vaših VirtualBox Linux strojeva

Umorni ste od loših performansi koje nude virtualni strojevi? Evo što biste trebali učiniti kako biste povećali performanse VirtualBox -a.

Pročitajte Dalje
Povezane teme
  • Uradi sam
  • Programiranje
  • Arduino
  • Kućna automatizacija
  • Piton
O autoru Ian Buckley(216 objavljenih članaka)

Ian Buckley je slobodni novinar, glazbenik, izvođač i video producent koji živi u Berlinu, Njemačka. Kad ne piše ili je na pozornici, petlja s DIY elektronikom ili kodom u nadi da će postati ludi znanstvenik.

Više od Iana Buckleyja

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu