Mikrokontrolery i systemy embedded

M5StickC – funkcje, specyfikacja i pomysły na zastosowanie

Spis treści
M5StickC – funkcje, specyfikacja i pomysły na zastosowanie

M5StickC to miniaturowy zestaw deweloperski IoT oparty na układzie ESP32-PICO. W obudowie wielkości pendrive’a łączy mikrokontroler, kolorowy wyświetlacz, akumulator oraz zestaw czujników i interfejsów.

Dzięki wbudowanej łączności Wi-Fi i Bluetooth urządzenie doskonale sprawdza się w szybkim prototypowaniu, nauce elektroniki oraz budowie przenośnych systemów IoT i urządzeń ubieralnych.

Czym jest M5StickC?

M5StickC należy do rodziny M5Stack i jest gotowym do użycia modułem wyposażonym w wyświetlacz, akumulator, złącze USB-C oraz port rozszerzeń GROVE.

Sercem urządzenia jest układ SoC ESP32-PICO-D4 lub jeden z jego nowszych wariantów. Zawiera on dwurdzeniowy procesor Xtensa LX6 taktowany zegarem do 240 MHz, pamięć SRAM oraz moduły komunikacji Wi-Fi i Bluetooth 4.2 BR/EDR/BLE.

M5StickC integruje najważniejsze elementy potrzebne do budowy funkcjonalnego prototypu: kolorowy ekran TFT, 6-osiowy IMU, mikrofon, nadajnik podczerwieni, zegar RTC, diody LED, przyciski użytkownika oraz niewielki akumulator litowo-polimerowy.

Złącze USB-C służy do zasilania, ładowania i programowania urządzenia. Port GROVE obsługuje między innymi I2C, UART i GPIO, dzięki czemu pozwala podłączać czujniki oraz dodatkowe moduły bez lutowania.

Oryginalny M5StickC ma wymiary około 48 × 24 × 13,5 mm, dlatego dobrze nadaje się do zastosowań mobilnych, ubieralnych i instalacji o ograniczonej przestrzeni.

Rodzina – M5StickC, M5StickC Plus i Plus2

Poszczególne wersje zachowują wspólną koncepcję miniaturowego komputera IoT, ale różnią się między innymi ekranem, pojemnością pamięci i akumulatorem:

Wersja Ekran Rozdzielczość Pamięć Flash Akumulator
M5StickC 0,96 cala 80 × 160 pikseli zwykle 4 MB około 95–120 mAh
M5StickC Plus 1,14 cala 135 × 240 pikseli zależnie od rewizji około 120 mAh
M5StickC Plus2 1,14 cala 135 × 240 pikseli 8 MB około 200 mAh

M5StickC Plus oferuje większy ekran TFT, który zapewnia więcej miejsca na interfejs graficzny, wykresy i odczyty z czujników. Zachowuje przy tym układ ESP32-PICO-D4 oraz kompaktową konstrukcję.

M5StickC Plus2 wykorzystuje nowszy układ ESP32-PICO-V3-02, ma 8 MB pamięci Flash, akumulator o pojemności około 200 mAh oraz dodatkowy przycisk. Zmieniono w nim również konfigurację diod LED i części układów wewnętrznych.

Dokładne podzespoły mogą różnić się zależnie od wersji i rewizji sprzętowej, dlatego przed rozpoczęciem projektu warto sprawdzić dokumentację konkretnego modelu.

Kluczowa specyfikacja sprzętowa

Mikrokontroler i pamięć

Głównym układem SoC jest ESP32-PICO-D4 lub jego odpowiednik, integrujący dwurdzeniowy procesor Xtensa LX6 taktowany zegarem do 240 MHz oraz 520 kB pamięci SRAM.

Podstawowy M5StickC jest zwykle wyposażony w 4 MB pamięci Flash, natomiast nowsze rewizje i modele z rodziny Plus mogą oferować 8 MB.

Obsługa Wi-Fi 802.11 b/g/n w paśmie 2,4 GHz oraz Bluetooth 4.2 BR/EDR/BLE pozwala komunikować się z chmurą, smartfonami i innymi urządzeniami IoT.

Wyświetlacz LCD

Oryginalny M5StickC wykorzystuje kolorowy ekran TFT LCD o przekątnej 0,96 cala i rozdzielczości 80 × 160 pikseli. Zależnie od rewizji może być wyposażony w sterownik ST7735S lub ST7735SV.

Modele M5StickC Plus i Plus2 mają większy ekran o przekątnej 1,14 cala i rozdzielczości 135 × 240 pikseli, najczęściej ze sterownikiem ST7789v2. Większa powierzchnia wyświetlacza ułatwia tworzenie czytelnych interfejsów, wykresów i paneli kontrolnych.

Czujniki i wbudowane peryferia

M5StickC udostępnia wiele elementów, które można wykorzystać bez podłączania dodatkowego sprzętu:

  • 6-osiowy IMU – obejmuje akcelerometr i żyroskop, dzięki czemu mierzy przyspieszenie oraz prędkość kątową w trzech osiach;
  • mikrofon MEMS – umożliwia wykrywanie dźwięku, pomiar jego poziomu i tworzenie prostych aplikacji audio;
  • nadajnik podczerwieni – pozwala sterować telewizorami, klimatyzatorami oraz innymi odbiornikami IR;
  • zegar czasu rzeczywistego RTC – podtrzymuje czas podczas uśpienia mikrokontrolera i wspiera działanie harmonogramów;
  • diody LED – służą do sygnalizowania stanu urządzenia, połączenia lub aktywnej funkcji;
  • przyciski użytkownika – umożliwiają sterowanie aplikacją, zmianę trybów i nawigację po menu;
  • pasywny brzęczyk – występuje w wybranych wariantach i pozwala generować proste sygnały dźwiękowe.

Rodzaj zastosowanego IMU, mikrofonu lub układu RTC może zależeć od rewizji urządzenia. Spotykane są między innymi układy MPU6886, SPM1423 i BM8563 lub komponenty o podobnych możliwościach.

Zasilanie i zarządzanie energią

M5StickC jest zasilany z akumulatora litowo-polimerowego o pojemności zależnej od wersji. W podstawowych modelach wynosi ona zwykle około 95–120 mAh, natomiast M5StickC Plus2 oferuje około 200 mAh.

Za ładowanie akumulatora i zarządzanie liniami zasilania odpowiada dedykowany układ, na przykład AXP192 w starszych wersjach. Obsługuje on ładowanie, kontrolę napięć oraz energooszczędne tryby pracy.

Typowe napięcie wejściowe wynosi 5 V, a zalecana wydajność prądowa zasilacza to około 500 mA. Port GROVE lub HY2.0 może udostępniać podłączonym peryferiom linie zasilania 5 V albo 3,3 V, zależnie od modelu i konfiguracji.

Czas działania na akumulatorze zależy przede wszystkim od jasności ekranu, aktywności procesora, częstotliwości pomiarów oraz wykorzystania Wi-Fi i Bluetooth. Stosowanie trybów uśpienia może znacząco wydłużyć pracę urządzenia.

Interfejsy i złącza

USB-C umożliwia zasilanie urządzenia, ładowanie akumulatora oraz komunikację podczas programowania.

Port GROVE, a w nowszych wersjach złącze HY2.0-4P, pozwala szybko podłączać gotowe czujniki, wyświetlacze i ekspandery wykorzystujące I2C, UART lub GPIO.

Wyprowadzone piny GPIO, takie jak G0, G26 i G36 w podstawowym M5StickC, pozwalają dołączać własne przyciski, czujniki, tranzystory i inne układy. Dostępność oraz funkcje pinów należy jednak zweryfikować w dokumentacji używanej wersji.

Wbudowana antena 2,4 GHz zapewnia komunikację Wi-Fi i Bluetooth bez konieczności stosowania anteny zewnętrznej.

Oprogramowanie i środowiska programistyczne

M5StickC może być programowany za pomocą kilku popularnych środowisk:

  • Arduino – zapewnia łatwy start, liczne biblioteki i wiele gotowych przykładów;
  • MicroPython – umożliwia szybkie prototypowanie i programowanie w języku Python;
  • ESP-IDF – oferuje pełny dostęp do funkcji ESP32 i sprawdza się w zaawansowanych projektach;
  • Zephyr OS – pozwala wykorzystywać wybrane wersje jako moduły w rozbudowanych systemach wbudowanych.

Biblioteki przeznaczone dla rodziny M5Stack upraszczają obsługę ekranu, IMU, mikrofonu, zegara RTC, przycisków, diod LED, nadajnika podczerwieni i układu zasilania.

Dostępne są również funkcje inicjalizacji portu szeregowego, na przykład z prędkością 115 200 bodów, co ułatwia diagnostykę programu i przesyłanie danych do komputera.

Typowe funkcje dostępne od ręki

Dzięki integracji wielu podzespołów M5StickC może wykonywać liczne zadania bez dodatkowego sprzętu:

  • wyświetlanie tekstu, grafiki, wykresów i prostych interfejsów na kolorowym ekranie TFT,
  • pomiar ruchu, orientacji, przechyłu i wstrząsów za pomocą IMU,
  • wykrywanie dźwięku i rejestrowanie krótkich próbek audio za pomocą mikrofonu MEMS,
  • sterowanie telewizorami, klimatyzatorami i urządzeniami multimedialnymi przez podczerwień,
  • odmierzanie czasu oraz obsługa alarmów i harmonogramów przy użyciu zegara RTC,
  • sygnalizowanie stanów za pomocą diod LED i brzęczyka dostępnego w wybranych modelach,
  • obsługa lokalnego interfejsu za pomocą przycisków użytkownika,
  • komunikacja przez Wi-Fi i Bluetooth z chmurą, smartfonem oraz innymi urządzeniami IoT.

Pomysły na zastosowanie M5StickC

Połączenie czujników, interfejsów bezprzewodowych i niewielkich wymiarów sprawia, że M5StickC nadaje się zarówno do prostych eksperymentów, jak i bardziej rozbudowanych prototypów.

1. Miniaturowy rejestrator danych

IMU, zegar RTC i pamięć Flash pozwalają zbudować rejestrator ruchu, drgań lub położenia, który zapisuje pomiary w określonych odstępach czasu.

Dzięki Wi-Fi urządzenie może okresowo wysyłać wyniki do serwera, a ekran prezentować bieżące wartości, stan połączenia i informacje diagnostyczne.

Połączenie trybów uśpienia z zegarem RTC może znacząco wydłużyć czas pracy w projektach wykonujących okresowe pomiary.

2. Przenośny pilot podczerwieni z wyświetlaczem

Nadajnik podczerwieni i przyciski użytkownika czynią z M5StickC dobrą bazę do budowy uniwersalnego pilota.

Urządzenie można zaprogramować do wysyłania kodów obsługiwanych przez telewizory, sprzęt audio i klimatyzatory. Ekran TFT może pokazywać wybrany profil, aktualną funkcję oraz stan transmisji.

Łączność Bluetooth pozwala sterować pilotem także z poziomu aplikacji mobilnej. Smartfon wybiera polecenie, a M5StickC wysyła odpowiedni kod podczerwieni.

3. Urządzenie ubieralne – licznik kroków, rejestrator aktywności lub prosty monitor

6-osiowy IMU umożliwia tworzenie algorytmów wykrywania kroków, aktywności fizycznej, gestów i upadków.

Dzięki kompaktowym wymiarom M5StickC można zamocować na nadgarstku, pasku lub plecaku. Ekran może prezentować liczbę kroków, aktualny czas, tryb pracy i podstawowe powiadomienia.

Bluetooth pozwala przesyłać zgromadzone dane do smartfona lub komputera.

4. IoT – miniaturowy klient usług chmurowych

ESP32 z łącznością Wi-Fi umożliwia komunikację z usługami chmurowymi przy użyciu protokołów MQTT i HTTP.

M5StickC może zbierać dane z IMU, mikrofonu oraz czujników podłączonych do portu GROVE, a następnie wysyłać je do serwera, panelu kontrolnego lub systemu automatyki domowej.

Wyświetlacz może lokalnie prezentować aktualne odczyty, poziom sygnału Wi-Fi i stan połączenia z usługą.

5. Moduł sterowania w robotyce i mechatronice

Dzięki GPIO i portowi GROVE M5StickC może pełnić funkcję panelu sterującego dla małych robotów, platform mobilnych oraz manipulatorów.

Wyświetlacz może pokazywać poziom naładowania akumulatora, tryb pracy i komunikaty o błędach. Przyciski umożliwiają lokalne sterowanie, a Wi-Fi lub Bluetooth – zdalne przesyłanie poleceń i telemetrii.

IMU może służyć do wykrywania przechyłu, monitorowania ruchu oraz tworzenia prostych algorytmów stabilizacji i balansowania.

6. Naukowe i edukacyjne laboratorium w kieszeni

M5StickC pozwala uczyć się programowania mikrokontrolerów i obsługi systemów wbudowanych bez konieczności budowania całego układu od podstaw.

Użytkownik może eksperymentować z przetwarzaniem danych z IMU, analizą dźwięku, interfejsami graficznymi i komunikacją sieciową.

Port GROVE umożliwia wykonywanie ćwiczeń związanych z magistralami I2C i UART, a także podłączanie czujników, wyświetlaczy oraz ekspanderów wejść i wyjść.

7. Wyświetlacz stanu i panel HMI

Kolorowy ekran w połączeniu z łącznością sieciową pozwala stworzyć miniaturowy panel HMI pokazujący stan urządzeń, serwerów lub systemu automatyki.

M5StickC może cyklicznie pobierać informacje z API, brokera MQTT lub innego źródła danych. Przyciski mogą służyć do przełączania widoków i wykonywania prostych działań.

Dzięki niewielkim wymiarom panel można łatwo zamontować w obudowie większego urządzenia, na przykład serwera domowego, sterownika lub stanowiska pomiarowego.

8. Urządzenia czasu rzeczywistego – budzik, minutnik i minikalendarz

Zegar RTC z podtrzymaniem czasu umożliwia budowę budzika, minutnika, zegara biurkowego lub prostego kalendarza.

Ekran może prezentować aktualną godzinę, datę i zaplanowane zdarzenia, natomiast diody LED oraz dostępny w wybranych wariantach brzęczyk mogą sygnalizować alarmy.

ESP32 umożliwia synchronizację czasu przez sieć za pomocą protokołu NTP, łącząc niezależne działanie zegara RTC z automatyczną aktualizacją daty i godziny.

Dlaczego M5StickC jest ciekawy dla projektantów systemów elektronicznych?

M5StickC łączy procesor, pamięć, układ zasilania, ekran, czujniki i interfejsy komunikacyjne w jednym gotowym do użycia module. Znacząco skraca to drogę od pomysłu do działającego prototypu.

Układ ESP32 zapewnia dobrą wydajność, rozbudowane wsparcie społeczności, dostęp do licznych bibliotek oraz łatwą integrację z popularnymi protokołami sieciowymi.

Port GROVE lub HY2.0 pozwala skupić się na logice projektu zamiast na konstruowaniu całego sprzętu od podstaw. Jest to szczególnie przydatne podczas szybkiego prototypowania, prowadzenia zajęć edukacyjnych i testowania nowych koncepcji.

Warianty Plus i Plus2 rozwijają możliwości oryginalnego urządzenia, oferując większe ekrany, pojemniejsze akumulatory, więcej pamięci lub dodatkowe elementy sterujące, a jednocześnie zachowują podobny sposób programowania.