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é).
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.
Když si nyní vytvořený program otevřeme, obsahuje nám známé funkce setup a loop. 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.
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í.
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.
Pokud nevíte, které jádro pro vaši desku vybrat, můžete hledání upřesnit přímo pro konkrétní desku.
Nyní vybrané jádro nainstalujeme.
Opětovným spuštěním příkazu ./arduino-cli board list bychom měli vidět, že už program desku rozpozná.
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.
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: