NeoPixele to specjalna forma trójkolorowych diod LED, którym przyjrzymy się w następnym odcinku tego cyklu. Powodem, dla którego o tym wspominam, jest to, że oprócz dwóch przełączników nożowych, ośmiu przełączników dwustabilnych, dziesięciu przełączników przyciskowych, pięciu potencjometrów z napędem umożliwiającym dokonywanie zdalnych nastaw, sześciu mierników analogowych i różnych czujników (temperatury, ciśnienia atmosferycznego, wilgotności, odległości), to maleństwo ma 83 NeoPiksele w górnej obudowie i 116 NeoPikseli w dolnej obudowie. Ojej! Prawie zapomniałem (patrząc na zdjęcie, przypomniało mi się), że jest jeszcze 155 NeoPikseli zasilających pięć potwornych lamp próżniowych zamontowanych na górze.
W trakcie moich pierwszych testów obsługiwałem różne podsystemy (piec, panele przednie, lampy próżniowe) za pomocą kolekcji płytek Arduino Uno i Mega, jednocześnie zdawałem sobie sprawę, że szybko zbliża się czas, kiedy będę potrzebował mocniejszego rozwiązania do przetwarzania.
Rozwiązanie te właśnie się pojawiło w postaci ShieldBuddy (https://bit.ly/2xLZaBq), który został stworzony przez specjalistów z firmy Hitex (hitex.com). Pierwszą rzeczą, którą można zauważyć w ShieldBuddy, jest to, że ma taką samą powierzchnię jak Arduino Mega.
Nadszedł czas, abyś usiadł i czytał uważnie, ponieważ ten fragment jest ważny. Standardowe Arduino Mega bazuje na 8-bitowym mikrokontrolerze Microchip ATmega pracującym z częstotliwością 16 MHz z 256 KB pamięci Flash i 8KB pamięci RAM. Dla porównania, ShieldBuddy bazuje na mikrokontrolerze Infineon Aurix TC275. Te potężne „piękności” zwykle można znaleźć tylko w najnowocześniejszych systemach wbudowanych; rzadko wychodzą na światło dzienne w świecie hobbystów.
32-bitowy rdzeń mikrokontrolera TC275 działa z częstotliwością 200 MHz i ma 4 MB pamięci Flash oraz ~500 KB pamięci RAM. Zatrzymaj się na chwilę, aby porównać te liczby z tymi z Arduino Mega. Innymi słowy, rdzeń Arduino Mega wykonuje tylko około szesnastu 8-bitowych instrukcji na mikrosekundę (µs). Dla porównania, rdzeń TC275 ma cykl 5 ns, co oznacza, że zazwyczaj może wykonać od 150 do 200 32-bitowych instrukcji/µs (1 µs=1000 ns).
Och, czekaj! Czy powiedziałem „rdzeń” (liczba pojedyncza)? Głuptas ze mnie. Chciałem powiedzieć, że TC275 może pochwalić się trzema 32-bitowymi rdzeniami, z których każdy pracuje z częstotliwością 200 MHz. Co więcej, w przeciwieństwie do Arduino Mega, każdy z tych rdzeni ma własną jednostkę zmiennoprzecinkową (FPU), co oznacza, że korzystanie ze zmiennych zmiennoprzecinkowych nie spowalnia znacząco działania.
Sprawy mają się coraz lepiej, po pierwsze, można programować ShieldBuddy za pomocą zintegrowanego środowiska programistycznego Arduino IDE i po drugie, biblioteka NeoPixel jest dostępna dla ShieldBuddy. Moja filiżanka jest pełna.