čtvrtek 4. března 2021

Ladění programu pro Arduino...

    Zkuste to jinak. Jak ověřit, že program funguje správně, že se v něm neděje nic neplánovaného? Ladit. Běžně se v Arduino světě používá ladění „sériový monitor.“ Takže si v programu ručně vypisuju, co se děje a co chci zkoumat. Ale co když chci opravdu debugovat, pohodlně krokovat program a mít pod kontrolou každou iteraci.

Xplained Mini (levná hardwarová cesta) pouze pro Arduino UNO/NANO

    Velmi povedené řešení je deska přímo od výrobce procesoru s názvem v ATmega328P Xplained Mini [1], která stojí srovnatelně jako nějaký čínský klon Arduina Uno. Xmini má stejné rozmístění pinů jako Arduino Uno, takže se dá připojit jakýkoli dostupný shield a odladit program pomocí debugWire.

    K samotnému debugování potřebujeme Microchip Studio[2] (dostupné zdarma), které umožňuje vytvořit nový projekt z našeho Arduino sketch. Jednoduché, elegantní, funkční. I pro někoho, kdo doposud používal pouze Arduino IDE je to použitelná cesta. Knihovny, které ve sketchi používám, si musím postupně naimportovat ručně (v seznamu knihoven je na pravém tlačíku myši volba Importovat Arduino knihovnu). Funguje to.

    Xmini má micro USB konektor, který by častým používáním trpěl, proto má smysl použít krabičku[3] s oporou pro konektor.

Visual Micro (softwarové řešení) pro všechna Arduina

    Softwarové ladění, které bude fungovat s každým typem Arduina je Visual Micro[4] je plugin pro Microsoft Visual Studio nebo pro Microchip Studio (Atmel Studio). Umí otevřít sketch pro Arduino, automaticky k vašemu kódu přidá ladící rozšíření a program se dá spustit, krokovat, zobrazit hodnoty proměnných. Celé to řešení má svá omezení, ale je použitelné. Pro ladění Arduino UNO/NANO můžete snadno narazit na paměťové limity, může být výhodnější použít výše zmíněné hardwarové řešení.

    Visual Micro není zdarma, jedna licence stojí dvanáct dolarů ročně.

Jde to i jinak? 

    Ano jde, ale jsou to víc profi věci pro lidi, kteří programují mikrokontrolery, než pro bastlíře s arduinem. Pěkný přehled viz [5].