Dajbych.net


Hardwarové platformy IoT

, 3 minuty čtení

uc logo

Internet věcí je síť vestavěných systémů. Mikrokontroléry nejsou novinkou. BIOS v základní desce počítače je mikrokontrolér, který načítá kód z periferního zařízení. Existuje mnoho platforem, na kterých si můžete postavit svůj vlastní vestavěný systém. Čím populárnější a snadněji použitelná platforma je, tím více limitů obvykle máte. Jsem ohromen tím, jak se oblast vývoje hardwaru posunula za poslední desetiletí, ale také jsem velmi zklamán nedostatkem podpory Microsoftu pro .NET Micro Framework.

AVR

AVR je rodina mikrokontrolérů navržených v roce 1996 společností Atmel. Tyto mikrokontroléry mají (norsky modifikovanou) harvardskou architekturu a 8bitové paměťové adresy. Software napsaný v C++ je zkompilován a přenesen z PC do mikrokontroléru pomocí programátoru (jako AVR Dragon). Programátor se připojuje k PC přes USB a mikrokontrolér se připojuje k programátoru přes JTAG. Programátor umožňuje ladění kódu prováděného mikrokontrolérem. Vývojovým prostředím je Atmel Studio 7, které je založeno na Visual Studio Shellu. Známé vývojové prostředí zjednodušuje učení. Díky vynikající podpoře softwaru/ovladačů/firmwaru od společnosti Microchip Technology se můžete vsadit, že vaše zařízení nebude za pár let zastaralé.

Jedinou nevýhodou je potřeba nízkoúrovňového programování v jazyce C. Napětí pinu mikrokontroléru nelze nastavit přiřazením logické hodnoty vlastnosti objektu, která představuje pin. Tuto abstrakci musíte nakódovat sami. To se však stává výhodou, když si uvědomíte, že většina ukázek kódu a referenčních implementací hardwarových periferií je kódována v C/C++. Navíc nemáte nic jako ladicí konzolu, ale když se zastavíte na zarážce, uvidíte hodnoty svých proměnných.

Arduino

Arduino je předprogramovaný ATmega168 (nebo podobný) se schopností programovat nebo ladit mikrokontrolér bez externího programátoru. Arduino také zavedlo standardní rozložení pinových konektorů. Umožňuje připojení dalších modulů k desce mikrokontroléru bez pájení nebo zapojení prkénka. Vývojovým prostředím je Arduino IDE a jediným podporovaným programovacím jazykem je Arduino. Syntaxe je založena na jazyce C++. Arduino může odkazovat na kód C/C++ a spouštět jej.

Raspberry Pi

Raspberry Pi je monstrum. Jedná se o předprogramovaný mikrokontrolér ATmega328 používaný v podstatě jako BIOS pro Windows IoT (nebo Raspbian) bootovaný z SD karty. Tato architektura má jednu podstatnou nevýhodu. Zařízení netoleruje žádný výpadek napájení během operace zápisu na SD kartu. SD karty jsou formátovány v souborových systémech FAT32 nebo exFAT, což nejsou žurnálované souborové systémy jako NTFS (Windows) nebo ext4 (Linux). Aplikace pro zařízení Raspberry se programují stejným způsobem jako aplikace pro počítače.

BigClown

BigClown je modulární hardware. Základní modul je založen na předprogramovaném řadiči Cortex-M0. Vývojovým prostředím je Visual Studio Code, kde kódujete v jazyce C, ale pro nasazení programu do mikrokontroléru je nutné použít příkazový řádek. To také znamená, že nemůžete ladit. Existuje další IDE s názvem Playground, které je podobné vývojovému přístupu .NET Gadgeteer .

Pycom

Pycom je modulární hardware založený na zařízeních ARM ESP32. Vývojovým prostředím je Pymakr, který používá MicroPython jako programovací jazyk. Zařízení se připojuje přímo k PC nebo Macu pomocí USB. MicroPython může volat importovaný kód v C jako modul.

TinyCLR OS

C# pro mikrokontroléry má dlouhou historii. První vydání .NET Micro Frameworku bylo v roce 2007. Jedná se o malý HAL (hardwarovou abstrakční vrstvu), který podporuje nasazení a ladění přes USB. Kvůli nedostatečné údržbě ze strany společnosti Microsoft společnost GHI Electronics v roce 2017 vytvořila vlastní implementaci nazvanou TinyCLR OS. Vývojovým prostředím je Visual Studio 2017 s rozšířením TinyCLR OS Project System . Existuje několik vývojových desek, ale FEZ má rozložení pinů kompatibilní s Arduino. Operační systém TinyCLR podporuje kód Interop pro odkazování a spouštění nativních knihoven.

nanoFramework

Dalším klonem .NET Micro Frameworku je nanoFramework. Běží na zařízeních ARM ESP32. Vývojovým prostředím je také Visual Studio 2017 s rozšířením nanoFramework . Spravovaný kód může používat Interop pro odkazování a spouštění nativních knihoven.

Meadow

Meadow je full-stack .NET Standard IoT platforma. Řídí ho Bryan Costanich, bývalý viceprezident Xamarinu, nyní zakladatel Wilderness Labs. Meadow je v současné době ve fázi Kickstarteru a má ambici přinést programování ve stylu PC do mikrokontrolérů.