- Potřebné materiály:
- Instalace Pythonu do počítače:
- Získání PySerial v Pythonu:
- Náš první program Arduino Python:
- Ovládání LED pomocí Pythonu a Arduina:
Arduino bylo vždy výkonnou a snadno použitelnou učební / vývojovou platformou, pokud jde o vývoj hardwaru s otevřeným zdrojovým kódem. V dnešním moderním světě je každý hardware poháněn univerzálním programovacím jazykem na vysoké úrovni, aby byl efektivnější a uživatelsky přívětivější. Jedním z takových jazyků je Python. Python je interpretovaný, objektově orientovaný programovací jazyk na vysoké úrovni s dynamickou sémantikou s vysokou úrovní zabudovaných v datových strukturách, kombinovaný s dynamickým typováním a dynamickou vazbou, což je pro Rapid Application Development velmi atraktivní.
Kombinace výkonu Arduina a Pythonu otevře dveře mnoha možnostem, protože python má zvýšenou produktivitu díky své schopnosti interakce s jinými platformami, jako je openCV, Matlab atd. Takže v tomto tutoriálu se naučíme, jak můžeme nainstalovat python na náš počítač a jak jej používat s Arduino pro přepínání palubní LED Arduino.
Pojďme tedy začít…
Potřebné materiály:
- Arduino Uno (nebo jakékoli desky Arduino)
- Počítač s připojením k internetu
Instalace Pythonu do počítače:
Prvním krokem v tomto kurzu by samozřejmě byla instalace Pythonu na náš počítač. Kroky uvedené níže platí pouze pro uživatele systému Windows se 32bitovým nebo 64bitovým operačním systémem. Postup instalace pro MAC a Linux se liší.
- Klikněte na 32bitový Python-2.7.9 a tím se na váš počítač nainstaluje 32bitový Python IDLE. Nestahujte 64bitovou verzi ani aktualizované verze, protože neposkytují podporu pro naše knihovny Arduino. I když váš počítač pracuje na 64bitové verzi, můžete použít samotný 32bitový Python.
- Otevřete stažený soubor exe a postupujte podle pokynů. Neměňte adresář, do kterého se python instaluje. Standardně to bude C: \ Python27 a nechte to tak.
- Během instalace můžete obdržet varování od antiviru (pokud existuje), v takovém případě klikněte na povolit.
A je to !, python je úspěšně nainstalován na náš počítač. Můžete to ověřit vyhledáním „Python IDLE“ ve vyhledávacím poli Windows a jeho otevřením.
Po otevření byste měli dostat následující obrazovku. Toto okno se nazývá Python Shell a od nynějška jej budeme označovat jako „ Python shell “.
Tato obrazovka se nazývá Python Shell. Zde můžete přímo kódovat a získat výstup na stejné obrazovce nebo vytvořit nový soubor a napsat program tam a ověřit program zde. Později se dostaneme k podrobnostem o vytvoření pythonovského programu, prozatím si ověříme, zda python funguje.
Chcete-li tak učinit, jednoduše zadejte „ tisk (1 + 1) “ a stiskněte klávesu Enter. Výsledek by se měl vytisknout, jak je znázorněno níže.
Získání PySerial v Pythonu:
Dalším krokem je instalace pyserial. PySerial je modul Python API, který se používá ke čtení a zápisu sériových dat do Arduina nebo jiného mikrokontroléru.
Kliknutím na Pyserial Windows stáhněte PySerial. Výsledným stažením bude soubor exe, který lze přímo nainstalovat. Během instalace neměňte žádné nastavení. Ponechte to na výchozí adresář a výchozí nastavení.
Nyní zkontrolujeme, zda je PySerial nainstalován správně. Chcete-li to provést, znovu otevřete Python Shell a zadejte
importovat sériové číslo . Pokud byla knihovna úspěšně nainstalována, neměli byste dostávat žádné chybové zprávy, jak je znázorněno na obrázku níže. Pokud narazíte na nějaké chyby, pošlete je do sekce komentářů a my se to pokusíme vyřešit.
Tento výukový program předpokládá, že jste s Arduinem obeznámeni a máte zkušenosti s nahráváním projektů do Arduina. Pojďme tedy přímo skočit do našeho programu v Pythonu. Pokud jste s Arduino začátečník, podívejte se na naše projekty Arduino a začněte od LED Blikající s Arduino.
Náš první program Arduino Python:
Jak již bylo řečeno, budeme ovládat vestavěnou LED desku Arduino pomocí skriptu Python. Začněme kódem Arduino.
Program pro Arduino:
Kompletní program pro tento výukový program pro Arduino python je uveden na konci této stránky. Přečtěte si dále, abyste věděli, jak to funguje.
Uvnitř nastavení funkce jsme inicializaci sériové komunikace na 9600 přenosovou rychlost a prohlašují, že budeme pomocí vestavěného vedl jako výstup a přeměnit ji nízko při startu programu. Také jsme odeslali uvítací zprávu do pythonu prostřednictvím sériového tisku, jak je uvedeno níže:
void setup () {Serial.begin (9600); // inicializuje sériový COM na 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // vytvořte LED kolík (13) jako výstupní digitalWrite (LED_BUILTIN, LOW); Serial.println ("Ahoj! Jsem Arduino"); }
Uvnitř smyčky funkce, čteme za jakýchkoliv dat, která přichází sériově a přiřazení hodnoty proměnné „data“. Nyní na základě hodnoty této proměnné („data“) přepínáme vestavěnou led, jak je znázorněno níže.
void loop () {while (Serial.available ()) {data = Serial.read (); } if (data == '1') digitalWrite (LED_BUILTIN, HIGH); else if (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Program pro Python:
Kompletní program pythonu pro tento tutoriál je uveden na konci této stránky. Přečtěte si dále, abyste věděli, jak psát a používat to samé.
- Otevřete prostředí Python Shell (Python IDLE) a klikněte na Soubor-> Nový
- Otevře se nový textový soubor, do kterého můžete zadat svůj program.
- Než něco napíšeme, umožníme uložit soubor pomocí Ctrl + S. Zadejte libovolné jméno a klikněte na uložit. Tím se automaticky uloží soubor v příponě „.py“.
- Nyní zadejte program nebo vložte kód pythonu uvedený na konci této stránky. Vysvětlení je uvedeno níže a nakonec spusťte program.
V našem programu by prvním krokem byl import sériové a časové knihovny. Sériová knihovna, jak již bylo řečeno, bude použita ke čtení a zápisu sériových dat a časová knihovna bude použita k vytvoření zpoždění v našem programu. Tyto dvě knihovny lze do našeho programu importovat pomocí následujících dvou řádků:
import serial #Serial imported for Serial communication import time #Required to use delay functions
Dalším krokem by bylo inicializovat sériový objekt pomocí naší sériové knihovny. V tomto programu jsme pojmenovali náš sériový objekt jako „ArduinoSerial“ . V tomto řádku musíme uvést název portu COM, ke kterému je naše Arduino připojeno, a při jaké přenosové rychlosti funguje, jak je uvedeno níže.
ArduinoSerial = serial.Serial ('com18', 9600)
Poznámka: Je velmi důležité zmínit správný název portu COM. Naleznete jej pomocí Správce zařízení v počítači.
Jakmile je sériový objekt inicializován, měli bychom program držet po dobu dvou sekund, aby mohla být navázána sériová komunikace. To lze provést pomocí níže uvedeného řádku:
time.sleep (2)
Nyní můžeme číst nebo zapisovat cokoli z / do naší Arduino Board.
Následující řádek přečte vše, co pochází z Arduina, a vytiskne to na okně shellu
vytisknout ArduinoSerial.readline ()
Hodnotu můžete také přiřadit proměnné a použít ji pro výpočty.
Následující řádek zapíše hodnotu parametru na Arduino Board.
ArduinoSerial.write ('1')
Tento řádek zapíše do Arduina „1“. Stejným řádkem můžete poslat cokoli od desetinných míst po řetězce.
Nyní, když se vrátíme k našemu programu, uvnitř nekonečné smyčky while máme následující řádky
var = raw_input () #get vstup od uživatele tisk "jste zadali", var # tisk vstupu pro potvrzení, pokud (var == '1'): # pokud je hodnota 1 ArduinoSerial.write ('1') #send 1 print ("LED svítí") time.sleep (1) if (var == '0'): # pokud je hodnota 0 ArduinoSerial.write ('0') #send 0 print ("LED nesvítí") čas.spánek (1)
Řádek var = raw_input získá jakoukoli hodnotu zadanou ve skriptu Shell a přiřadí tuto hodnotu proměnné var .
Později, pokud je hodnota 1, vytiskne sériově '1' na Arduino a pokud 0, vytiskne '0' sériově na Arduino. Kód v našem programu Arduino (diskutovaný výše) přepneme LED na základě přijaté hodnoty.
Jakmile je hotový celý program, měl by váš skript vypadat níže
Nyní klikněte na Spustit -> Spustit modul nebo stiskněte F5, což vás může požádat o uložení programu a poté jej spustí.
Ovládání LED pomocí Pythonu a Arduina:
Práce na tomto projektu je docela přímočará. Nahrajte program do svého Arduina a ověřte, zda je připojen ke stejnému portu COM, jak je uvedeno v programu python. Poté spusťte program Python, jak je uvedeno výše.
Spustí se skript prostředí python, jak je uvedeno níže. Okno nalevo je skořepinové okno zobrazující výstup a okno napravo skript zobrazující program.
Jak vidíte, řetězec „Ahoj !, jsem Arduino“ zadaný v programu Arduino je přijímán Pythonem a zobrazen na jeho shell okně.
Když okno shellu požádá o zadání hodnot, můžeme zadat buď 0 nebo 1. Pokud pošleme 1, LED na desce Arduino se rozsvítí a pokud pošleme 0, LED na naší desce Arduino se vypne. Zobrazení úspěšného spojení mezi naším programem Arduino a Pythonem.
Níže jsou uvedeny dva programy, jeden k nahrání a spuštění z Arduina a druhý ke spuštění z Python Shell ve Windows.
Doufám, že jste projektu porozuměli a dokázali jste jej uvést do provozu. Pokud ne, uveďte svůj problém v komentáři níže a rád vám pomůžu. V našem dalším projektu se naučíme, co jiného lze v Pythonu a Arduinu udělat skvělým prozkoumáním hluboko do dalších pythonových modulů, jako jsou Vpython, gamepython atd. Do té doby zůstaňte naladěni….