Ewaluacja różnych płytek rozwojowych i prototypowych przeznaczonych do zastosowań ubieralnych
Przekazane przez: Północnoamerykańscy redaktorzy DigiKey
2020-08-12
Otwartoźródłowa koncepcja Arduino odniosła wielki sukces wśród hobbystów i twórców. Została również dobrze przyjęta przez profesjonalnych projektantów do wczesnego opracowywania i prototypowania, a ostatnio do tworzenia pełnych projektów. Wraz z pojawieniem się takich zastosowań, jak urządzenia ubieralne i monitorujące stan zdrowia, oba typy użytkowników wymagają wyższej wydajności i większej funkcjonalności w coraz mniejszych obudowach.
W niniejszym artykule krótko omówiono ewolucję płytek Arduino, aby sprostać potrzebom producentów i profesjonalistów w zakresie wysokiej wydajności oraz funkcjonalności w zastosowaniach o niskim poborze mocy i ograniczonej przestrzeni. Dalej wprowadzono i zaprezentowano, jak zacząć swoją przygodę z nowym produktem z grupy Arduino - płytką Seeeduino XIAO firmy Seeed Technology Co.
Ewolucja Arduino w celu sprostania wymaganiom projektów urządzeń ubieralnych
Wielu hobbystów i projektantów jest zainteresowanych opracowywaniem produktów o niewielkich rozmiarach fizycznych do stosowania w środowiskach o ograniczonej przestrzeni, w tym urządzeń ubieralnych. Są to zazwyczaj inteligentne systemy elektroniczne, często oparte na mikrokontrolerach, którym towarzyszą urządzenia pomiarowe lub wyświetlające. W niektórych przypadkach służą jako biżuteria high-tech. W innych przypadkach są noszone blisko skóry /lub na jej powierzchni, gdzie mogą wykrywać, analizować i przekazywać dane z ciała, takie jak temperatura, tętno i natlenowanie, a także dane środowiskowe. W niektórych przypadkach zapewniają one użytkownikowi natychmiastowe informacje zwrotne natury biologicznej.
Do takich projektów wielu hobbystów i twórców używa mikrokomputerowych płytek rozwojowych Arduino. Rośnie również liczba inżynierów, którzy mogą zawodowo używać tych płytek rozwojowych jako platform ewaluacyjnych i prototypowych w celu przyspieszenia i obniżenia kosztów ewaluacji układów scalonych, czujników i urządzeń peryferyjnych.
Tacy użytkownicy zazwyczaj zaczynają od płytki A000073 Arduino Uno Rev3, która zdobyła miano „płytki, od której każdy zaczyna” (ilustracja 1). Płytka jest oparta na mikrokontrolerze ATMEGA328P-AUR firmy Atmel (obecnie Microchip Technology). 5-woltowy procesor oferuje 14 cyfrowych wejść-wyjść (I/O), z których sześć zapewnia możliwość modulacji szerokości impulsu (PWM), wraz z sześcioma analogowymi wtykami wejściowymi, które w razie potrzeby mogą być również używane jako cyfrowe wejścia-wyjścia. Obsługuje on również dwa zewnętrzne przerwania na wtykach wejścia-wyjścia cyfrowego 2 i 3, a także po jednym z interfejsów UART, SPI i I2C.
Ilustracja 1: płytka rozwojowa Arduino Uno Rev3 oparta jest na 8-bitowym mikrokontrolerze ATmega328P pracującym z częstotliwością 16MHz. Powierzchnia zajmowana przez jej listwy, z 14 wtykami wejść-wyjść cyfrowych, 6 wtykami wejść analogowych i różnymi wtykami zasilania, uziemienia i referencyjnymi, jest podstawą ogromnego ekosystemu płytek-córek zwanych nakładkami. (Źródło ilustracji: Arduino.cc)
Pomimo ograniczenia 8-bitowej ścieżki danych i zegara 16MHz, w połączeniu z faktem, że Arduino Uno oferuje tylko 32kB pamięci programowej Flash i 2kB pamięci SRAM, ta płytka rozwojowa jest zbyt duża dla wielu zastosowań, jako że mierzy 68,6 x 53,4mm (36,63cm2).
Jednym ze sposobów na zmniejszenie fizycznej powierzchni płytki rozwojowej mikroprocesora jest przejście na płytkę Arduino Nano Every ABX00028, której podstawą jest mikrokontroler ATMEGA4809-MUR firmy Atmel (ilustracja 2). Posiada ona 50% więcej pamięci programowej niż Arduino Uno (48kB) i 3x więcej pamięci SRAM (6kB). Podobnie jak Arduino Uno, Arduino Nano Every opiera się na 5-woltowym procesorze, który oferuje 14 wejść-wyjść cyfrowych wraz z sześcioma wtykami wejść analogowych, które w razie potrzeby mogą być również używane jako wejścia-wyjścia cyfrowe. Podobnie jak Uno, Nano Every oferuje po jednym z interfejsów UART, SPI i I2C. Jednak w przeciwieństwie do Uno, które obsługuje tylko dwa przerwania zewnętrzne, wszystkie wtyki cyfrowe Nano Every mogą być używane jako przerwania zewnętrzne.
Ilustracja 2: Arduino Nano Every jest ewolucją tradycyjnego Arduino Nano, ale posiada znacznie mocniejszy procesor ATMEGA4809, który ma o 50% więcej pamięci programowej niż Arduino Uno oraz znacznie więcej miejsca na zmienne, ponieważ pamięć SRAM jest 3 razy większa i wynosi 6kB. (Źródło ilustracji: Arduino.cc)
Chociaż Arduino Nano Every nadal ma ograniczenie 8-bitowej magistrali danych, posiada szybszy zegar (20MHz) i więcej pamięci (48kB Flash oraz 6kB SRAM). Co ważniejsze w przypadku projektów o ograniczonych rozmiarach, Arduino Nano Every mierzy tylko 45 x 18 mm (8,1cm2).
Inną popularną alternatywą, którą można zaprogramować za pomocą zintegrowanego środowiska programistycznego Arduino (IDE), jest płytka DEV-13736 Teensy 3.2 firmy SparkFun Electronics (ilustracja 3). Jeśli chodzi o wejścia-wyjścia, ta 3,3-woltowa płytka rozwojowa naprawdę podnosi poprzeczkę, dysponując 34 cyfrowymi wtykami, z których 12 obsługuje modulację szerokości impulsu (PWM) oraz 21 wejściami analogowymi wysokiej rozdzielczości.
Ilustracja 3: Teensy 3.2 to mała, przyjazna płytkom prototypowym płytka rozwojowa zaprojektowana przez Paula Stoffregena z PRJC.com. Ta przyjazna dla użytkownika płytka rozwojowa jest tanią 32-bitową platformą z procesorem Arm® Cortex®-M4 przeznaczoną dla hobbystów, studentów i zawodowych inżynierów. (Źródło ilustracji: PRJC.com)
Płytka Teensy 3.2 pracuje na mikrokontrolerze Kinetis K20 MK20DX256VMC7R firmy NXP. K20 posiada 32-bitowy rdzeń procesora Arm Cortex-M4 działający z częstotliwością 72MHz, 256kB pamięci Flash i 64kB SRAM. Szczególnie interesujący dla projektów o ograniczonej wielkości jest fakt, że płytka Teensy 3.2 o wymiarach 35 x 18 mm (6,3cm2) ma wielkość trzech czwartych Arduino Nano Every.
Prezentacja Seeeduino XIAO
Mimo że płytka Teensy 3.2 ma tylko 6,3cm2, to wciąż jest zbyt duża do wielu zastosowań. Rozwiązanie dla osób poszukujących jeszcze mniejszych i potężniejszych platform leży w rozległym ekosystemie Arduino. Stosunkowo nową opcją jest płytka Seeeduino XIAO firmy Seeed Technology (ilustracja 4), która mierzy zaledwie 23,5 x 17,5 mm (4,11cm2), co odpowiada rozmiarowi standardowego znaczka pocztowego. Projektanci Seeeduino XIAO skupili się również na bardzo niskich kosztach.
Ilustracja 4: obecnie najmniejsza płytka rozwojowa mikrokontrolera kompatybilna z Arduino w grupie produktów Seeeduino, przyjazna dla płytek prototypowych Seeeduino XIAO zapewnia użytkownikom potężny 32-bitowy procesor Arm Cortex-M0 działający z częstotliwością 48MHz. (Źródło ilustracji: Seeed Studio)
Płytka XIAO pracuje na mikrokontrolerze SAMD21G18 ATSAMD21G18A-MUT firmy Atmel. Ten mikrokontroler posiada 32-bitowy rdzeń procesora Arm Cortex-M0 działający z częstotliwością 48MHz i jest wspierany przez 256kB pamięci Flash i 64kB pamięci SRAM.
Chociaż płytka XIAO ma tylko 11 wtyków danych, każdy z nich może być używany jako wejście-wyjście cyfrowe lub jako wejście analogowe (ilustracja 5). Dziesięć wtyków obsługuje modulację szerokości impulsu (PWM), a jeden jest wyposażony w przetwornik cyfrowo-analogowy (DAC), dzięki czemu zapewnia prawdziwie wyjście analogowe. Dodatkowo płytka XIAO obsługuje po jednym z interfejsów UART, SPI i I2C.
Ilustracja 5: wszystkie jedenaście wtyków danych może działać jako wejścia-wyjścia cyfrowe (od D0 do D10) lub wejścia analogowe (od A0 do A10). Co więcej, wejście A0 może działać jako prawdziwe wyjście analogowe, wejścia-wyjścia D4 i D5 mogą działać jako interfejs I2C, wejścia-wyjścia D6 i D7 mogą być używane jako interfejsy UART, a wejścia-wyjścia D8, D9 i D10 mogą działać jako interfejsy SPI. (Źródło ilustracji: Seeed Studio)
Wdrażanie i używanie płytek Seeeduino XIAO
Ogólnie rzecz biorąc, praca z płytką Seeeduino XIAO jest tak łatwa, jak praca z każdą inną płytką rozwojową Arduino lub kompatybilną z Arduino, ale jest kilka wskazówek i porad, na które warto zwrócić uwagę.
Dobrym punktem wyjścia jest posiadanie najnowszej wersji zintegrowanego środowiska deweloperskiego (IDE) Arduino. Następnie należy odwiedzić witrynę Seeeduino XIAO Wiki, aby uzyskać instrukcje, jak rozszerzyć zintegrowane środowisko deweloperskie (IDE) Arduino za pomocą odpowiedniego menedżera płytki.
Wiele projektów Seeeduino XIAO - w formie urządzeń ubieralnych i nie tylko - będzie wymagało użycia trójkolorowych urządzeń diodowych NeoPixels opartych na taśmie WS2818 firmy Adafruit, takich jak taśma 2970 z 144 diodami NeoPixel na metr (ilustracja 6).
Ilustracja 6: pojedynczy wtyk w płytce Seeeduino XIAO może być użyty do indywidualnego sterowania setkami trójkolorowych diod NeoPixel, takich jak np. znajdujące się na czarnym pasku NeoPixel z 144 diodami na metr firmy Adafruit. (Źródło ilustracji: Adafruit.com)
Jednym z potencjalnych problemów jest to, że podczas gdy tradycyjne płytki rozwojowe Arduino mogą współpracować ze starszymi wersjami biblioteki Adafruit NeoPixel, płytka Seeeduino XIAO wymaga najnowszej i najlepszej wersji.
Jeśli zainstalowana jest starsza biblioteka NeoPixel, mogą pojawić się dziwne i mylące komunikaty o błędach. Rozwiązaniem jest usunięcie z systemu wszelkich starszych wersji biblioteki, a następnie postępowanie zgodnie z instrukcjami NeoPixel Überguide Adafruit w celu zainstalowania najnowszej i najlepszej wersji.
Jednym z potencjalnych problemów jest to, że diody NeoPixel są wrażliwe na przeregulowanie i niedoregulowanie na wtykach danych. Problem polega na tym, że strome zbocza sygnałów z nowoczesnych mikrokontrolerów mogą skutkować takimi charakterystykami. Rozwiązaniem jest dodanie rezystora szeregowego jak najbliżej pierwszego elementu w łańcuchu diod NeoPixel (ilustracja 7). Odpowiednim przykładem może być rezystor o mocy 1/4W, tolerancji 5% i rezystancji 390Ω, taki jak rezystor z folii węglowej CF14JT390R firmy Stackpole Electronics Inc.
Ilustracja 7: rezystor szeregowy umieszczony jak najbliżej pierwszej diody NeoPixel w łańcuchu eliminuje przeregulowanie i niedoregulowanie na zboczach strumienia danych MCU. (Źródło ilustracji: Max Maxfield)
Innym problemem związanym z diodami NeoPixel jest to, że cyfrowe wyjścia płytki Seeeduino XIAO 3,3V mogą nie być w stanie wysterować 5-woltowych wejść danych NeoPixel. Jednym z rozwiązań byłoby zastosowanie płytki breakout konwertera poziomów logicznych BOB-12009 firmy SparkFun (ilustracja 8).
Ilustracja 8: płytka breakout (BOB) konwertera poziomów logicznych BOB-12009 firmy SparkFun zapewnia cztery dwukierunkowe kanały, które mogą być używane do translacji sygnałów między domenami 3,3V i 5V. (Źródło ilustracji: Adafruit.com)
Wszystkim, czego potrzeba do zastosowania diod NeoPixel jest pojedynczy kanał jednokierunkowy. Problem z płytką BOB-12009 polega na tym, że zapewnia cztery dwukierunkowe kanały, co czyni ją stosunkowo dużym rozwiązaniem jak na projekt o ograniczonej przestrzeni i stosunkowo drogim rozwiązaniem jak na projekt, w którym budżet ma znaczenie. Prostą alternatywą jest użycie pojedynczej diody 1N4001 firmy Comchip Technology (ilustracja 9).
Ilustracja 9: używając diody 1N4001 w celu zapewnienia spadku napięcia rzędu 0,7V, można zmusić „protektorową” diodę NeoPixel do działania w roli konwertera poziomów napięcia. (Źródło ilustracji: Max Maxfield)
Diody NeoPixel rozpoznają, że wartość logiczna 1 odpowiada napięciu powyżej 0,7*VCC. W takim przypadku dioda NeoPixel będzie traktowała logiczną wartość 1 jako 0,7 * 5 = 3,5V.
Zasilanie „protektorowej” diody Pixel przez diodę IN4001, która charakteryzuje się spadkiem napięcia przewodzenia 0,7V, powoduje, że jest ona zasilana napięciem VCC 5 - 0,7 = 4,3V, co oznacza, że logiczną wartość 1 będzie przyjmować jako 0,7 * 4,3 = 3,01V. To z kolei oznacza, że sygnał 3,3V z płytki Seeeduino XIAO z łatwością nadaje się do zasilania protektorowej diody Pixel. Tymczasem sygnał wyjściowy 4,3V z protektorowej diody Pixel jest więcej niż wystarczający do kierowania danych wejściowych do następnej diody NeoPixel w łańcuchu.
Podsumowanie
Wczesne płytki rozwojowe Arduino, takie jak 8-bitowa płytka Arduino Uno 16MHz, były fizycznie duże i ograniczone pod względem pojemności i wydajności. Obecnie ekosystem Arduino obejmuje ogromną różnorodność płytek o szerokiej gamie kształtów, rozmiarów i możliwości.
W przypadku projektów o ograniczonych rozmiarach, takich jak urządzenia ubieralne, płytka Seeeduino XIAO oferuje 32-bitowy rdzeń procesora Arm-Cortex-M0 działający z częstotliwością 48MHz oraz 256kB pamięci Flash i 64kB SRAM. Wszystko to dostarczane jest na małej, przyjaznej dla płytki prototypowej platformie mierzącej zaledwie 4,11cm2 z szerokim wsparciem ekosystemu.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




