[025] Nowe Arduino Uno

[025] Nowe Arduino Uno

Ten dzień musiał kiedyś nadejść. Oficjalnie najbardziej znane Arduino stało się trzydziestodwubitowe, niejako symbolicznie – po 18 latach, zamykając, chciałoby się rzec, dziecięcy, ośmiobitowy rozdział. To nie znaczy, że osiem bitów kończy karierę i śmiem twierdzić, że ośmiobitowce będą dostępne jeszcze długo, jeśli nie zawsze. Jednak ikona idei, czyli Arduino Uno, ma teraz na pokładzie zupełnie inny mikrokontroler, otwierający możliwości zdecydowanie większe wobec pełnoletniego już protoplasty.


Bynajmniej nie jest to rewolucja, której nikt się nie spodziewał, trzydziestodwubitowa technologia trafiła do rodziny już dawno, także do rodziny oficjalnej, bo w klonach jest znacznie częściej spotykana. Rzecz w tym, że to od Uno zwykle zaczyna się przygodę z Arduino, bo jest ono płytką edukacyjną, referencyjną i tutaj mamy zdecydowanie rewolucję. Poza faktem wejścia w te, tak naprawdę niewiele mówiące trzydzieści dwa bity, istotną zmianą jest otwarcie na sieć, bowiem zasadniczym elementem nowej płytki jest moduł dostępu bezprzewodowego. Innymi słowy: idzie nowe. Już nie będziemy tylko mrugać diodkami i kręcić silniczkiem, ale będziemy się bawić w tak zwany świat Internetu Rzeczy (IoT), idei bardzo ostatnio popularnej i nazywanej trochę niefortunnie, jak to bywa z kalkami angielskimi. Zacznijmy jednak od przeglądu encyklopedycznego.

Arduino Uno R4 WiFi, bo tak brzmi pełna nazwa, jest czwartą formalnie, a drugą w rzeczywistości odsłoną płytki Uno. Dla wielu użytkowników platformy ważną rzeczą będzie fakt, że jest ona w pełni kompatybilna mechanicznie i napięciowo. Tak, płytka ta, mimo że jest współczesna, wciąż pracuje przy poziomach pięciowoltowych. Oznacza to, że można ją wsadzić w miejsce płytek wyprodukowanych kilkanaście lat temu i wszystko będzie pracować jak należy. Ma to też swoje wady, świat już właściwie odszedł od pięciu woltów, ale to nie jest wielki problem, a poza tym mamy tutaj pewną furtkę, o której za chwilę opowiem.

Z tą kompatybilnością mechaniczną nie jest tak idealnie, ponieważ zmieniło się gniazdko USB – ze starego, wielgachnego, które można było znaleźć jeszcze w sprzęcie z lat dziewięćdziesiątych na współczesne, miniaturowe USB-C. Oznacza to, że skrojone na miarę obudowy pod stare UNO mogą zionąć w miejscu gniazdka wielką dziurą. Ale ten problem będzie spotykany raczej sporadycznie.

Zdaję sobie sprawę, że wielu, jak nie większość użytkowników platformy, nigdy włoskiego oryginału nie miało w rękach. Zatem króciutko: co tak naprawdę dostajemy? Płytkę, już osadzoną na podstawce z tworzywa – praktyczne to, bo unikniemy zwarcia, kładąc nasze dzieło na widelcu, który od dwóch tygodni powinien trafić do zmywarki, co akurat u pasjonatów elektroniki jest powszechne. Płytka przychodzi w uroczym pudełeczku, a wewnątrz siedzą jeszcze: książeczka szczepień, jak ja to mówię, czyli zestaw certyfikatów, odezwa producenta do świata wraz z klasycznym „umywaniem rąk od problemów” oraz zestaw naklejek, które kochają dzieci – oficjalnie i już nie – dorośli.

Oto płytka wyznaczająca obecne standardy. Sercem jest ten mikrokontroler i jest to tym razem trzydziestodwubitowy ARM Cortex M4. Zegar, choć to dziś wcale wrażenia nie robi, pracuje znacznie szybciej wobec protoplasty, bo z szybkością 48 MHz. Wewnątrz siedzi ćwierć megabajta pamięci flash, 32 kB ramu i 8 kB pamięci eeprom. Czyli wszystkiego jest dużo, dużo więcej, na tyle, że chyba już nikt nie będzie mieć problemu z brakiem którejś pamięci przy zastosowaniach typowych dla Arduino.

Mamy także inne nowości, które schowały się w tej małej kostce. A więc: zegar RTC, czyli niezależny od wszystkiego układ zegara czasu rzeczywistego, zasilany z osobnego źródła energii, w praktyce – z małej bateryjki. Nareszcie po pierwsze, mamy na pokładzie gratisowy zegarek, którego nie trzeba będzie emulować programowo lub dokładać z zewnątrz, po drugie – zegarek pokazujący bieżący czas także po włączeniu zasilania modułu, już bez konieczności jego ustawiania.

Przy okazji zegar może sterować zasilaniem całości i na tę sposobność otrzymaliśmy także wejście sterujące. Innymi słowy, układ może sobie czuwać, stając się urządzeniem zasługującym na nazwę: zasilane bateryjnie i w dowolnej chwili obudzić się do działania.

Kolejno urosła dokładność przetworników analogowo-cyfrowych i teraz dysponują już 14 bitami. Ponad 16 tysięcy poziomów to już naprawdę bardzo przyzwoita rozdzielczość. Ale mamy tutaj także coś nowego: przetwornik pracujący w drugą stronę, o rozdzielczości 12 bitów. Koniec zatem z generowaniem dźwięków metodą modulacji impulsów, jak to się robiło do tej pory. Niby 12 bitów to nie 16, jednak w czasach początków cyfryzacji świata wiele profesjonalnych instrumentów pracowało z taką rozdzielczością, a standard płyt CD o mało nie stał się właśnie czternastobitowy.

Jeśli chodzi o magistrale, jest tutaj po staremu: I2C, SPI, złącze szeregowe, ale także USB, które teraz pracuje także w standardzie HID. Do Arduino można zatem podłączyć klawiaturę, mysz i temu podobne urządzenia. Jak mówiłem, mamy też ukłon w stronę standardów trzywoltowych i znajdziemy tutaj niezależny port I2C, do tego w standardzie Qwiic, to jest znormalizowanego gniazdka, do którego można dokupić przewód do podłączania innych modułów w sposób jednoznaczny i nie wymagający lutowania. Systemy takie można łączyć w długie łańcuchy, trzymając się tylko wytycznych standardu. Na pokładzie mamy także magistralę CAN, bez części sprzętowej. Na deser dostaniemy jeszcze natywną obsługę pojemnościowego interfejsu dotykowego, który może być realizowany tutaj alternatywnie na dziesięciu kanałach.

Idźmy sobie dalej. Zasilanie – jest rozbudowane jak dawniej, a więc układ możemy zasilać z USB i tak jest to zwykle realizowane podczas programowania. Ze stabilizowanego źródła o napięciu pięć woltów oraz z zasilacza zewnętrznego o napięciu od 6 aż do 24 woltów. To jest niewątpliwie nowość, co do której mam ograniczone zaufanie, ale chyba powinienem nie być taki sceptyczny. Tym razem użyto przetwornicy step-down, a wejście zabezpieczono przed podłączeniem wtyczki z odwróconą polaryzacją. Na płytce znajduje się także zasilacz dający napięcie 3,3 wolta, tym razem już liniowy. Pewną zmianą wobec wcześniejszych wersji jest ograniczenie maksymalnego prądu dla dowolnego pinu do 8 mA. Nie znaczy to, że przeciążenie spali nam zabawkę, zadziałają zabezpieczenia. Po prostu nie ma gwarancji, że przy większym obciążeniu dostaniemy gwarantowane poziomy.

Pozostały do omówienia dwa elementy. Pierwszym, który od razu rzuca się w oczy, jest matryca diod świecących o wymiarach 12x8 połączonych w standardzie charlieplexing, będącym odmianą multipleksu wykorzystującego dodatkowo możliwość odłączenia linii (w praktyce postawienia jej w stan wysokiej impedancji) oraz pracy diod parami – z odwróconą polaryzacją. W rezultacie 11 wyjść steruje 96 ledami. Co prawda zarządzanie tym nieco się komplikuje, ale to już jest zadanie bibliotek.

Z jednej strony 96 ledów to niedużo, z drugiej – to i owo się tam da przedstawić, a biblioteka programów przykładowych pokazuje, że fantazja ludzka nie ma granic. Można by się zastanowić: dlaczego nie przyklejono tutaj jakiegoś OLED-a ze współczesną już rozdzielczością? Myślę że powód był jeden: cykl produkcyjny takich wyświetlaczy obecnie nie jest długi. W tym przypadku najwyżej sięgnie się po inne diody, w przypadku zmiany wyświetlacza nowy niekoniecznie będzie pasować zarówno mechanicznie jak programowo, a to jednak ma być standard na lata.

W każdym razie, mimo mizernej rozdzielczości, wyświetlacz jest użyteczny i wygląda interesująco. Istotne jest to, że nie wchodzi w paradę zasobom, korzystając z wyjść mikrokontrolera spoza arduinowego standardu. Wyświetlacz otrzymał stosowne biblioteki, a do każdej z diod można się odwołać za pomocą adresu.

Elementem, który zostawiłem sobie na deser jest drugi mikrokontroler, tak naprawdę potężniejszy od już omówionego. To on zarządza łącznością WiFi i BT, a jest nim układ ESP32-S3 Tutaj siedzą już dwa rdzenie biegające z szybkością do 240 MHz, pamięci flash znajdziemy 384 kB, a ramu – aż pół megabajta. Obsługuje on pasmo 2,4 GHz do szybkości 150 Mbps oraz Bluetooth w wersji 5 LE. Układ ten pracuje już w logice trzywoltowej i rozmawia z głównym kontrolerem za pomocą konwertera. Na specjalne potrzeby, na płytce wystawiono złącze bezpośrednio związane z tym kontrolerem. Oczywiście anteny także znajdują się na płytce, więc do łączności potrzebujemy tutaj wyłącznie sprawnego operatora.

Mikrokontroler ten jest potężny i z pewnością warto będzie się mu kiedyś przyjrzeć. Dziś jednak, na koniec już, wspomnę o słynnym blink, czyli pierwszym programie każdego arduinoisty, który obecnie pozwala sterować diodą za pomocą smartfona. Jak się to robi i do czego służy chmura Arduino napiszę w kolejnym artykule.

Płytka edukacyjna TME-EDU-ARD-2Płytka edukacyjna TME-EDU-ARD-2Sprawdź tutaj

Przeczytaj również

Nasi partnerzy

TMETech Master EventTME EducationPoweredby
Copyright © 2024 arduino.pl