Kuidas programmeerida ja juhtida Arduinot Pythoni abil

Kuidas programmeerida ja juhtida Arduinot Pythoni abil

Python on kodeeriva maailma tormiliselt vallutanud. Selle uue keele tõusu kõrval on õitsenud ka isetegemise elektroonika stseen. Arendusplaadid ja üheplaatarvutid firmadelt nagu Arduino ja Raspberry Pi on muutnud viisi, kuidas inimesed loovad kodus valmistatud elektroonikat. Kas poleks äge, kui saaksite programmeerida Prdhoniga Arduino?





välist kõvaketast ei kuvata minu arvutis

Pole paremat tunnet kui ühendada kaks lahedat asja. Kahjuks on võimatu Arduinot Pythoniga otse programmeerida, kuna tahvlitel pole võimalust keele tõlgendamiseks. Võimalik on aga otsene USB juhtimine Pythoni programmi abil.





See artikkel näitab teile, kuidas seadistada Arduino UNO (kuigi siin saab töötada mis tahes Arduinoga ühilduv plaat), mida saab programmeerida ja juhtida käsurealt Pythoni programmide abil. See õpetus on kirjutatud Windows 10 jaoks, kuid töötab ka Maci ja Linuxi jaoks. Saate seda töövoogu kasutada isegi Arduino juhtimiseks otse Raspberry Pi-lt, et saada ülim topelt-isetegemise kogemus.





Arduino seadistamine Pythoni jaoks

Tänase projekti jaoks kasutame Arduino Unot koos Pythoni pyFirmata liidesega. Selle jaoks saate kasutada peaaegu kõiki Arduinoga ühilduvaid tahvleid, kuigi kirjutamise ajal toetab pyFfirmata liides ainult Arduino Uno, Mega, Due ja Nano. Kui olete juba Pythoni guru, saate pyFirmatale lisada oma plaaditoe - värskendage kindlasti nende GitHubi!

Kui te pole seda veel teinud, installige Arduino IDE. Kui olete mikrokontrollerite maailmas täiesti uus, siis meie Arduino algajate juhend aitab sul kõik paika saada.



Ühendage oma Arduino plaat ja avage IDE. Veenduge, et kaustas oleks valitud õige plaat ja port Tööriistad menüü. Laadige üles StandardFirmata visandi näide ja laadige see tahvlile. See võimaldab teil Arduinot otse juhtida, kui see on arvutiga USB kaudu ühendatud. Kui visand laaditakse teie tahvlile ilma vigadeta, olete valmis edasi liikuma.

Pythoni ja käsurea juhtimine

Arduino juhtimiseks kasutame Python 3.4, kuna installitav moodul määrab selle uusimaks ühilduvaks versiooniks. Iga versioon enne seda peaks hästi toimima ja hilisemad versioonid on teatatud töötamisest. Python 3.4 Windows 10 jaoks saate alla laadida saidilt Python Tarkvara Sihtasutus saidil. Kui soovite käitada Pythoni mitut versiooni, saab teid aidata meie Pythoni virtuaalsete keskkondade juhend.





Kui olete Pythoni installinud, tahame selle lisada teie süsteemi muutujale PATH. See võimaldab meil käivitada Pythoni koodi otse käsurealt, ilma et peaksime olema kataloogis, kuhu see installiti. Seda saate teha, avades Kontrollpaneel , otsides Keskkond ja klõpsake nuppu Muutke süsteemi keskkonnamuutujaid . Valige akna allservas Keskkonnamuutujad . See avab selle akna:

Kui juba näete RADA loendis klõpsake käsul Muuda ja lisage oma Python ja Python/Skriptid kataloogi. Kui teil pole muutujat PATH, klõpsake nuppu uus ja lisage see. Pange tähele, et Python installiti otse seadmesse C: siin. Kui installisite selle mujale, peate seda kajastama. Klõpsake akende ahela all nuppu OK ja olete peaaegu valmis oma Arduinot Pythoni abil juhtima!





Maagiline määre

Teil on vaja viimast pusletükki, et Python saaks meie Arduinoga kenasti rääkida. See on Pythoni liidese nimega pyFirmata . See liides, mille on loonud Tino de Bruijn, on allalaadimiseks saadaval githubist, kuigi saate selle installida otse käsurealt, tippides:

pip install pyfirmata

Kui kõik on korras, peaks see installima ja välja nägema selline:

Kui see ebaõnnestub, vaadake üle Pythoni lisamine Keskkonna muutuja ja veenduge, et olete oma Pythoni kataloogi õige tee andnud.

Et see juhtuks

Nüüd on kõik seadistatud ja saate Arduino jaoks selle testimiseks luua Pythoni programmi. Avage oma valitud IDE. Me hakkame kasutama Eclipse täna, kuid sama hõlpsalt võiksite kasutada mis tahes tekstiredaktorit või isegi pilves olevat IDE -d.

Looge uus skript ja salvestage see nimega vilkuma.py . Lõpetades traditsioonilise vilkuva LED -programmiga traditsiooni, loote programmi, mis palub kasutajal enne LED -i käivitamist küsida, mitu korda nad soovivad LED -i vilkumist. See on lühike programm, mida saate lae alla siit kui soovite otse selle juurde jõuda, aga teeme selle lahti.

Esiteks soovite importida kaustast vajaliku pyFirmata moodul koos standardse Pythoniga Aeg moodul.

kuidas lubada veebisaiti tulemüüri kaudu
from pyfirmata import Arduino, util
import time

Nüüd soovite seadistada Arduino plaadi. See artikkel eeldab, et kasutate Arduino uno pardal, kuigi toetatakse mitmeid teisi Arduino tahvleid. Lisateavet pardatoe kohta leiate pyFirmata githubist.

Kontrollige, millist COM -porti Arduino IDE -s kasutate, ja sisestage see muutujana oma koodi pardal .

board = Arduino('COM3')

Nüüd seadistate kasutajaviiba. Need, kes tunnevad Pythoni, tunnevad siin kõik ära. Prindite küsimuse ekraanile, kasutades nuppu sisend funktsiooni ja salvestage vastus muutujana. Kui kasutaja on numbri sisestanud, teatab programm sellest, mitu korda LED -tuli vilgub.

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

Selleks, et LED vilguks vajalikul arvul, kasutage a silmuse jaoks . Kui te olete uus Pythonis , olge taandega ettevaatlik, kuna erinevalt teistest keeltest on tühikud süntaksi osa. Pange tähele, et tihvt 13 on Arduino Uno sisseehitatud LED, peate seda muutma, kui teie plaat on erinev.

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

Sa viskad loopTimes muutuja täisarvuks, kuna kasutaja sisend salvestatakse automaatselt stringina. Selle lihtsa demo puhul eeldame, et kasutaja sisestab arvväärtuse. Mis tahes muu kirje, näiteks „kaheksa”, annab vea.

Salvestage oma skript ja avage Käsurida .

Vilkuvad tuled ja muud ilmutused

Kõik on kasutamiseks valmis, peate lihtsalt navigeerima skripti asukohta ja käivitama selle. Tehke seda tippides cd [tee skripti kataloogi] ja siis kirjutades python vilgub.py .

Kui kõik on hästi, algab teie programm väikese viivitusega, kui Arduino initsialiseerib, palub teil numbri sisestada ja vilgub seejärel mitu korda, kasutades sisseehitatud LED -i.

Programmi väljund peaks välja nägema selline:

Niipea kui vajutate pärast valitud vilkumiste arvu sisestusklahvi, peaks Arduino teie korraldused täitma.

Väikesed algused

See projekt on olnud paljaste luudega suhtlemine Pythoni ja Arduino tahvli vahel. See lähenemisviis erineb tavapärasest skriptide Arduinole üleslaadimise töövoost, kuid see avab täiesti uue viisi platvormiga töötamiseks, eriti kui teile meeldib Pythoni programmeerimiskeel.

Kui kasutate a Linuxi server kodus võib see Arduino tahvlitega suhtlemise meetod laiendada selle serveri täieõiguslikuks DIY koduautomaatikasüsteemiks. Kombineerides mikrokontrollerit juhtivaid Pythoni skripte DIY automaatikaga, saaks teie NAS -i mälukast võtta täiesti uue kasulike funktsioonide komplekti.

nintendo lüliti ei saa võrguga ühendust luua

Selleks, et see oleks ülim isetegemise kogemus, miks mitte ehitada oma NAS -i kast ja kasutate seda ka oma seadmete juhtimiseks? Kujutage ette, kui lahe oleks vajutada oma Plex -serveri esitusnuppu ja lasta tuled automaatselt välja lülitada!

Kas kontrollite Arduinot juba Pythoni abil? Kas on hämmastavaid lahendusi, millest me veel ei tea? Andke meile sellest teada allpool olevas kommentaaride jaotises!

Jaga Jaga Piiksuma E -post 5 näpunäidet VirtualBox Linuxi masinate ülelaadimiseks

Kas olete väsinud virtuaalmasinate halvast jõudlusest? Siin on, mida peaksite tegema oma VirtualBoxi jõudluse suurendamiseks.

Loe edasi
Seotud teemad
  • Isetegija
  • Programmeerimine
  • Arduino
  • Koduautomaatika
  • Python
Autori kohta Ian Buckley(Avaldatud 216 artiklit)

Ian Buckley on vabakutseline ajakirjanik, muusik, esineja ja videoprodutsent, kes elab Saksamaal Berliinis. Kui ta parasjagu ei kirjuta ega laval, nokitseb ta isetehtud elektroonika või koodi kallal, lootuses saada hulluks teadlaseks.

Rohkem Ian Buckleylt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin