Arduino MKR

Arduino MKR

Platforma Arduino bezsprzecznie kojarzy się ze znanymi i lubianymi mikrokontrolerami z rodziny AVR, które od samego początku projektu stanowią cyfrową bazę najpopularniejszych płytek tej rodziny. Nie wszyscy jednak wiedzą, że wśród produktów włoskiej marki znalazł się także szereg zaawansowanych modułów, dedykowanych do bardzo zróżnicowanych zastosowań – w tym także w pełni profesjonalnych systemów IoT. Doskonałym przykładem jest linia produktów Arduino MKR, która – oprócz szeregu bardzo ciekawych modułów głównych – obejmuje także serię dedykowanych nakładek typu Shield. W odróżnieniu od klasycznych shieldów są one w pełni dostosowane (zarówno rozmiarami płytki drukowanej, jak i rozstawem oraz układem pinów złączy) do modułów z serii MKR.

Arduino MKR – nowy standard w świecie Arduino

Każdy, kto choć raz miał do czynienia z platformą Arduino, doskonale zna charakterystyczny układ czterech złączy systemowych typu goldpin, które – rozmieszczone w ściśle określonym położeniu i kolejności – stanowią uniwersalny środek pozwalający na łączenie modułów głównych (np. Arduino Uno, Arduino Leonardo czy Arduino Mega) z nakładkami Arduino Shield. Seria płytek Arduino MKR stanowi całkowicie odrębną rodzinę urządzeń: choć korzystają z tego samego, doskonałego środowiska programistycznego Arduino IDE, bardzo mocno odróżniają się od klasycznych modułów z mikrokontrolerami AVR. Wydajne procesory ARM, zintegrowane moduły radiowe renomowanych producentów oraz wbudowane układy ładowarek dla akumulatorów litowo-polimerowych – to wszystko oraz znacznie więcej znajdziesz w uniwersalnych modułach z serii Arduino MKR.

Podstawowe parametry modułów Arduino MKR

Opis modułów z serii Arduino MKR warto rozpocząć od najtańszego, podstawowego układu – Arduino MKR Zero (ABX00012). Płytka o wymiarach 61,5 x 25 mm jest napędzana procesorem ATSAMD21G18 z 32-bitowym rdzeniem ARM Cortex M0+, taktowanym maksymalną częstotliwością 48 MHz. Pamięć programu (Flash) ma pojemność 256 kB, zaś pamięć SRAM – aż 32 kB. Płytka udostępnia 22 linie uniwersalnych portów wejścia/wyjścia; aż siedem z nich udostępnia kanały przetwornika ADC o rozdzielczości 12 bitów. Warto dodać, że – jak wiele procesorów z rdzeniem ARM – także i tutaj mamy do wykorzystania przetwornik DAC, który przyda się np. do generowania przebiegów napięciowych lub ustawiania napięć polaryzujących niektóre rodzaje czujników. Na płytce znalazło się miejsce dla regulatora napięcia 3,3 V o wydajności 600 mA, a także dla ładowarki akumulatorów Li-Pol o napięciu 3,7 V i pojemności min. 700 mAh. Jak przystało na nowoczesny system wbudowany, Arduino MKR Zero oferuje port USB, obsługujący zarówno tryb urządzenia (Device), jak i „gospodarza” (USB Host) – drugi z wymienionych trybów pracy umożliwia korzystanie z urządzeń peryferyjnych w taki sposób, jak gdyby ta niewielka płytka była… komputerem. Nietrudno wyobrazić sobie szereg ciekawych aplikacji, korzystających z tego udogodnienia.

Moduły, które napędzają IoT

Nie da się ukryć, że moduły Arduino MKR są tworzone z myślą o zastosowaniach w systemach Internetu Rzeczy. Przemawia za tym przede wszystkim obecność wbudowanych modułów radiowych w większości płytek bazowych z tej serii. Arduino MKR1000 o oznaczeniu ABX00011 zawiera moduł WINC1500 – niskomocowy moduł WiFi, zgodny ze standardami IEEE 802.11b/g/n i pracujący w najpopularniejszym paśmie 2,4 GHz. Moduł radiowy współpracuje ze znajdującym się na pokładzie Arduino wydajnym procesorem ATSAMW25, bazującym na 32-bitowej architekturze ARM Cortex-M0 i mogącym pracować z częstotliwością taktowania do 48 MHz. Na płytce znalazło się miejsce na ładowarkę ogniw Li-Pol o pojemności co najmniej 700 mAh. Nieco podobna wersja – Arduino MKR1010 – pracuje pod kontrolą procesora z rdzeniem SAMD21, zaś za łączność WiFi odpowiada miniaturowy moduł radiowy renomowanej firmy u-blox – Nina-W10, którego konstrukcja oparta jest na popularnym ESP32.

Łączność dalekiego zasięgu – od ręki i bez problemu

Jeżeli poszukujesz modułu, który będzie w stanie komunikować się z innymi urządzeniami na odległości wielokrotnie przekraczające maksymalny zasięg sieci WiFi (i to w najlepszych możliwych warunkach), z pewnością powinieneś rozważyć zastosowanie łączności LoRaWAN. Standard LoRa powstał z myślą o inteligentnych pojazdach i inteligentnych miastach (tzw. smart cities). Założenia, które przyświecały twórcom tego nowoczesnego łącza, były następujące: chcieli oni uzyskać maksymalny zasięg przy minimalnym poborze mocy. Z tego względu standard LoRa doskonale nadaje się do aplikacji zdalnego odczytu czujników – niewielkie, rzadko wysyłane pakiety danych, mogą być transmitowane na imponujące odległości rzędu wielu kilometrów, nie powodując przy tym zbyt intensywnego zużywania energii akumulatora lub baterii. Arduino MKR WAN 1300 (oznaczenie modułu to ABX00017) posiada wbudowany moduł LoRaWAN CMWX1ZZABZ. Podobnie, jak wiele innych modułów z serii MKR, także ta płytka bazuje na wydajnym procesorze SAMD21. Znacznym ułatwieniem w tworzeniu aplikacji loggerów danych pomiarowych będzie wbudowany zegar czasu rzeczywistego (RTC) oraz dostępność aż siedmiu kanałów przetwornika analogowo-cyfrowego o rozdzielczości do 12 bitów. Ciekawą propozycją jest także płytka bazowa Arduino MKR GSM 1400 (ABX00018-B), wyposażona w zintegrowany moduł GSM SARAU201 marki u-blox. Moduł obsługuje pasma: GSM (850 MHz), E-GSM (1,9 GHz), DCS (1,8 GHz) oraz PCS (także 1,9 GHz), a wbudowana antena o zysku 2 dB pozwala na prowadzenie transmisji bez konieczności dokupowania dodatkowych elementów radiowych.

ARM + FPGA, czyli na styku dwóch cyfrowych światów

Niezwykle interesującym przykładem członka rodziny Arduino MKR jest płytka Arduino MKR Vidor4000 (ABX00022). Ten – wydawałoby się – niepozorny moduł kryje w sobie ogromne możliwości w dziedzinie przetwarzania sygnałów, a które wynikają z obecności dwóch osobnych układów: głównego procesora (w tej roli także znalazł się SAMD21) oraz układu programowalnego FPGA – Intel Cyclone 10CL016. Jak doskonale wiadomo, macierze FPGA pozwalają na wykonywanie szeregu operacji całkowicie równocześnie, bez konieczności kolejkowania czy stosowania programowego arbitrażu poszczególnych wątków funkcjonalnych. Innymi słowy – wiele mniej lub bardziej skomplikowanych zadań jest realizowanych równolegle przez sprzęt, a nie oprogramowanie – dzięki temu można nie tylko zyskać na szybkości, ale także odciążyć główny procesor, który dzięki temu może zająć się innymi czynnościami. Jakby tego było mało, Arduino MKR Vidor4000 wyposażony został także w dodatkowy port microHDMI, szynę miniPCI Express, a nawet złącze kamery (MIPI) i zintegrowany moduł radiowy WiFi/Bluetooth z serii Nina.

Nakładki dla Arduino MKR

Dla modułów głównych z serii Arduino MKR powstał szereg dedykowanych nakładek, dzielących wspólną nazwę („Shield”) z rozszerzeniami, znanymi z klasycznych zestawów Arduino. W tym przypadku mamy jednak do czynienia z niewielkimi płytkami, dopasowanymi idealnie właśnie do modułów MKR i oferującymi funkcjonalności ściśle dostosowane do charakterystyki projektów z obszaru IoT. Moduł MKR MEM Shield zawiera slot kart microSD oraz wbudowaną pamięć Flash 2 MB, komunikującą się z procesorem płytki bazowej za pomocą interfejsu SPI. Z kolei dla zachowania łączności z interfejsami przewodowymi przewidziane zostały specjalne nakładki MKR CAN Shield, MKR 485 Shield oraz MKR Ethernet Shield. Pierwszy z wymienionych układów korzysta z protokołu CAN – chętnie używanej w motoryzacji i przemyśle szeregowej szyny danych o bardzo wysokiej odporności na błędy i zakłócenia. MKR 485 Shield pozwala na łączenie Arduino z sieciami RS485, popularnymi szczególnie w instalacjach przemysłowych oraz HVAC i instalacjach inteligentnych budynków. Interfejsu Ethernet nie trzeba przedstawiać nikomu – dodajmy więc jedynie, że na płytce MKR Ethernet Shield znalazł się także slot kart microSD, co jeszcze bardziej rozszerza możliwości zestawu.

Podsumowanie

Płytki z serii ArduinoMKR są czymś znacznie więcej niż tylko doskonałą alternatywą dla najpopularniejszych, klasycznych płytek Arduino (np. Uno czy Nano). Każda z płytek bazowych standardu MKR oferuje szereg funkcjonalności (np. wbudowaną ładowarkę akumulatorów czy zintegrowany moduł radiowy), a dodatkowe możliwości daje użycie dedykowanych nakładek MKR Shield. Z modułami z rodziny ArduinoMKR budowa aplikacji IoT staje się czystą przyjemnością, a silne wsparcie programistyczne ze strony środowiska Arduino IDE sprawia, że czas potrzebny na realizację nawet złożonych projektów z obszaru Internetu Rzeczy jest skrócony do minimum.