Close

Programujte Arduino přes příkazovou řádku

Arduino Command Line Interface

Arduino IDE je super prostředí, pokud s Arduinem začínáte. Jeho rozhraní je velice jednoduché a vše většinou funguje na první pokus. Toto prostředí ale postupem času přestane většině bastlířů stačit a hledají tak možnosti, jak Arduino programovat přes nějaký „dospělejší“ editor.

Pro zkušenější programátory je většinou příkazová řádka (terminál) denním chlebem. Existuje několik možností, jak Arduino projekty kompilovat a nahrávat přes terminál. Cesta pro pokročilé je využívat přímo nástroje, které „pod pokličkou“ využívá i Arduino IDE pro kompilaci, správu a nahrávání projektů. Ideální ale je, když všechny potřebné úkony při tvorbě Arduino projektů zvládne jeden program. Jedním takovým je například PlatformIO. Nedávno byla představena i oficiální cesta, která toto umožňuje. Je jí program arduino-cli (arduino command-line interface, arduino rozhraní pro příkazovou řádku). Díky tomu je možné jednoduše zakomponovat potřebné příkazy do oblíbeného vývojového prostředí, popřípadě nad tímto programem přímo vystavět prostředí nové. Samozřejmostí je také užití programu v Makefilech. Program podporuje také výstup ve formátu JSON, který je možné dále zpracovávat v případných obslužných programech.

arduino-cli

Dále si projdeme základní úkony, které arduino-cli umí. Ty jsou také popsané na GitHubu projektu. Arduino-cli je zatím v alfa verzi a tvůrci prosí o případnou zpětnou vazbu.

Prostředí je dostupné pro nejčastější operační systémy – Linux, Windows i MacOS – a je tak možné ho rozběhnout třeba i na Raspberry PI. Začneme tím, že si z GitHub stáhneme verzi pro náš operační systém. Stažený archiv obsahuje přímo spustitelný program. Ten si po rozbalení přejmenujeme na arduino-cli. Spustíme si terminál a přepneme se do složky se staženým programem. Když nyní příkazem ./arduino-cli (MacOS, Linux), start arduino-cli.exe (Windows) program spustíme, zobrazí se nám výpis s nápovědou (dále jsou uvedené příkazy, které jsem vyzkoušel na MacOS, pro Linux a Windows jsou ale obdobné).

Výpis programu arduino-cli

Výpis programu arduino-cli

Příprava Arduino projektu

Nejdříve si příkazem ./arduino-cli sketch new novyProjekt vytvoříme nový projekt s názvem novyProjekt. Program vypíše, kam vytvořený projekt uložil. V mém případě to je složka /Users/zbysek/Documents/Arduino/novyProjekt.

Arduino-cli Vytvoření nového projektu

Vytvoření nového projektu

Když si nyní vytvořený program otevřeme, obsahuje nám známé funkce setuploop. Otevřít ho můžeme buďto v nějakém oblíbeném textovém editoru, nebo i přímo přes příkazovou řádku (editory vim, nano, emacs, …). Program si přepíšeme tak, aby blikal LEDkou na pinu 13.

Program pro blikání LED

Program pro blikání LED

Připojení Arduino desky

V ukázkách použiji desku Arduino Leonardo, kterou obsahuje TinyLab. Ten mám aktuálně připojený k počítači.

Začneme tím, že si aktualizujeme seznam desek v arduino-cli pomocí příkazu ./arduino-cli core update-index. Program by měl vypsat „package_index.json downloaded“. Příkazem ./arduino-cli board list vypíšeme desky, které program vidí.

Arduino CLI Vyhledání desek

Vyhledání desek

Program nyní desku vidí, ale ještě nemá stažené jádro, aby ji mohl obsluhovat. Příkazem ./arduino-cli core search arduino vyhledáme dostupná jádra.

Arduino CLI Vyhledání dostupných jader

Vyhledání dostupných jader

Pokud nevíte, které jádro pro vaši desku vybrat, můžete hledání upřesnit přímo pro konkrétní desku.

Arduino CLI Vyhledání jádra pro konkrétní desku

Vyhledání jádra pro konkrétní desku

Nyní vybrané jádro nainstalujeme.

Arduino CLI Instalace jádra

Instalace jádra

Opětovným spuštěním příkazu ./arduino-cli board list bychom měli vidět, že už program desku rozpozná.

Arduino CLI Připojená deska Arduino Leonardo

Připojená deska Arduino Leonardo

Kompilace a nahrání programu

Nyní už můžeme program zkompilovat příkazem ./arduino-cli compile –fqbn arduino:avr:leonardo /Users/zbysek/Documents/Arduino/novyProjekt, ve kterém arduino:avr:leonardo nahradíme hodnotou FQBN sloupce z předchozího příkazu a /Users/zbysek/Documents/Arduino/novyProjekt cestou k projektu.

Arduino CLI Kompilace projektu

Kompilace projektu

Nahrajeme program do desky příkazem ./arduino-cli upload -p /dev/tty.usbmodem1431 –fqbn arduino:avr:leonardo /Users/zbysek/Documents/Arduino/novyProjekt, kde nahradíme stejné řetězce, jako předtím a ještě navíc /dev/tty.usbmodem1431 správnou cestou k portu ze sloupce Port ve výpisu desek.

Nyní by po chvíli nahrávání měla LED na pinu 13 začít blikat.

Přidání knihoven

Ukázali jsme si velice jednoduchý příklad, který nepoužíval žádnou knihovnu. Pokud bychom nějakou chtěli použít, obsahuje arduino-cli nástroj pro správu knihoven, přes který musíme požadované knihovny stáhnout. K vyhledávání slouží příkaz ./arduino-cli lib search wifi101, který vypíše všechny knihovny odpovídající hledanému řetězci. Pomocí příkazu ./arduino-cli lib install „WiFi101“ potom vybranou knihovnu nainstalujeme.

To by bylo k představení arduino-cli vše. Vývoj můžete sledovat na serveru GitHub, kde je dostupný repozitář s projektem.

Zdroje:

Zbyšek Voda

Zbyšek Voda

Už nějaký čas se zajímám o věci kolem Internetu věcí a otevřeného hardware a software. Tak jsem se také v roce 2010 dostal k Arduinu, pro které dodnes programuji a taky píšu články o práci s ním. Baví mě vymýšlet, jak staré věci používat novým způsobem.
Zbyšek Voda

Napsat komentář