Jak programovat a ovládat Arduino pomocí Pythonu

Jak programovat a ovládat Arduino pomocí Pythonu

Python vzal kódující svět útokem. Spolu s nástupem tohoto nového jazyka vzkvétala také elektronická scéna pro kutily. Vývojové desky a jednodeskové počítače od společností jako Arduino a Raspberry Pi změnily způsob, jakým lidé vytvářejí domácí elektroniku. Nebylo by úžasné, kdybyste mohli naprogramovat Arduino s Pythonem?





vylepšení výkonu Windows 10 pro hraní her

Není lepší pocit, než spojit dvě skvělé věci. Je smutné, že není možné přímo programovat Arduino pomocí Pythonu, protože desky nemají možnost integrované interpretace jazyka. Co je však možné, je přímá kontrola přes USB pomocí programu Python.





Tento článek vám ukáže, jak nastavit Arduino UNO (i když zde může fungovat jakákoli deska kompatibilní s Arduino), aby bylo programováno a ovládáno z příkazového řádku pomocí programů Python. Tento tutoriál je napsán pro Windows 10, ale funguje také pro Mac a Linux. Tento pracovní postup můžete dokonce použít k ovládání Arduina přímo z Raspberry Pi pro dokonalý zážitek z dvojitého down-down-DIY.





Nastavení Arduina pro Python

Pro dnešní projekt budeme používat Arduino Uno spolu s rozhraním pyFirmata pro Python. K tomu můžete použít téměř jakoukoli desku kompatibilní s Arduino, i když v době psaní je rozhraní pyFfirmata podporováno pouze Arduino Uno, Mega, Due a Nano. Pokud již jste guruem Pythonu, můžete do pyFirmata přidat vlastní podporu desek - pokud ano, nezapomeňte aktualizovat jejich GitHub!

Pokud jste to ještě neudělali, nainstalujte si Arduino IDE. Pokud jste ve světě mikrokontrolérů úplně noví, naši příručka pro začátečníky k Arduinu vám pomůže dostat vše na místo.



Připojte desku Arduino a otevřete IDE. Ujistěte se, že máte v Nástroje Jídelní lístek. Nahrajte StandardFirmata příklad načrtněte a nahrajte na tabuli. To vám umožní přímo ovládat Arduino, pokud je připojeno k počítači přes USB. Pokud se skica nahraje na vaši tabuli bez chyb, jste připraveni pokračovat.

Řízení Pythonu a příkazového řádku

K ovládání našeho Arduina použijeme Python 3.4, protože modul, který budete instalovat, to uvádí jako nejnovější kompatibilní verzi. Jakákoli verze před tím by měla fungovat dobře a novější verze byly hlášeny do práce. Python 3.4 pro Windows 10 si můžete stáhnout z Python Software Foundation stránky. Pokud chcete provozovat více verzí Pythonu, pomůže vám náš průvodce virtuálním prostředím Pythonu.





Jakmile si nainstalujete Python, chceme jej přidat do proměnné PATH vašeho systému. Díky tomu budeme moci spouštět kód Pythonu přímo z příkazového řádku, aniž bychom museli být v adresáři, do kterého byl nainstalován. To lze provést otevřením Kontrolní panel , hledám životní prostředí a klikněte na Upravte proměnné prostředí systému . V dolní části okna vyberte Proměnné prostředí . Zobrazí se toto okno:

Pokud už vidíte CESTA v seznamu klikněte na Upravit a přidejte svůj Krajta a Python/skripty adresář. Pokud proměnnou PATH nemáte, klikněte na novou a přidejte ji. Všimněte si, že Python byl nainstalován přímo do C: tady. Pokud jste jej nainstalovali jinde, budete jej muset upravit tak, aby tomu odpovídal. Klikněte na OK zpět v řetězci oken a jste téměř připraveni ovládat své Arduino pomocí Pythonu!





Kouzelný tuk

Budete potřebovat poslední kousek skládačky, aby si Python s naším Arduinem hezky popovídal. To přichází ve formě rozhraní Python s názvem pyFirmata . Toto rozhraní vytvořené Tino de Bruijn je k dispozici ke stažení z github, ačkoli jej můžete nainstalovat přímo z příkazového řádku zadáním:

pip install pyfirmata

Všechno je v pořádku, mělo by se nainstalovat a vypadat takto:

Pokud selže, přejděte k přidání Pythonu do souboru Proměnné prostředí sekci a ujistěte se, že jste zadali správnou cestu ke svému adresáři Pythonu.

Making It Happen

Nyní je vše nastaveno a můžete pro svůj Arduino vytvořit program Python, který to otestuje. Otevřete IDE podle svého výběru. Budeme používat Zatmění dnes, ale stejně snadno můžete použít jakýkoli textový editor nebo dokonce IDE v cloudu.

Vytvořte nový skript a uložte jej jako blink.py . Prolomením tradice se standardním blikajícím programem LED vytvoříte program, který uživatele vyzve k tomu, kolikrát chtějí, aby LED dioda před provedením problikla. Je to krátký program, který můžete stáhnout zde pokud se k tomu chcete dostat rovnou, ale pojďme to rozebrat.

Nejprve budete chtít importovat to, co potřebujete, z pyFirmata modul spolu se standardním Pythonem Čas modul.

jak připnout na google mapy
from pyfirmata import Arduino, util
import time

Nyní budete chtít nastavit desku Arduino. Tento článek předpokládá, že používáte Arduino uno desce, ačkoli je podporováno několik dalších desek Arduino. Podrobnosti o podpoře na desce najdete v pyFirmata github.

Zkontrolujte, který port COM používáte v Arduino IDE, a zadejte jej do kódu jako proměnnou prkno .

board = Arduino('COM3')

Nyní nastavíte uživatelskou výzvu. Ti, kteří znají Python, zde poznají všechno. Otázku vytisknete na obrazovku pomocí vstup funkci a odpověď uložte jako proměnnou. Jakmile uživatel zadá číslo, program hlásí, kolikrát LED bliká.

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

Chcete -li, aby LED blikla odpovídající početkrát, použijte a pro smyčku . Pokud jste novinka v Pythonu , dávejte pozor na odsazení, protože na rozdíl od jiných jazyků jsou mezery součástí syntaxe. Všimněte si, že pin 13 je integrovaná LED pro Arduino Uno, budete ji muset upravit, pokud se vaše deska liší.

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

Budete vrhat loopTimes zde proměnná na celé číslo, protože vstup od uživatele bude automaticky uložen jako řetězec. V této jednoduché ukázce předpokládáme, že uživatel zadá číselnou hodnotu. Jakýkoli jiný záznam, například „osm“, způsobí chybu.

Uložte skript a otevřete soubor Příkazový řádek .

Blikající světla a další zjevení

Vše je připraveno, vše, co musíte udělat, je přejít na místo, kde je skript, a spustit ho. Proveďte to zadáním cd [cesta k adresáři skriptu] a pak psát python blink.py .

Všechno je v pořádku, váš program se spustí s mírným zpožděním při inicializaci Arduina, vyzve vás k zadání čísla a poté mnohokrát bliká pomocí integrované LED.

Výstup programu by měl vypadat takto:

Jakmile stisknete Enter po zvoleném počtu bliknutí, Arduino by mělo provést vaše objednávky.

Malé začátky

Tento projekt byl začátkem komunikace mezi Pythonem a deskou Arduino. Tento přístup se velmi liší od běžného pracovního postupu odesílání skriptů do samotného Arduina, přesto otevírá zcela nový způsob práce s platformou, zvláště pokud máte rádi programovací jazyk Python.

Pokud používáte a Server Linux doma by tento způsob komunikace s deskami Arduino mohl rozšířit tento server na plnohodnotný systém domácí automatizace DIY. Kombinací skriptů Pythonu ovládajících mikrokontrolér s automatizačním obvodem DIY by váš úložný box NAS mohl převzít zcela novou sadu užitečných funkcí.

chránič obrazovky pro iphone 11 pro max

Aby to byl dokonalý kutilský zážitek, proč ne postavte si vlastní NAS box a používat jej také k ovládání svých spotřebičů? Představte si, jak by bylo skvělé stisknout tlačítko play na vašem serveru Plex a nechat si automaticky vypnout světla!

Ovládáte již Arduino pomocí Pythonu? Existují úžasná řešení, o kterých zatím nevíme? Dejte nám vědět v sekci komentáře níže!

Podíl Podíl tweet E-mailem 5 tipů, jak dobít své stroje VirtualBox Linux

Jste unaveni špatným výkonem, který nabízejí virtuální stroje? Zde je to, co byste měli udělat, abyste zvýšili výkon svého VirtualBoxu.

Číst dále
Související témata
  • DIY
  • Programování
  • Arduino
  • Automatizace domácnosti
  • Krajta
O autorovi Ian Buckley(216 publikovaných článků)

Ian Buckley je nezávislý novinář, hudebník, performer a video producent žijící v Berlíně v Německu. Když nepíše nebo není na jevišti, pohrává si s elektronikou nebo kódem pro kutily v naději, že se stane šíleným vědcem.

Více od Iana Buckleyho

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru