Większości z Was Raspberry Pi kojarzy się zapewne z niezwykle popularnym wśród hobbystów jednopłytkowym komputerem. Jednak Raspberry Pi Foundation opracowała również własny mikrokontroler – RP2040. Jego funkcjonalność znacznie przewyższa choćby również wszystkim dobrze znane Arduino a do tego nadal posiada atrakcyjną cenę. Flagową płytką protoypową z tym mikrokontrolerem jest Raspberry Pi Pico – wyglądem zbliżona do Arduino Nano. Dziś jednak chciałbym się skupić na moim zdaniem ciekawszej alternatywie jaką jest LILYGO T-PicoC3. Jest to płytka, która oprócz RP2040 zawiera również ESP32-C3 oraz wyświetlacz IPS.
Specyfikacja T-PicoC3
To może na samym początku przyjrzyjmy się specyfikacji omawianej dziś płytki. Jak wspomniałem już wyżej, zawiera ona aż dwa mikrokontrolery – RP2040 oraz ESP32-C3. Obydwa mikrokontrolery są programowalne i mogą pracować w tym samym czasie. Niemniej, zapewne głównym celem umieszczenia ESP32 w zamyśle twórców było zapewnienie łączności WiFi i Bluetooth. Co jeszcze znajdziemy na płytce?
- Wyświetlacz IPS 1.14″ 134x240px ze sterownikiem ST7789V
- 15 GPIO (RP2040) oraz 3 GPIO ESP32-C3
- Złącze USB typu C do programowania i zasilania
- Złącze antenowe IPEX dla WiFi (na płytce jest też wbudowana antena)
- Złącze dla baterii Li-ion (JST 1,25mm)
- Wprowadzone piny interfejsu programowania SWD
- 2 przyciski programowalne oraz przyciski RUN i BOOT
- 4 diody LED: niebieska i zielona (sygnalizacja strony USB), programowalna czerwona, niebieska – ładowanie baterii
- Wbudowany układ ładowania Li-ion
Płytkę możemy zasilać z USB C bądź ogniwa Li-ion poprzez dedykowane złącze. Baterię możemy naładować bez odłączania od płytki – znajduje się na niej dedykowany układ kontrolujący ładowanie. Dodatkowo jeden z pinów ADC RP2040 połączony jest z baterią przez dzielnik napięcia co umożliwia odczyt stanu naładowania baterii. RP2040 z ESP32 posiadają wewnętrzne połączenie na PCB poprzez swoje porty UART i tą drogą mogą się komunikować.
Płytka przychodzi do nas w plastikowym pudełku wyłożonym gąbką. Także na szczęście uszkodzenie jej w transporcie powinno stanowić rzadkość. W środku oprócz samej płytki najdziemy jeszcze goldpiny (do przylutowania samodzielnie) oraz kabelek do podłączenia baterii.
Podłączenie kabla USB
Podpięcie kabelka USB może wydawać się czynnością trywialną, szczególnie w przypadku typu C gdzie złącze pasuje w obie strony, jednak tutaj mamy mały myk. W zależności od tego, którą stroną podłączymy kabel USB będziemy mieć możliwość programowania albo RP2040 albo ESP32-C3. Sygnalizują to odpowiednio niebieska i zielona dioda LED. Co ciekawe, nawet według producenta nie każdy kabel USB będzie działał w taki sposób prawidłowo zatem może to się okazać nieco upierdliwe. Ja przetestowałem kabel od telefonu Xiaomi oraz drugi Baseus i na obydwu wszystko działało jak należy.
Programowanie
W czym programować T-PicoC3? Najbardziej popularne narzędzia to MicroPython oraz Arduino. Dla tego pierwszego polecanym narzędziem jest Thonny natomiast to nie jedyne rozwiązanie, niektórzy polecają np. Visual Studio Code z dedykowaną wtyczką. Przetestowałem pod Windows programowanie w Arduino jak i Thonny a krótki opis jak się za to zabrać znajdziecie poniżej.
Arduino IDE
W przypadku Arduino aby móc używać RP2040 należy w menu Plik -> Preferencje -> Dodatkowe adresy URL dla menadżera płytek dopisać:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
Teraz przechodzimy do Narzędzia -> Płytka -> Menedżer Płytek… i wyszukujemy hasło RP2040. Instalujemy pozycję opisaną jako Raspberry Pi Pico/RP2040. Po zainstalowaniu możemy już jako płytkę w projekcie Arduino Wybierać nowe pozycje z nowej pozycji Raspberry PI RP2040 boards. Jest tam spora liczba różnych płytek lecz na dzień pisania tego artykułu nie było jeszcze T-PicoC3 dlatego wybierałem po prostu Generic RP2040. Po podłączeniu płytki gdy system zainstaluje niezbędne sterowniki sprawdź w menedżerze urządzeń jaki port COM otrzymało RP2040. Jeśli masz problem z wgraniem sketchu podłącz płytkę do komputera z wciśniętym przyciskiem BOOT (pamiętaj o odpowiedniej stronie kabla USB – niebieski LED).
MicroPython – Thonny
W przypadku MicroPythona, zaczynamy od pobrania Thonny z oficjalnej witryny producenta oraz jego zainstalowania. Po uruchomieniu programu podłączamy płytkę do komputera z wciśniętym przyciskiem BOOT (upewnij się, że USB C włożone jest odpowiednią stroną i zaświeca się niebieski LED). W prawym dolnym rogu programu wyświetlona jest obecna wersja pythona, kliknij ją i wybierz MicroPython (Raspberry Pi Pico). Następnie wyświetli się okno dialogowe, na którym klikamy Install aby zainstalować firmware.
Teraz wystarczy napisać trochę kodu bądź wgrać jakiś przykładowy program i kliknąć zielony przycisk Uruchom aktualny skrypt. Zostaniemy zapytani czy program ma być uruchomiony lokalnie na komputerze czy na Raspberry, oczywiście wybieramy tą drugą opcję. Następnie musimy jeszcze podać nazwę pliku dla naszego projektu.
Przykładowe programy można znaleźć na GitHubie projektu. Płytka przychodzi do nas z wgranym programem, który skanuje sieci WiFi a wyniki tego skanowania wyświetla na ekranie IPS. ESP32-C3 posiada wgrane firmware do obsługi komendami AT, ale nic nie stoi na przeszkodzie by zaprogramować go według własnego uznania. Dla MicroPythona przykładowe projekty można znaleźć tutaj.
Czy warto?
Płytkę kupiłem na Aliexpress za około 57zł na małej promocji. W tej cenie otrzymujemy niewielkich rozmiarów PCB z dwoma solidnymi MCU oraz wyświetlaczem. Jest więc nieco drożej niż Raspberry Pi Pico (do kupienia za 20 parę złotych) lecz otrzymujemy na start łączność WiFi i Bluetooth oraz wyświetlacz. Ja swojego zakupu nie żałuję, T-Pico-C3 z pewnością przyda mi się przy prototypowaniu. Żałuję natomiast, że wcześniej nie trafiłem na produkty LILYGO gdyż bardzo często są one znacznie bardziej ciekawe niż standardowe np. klony NodeMCU czy devkit ESP32.
Do minusów zaliczyłbym montaż wyświetlacza. Producent przykleił go do płytki za pomocą gąbki – nie wydaje się to ani solidne, ani estetyczne. Oznaczenia pinów na płytce również nie są zbyt czytelne choć to już w zasadzie czepianie się na siłę.
Odrębną kwestią jest to czy w ogóle RP2040 znajdzie swoje miejsce wśród moich przyszłych projektów. Nie lubię stosować w swoich urządzeniach gotowych płytek i zawsze staram się projektować własne. Obudowa w jakiej dostępny jest RP2040 nie jest zbyt przyjazna do lutowania dla hobbystów, dlatego wśród amatroskich projektów na pewno królować będą te oparte na Raspberry Pi Pico bądź właśnie T-PicoC3.
2 komentarze
Bogdan · 9 września 2022 o 22:18
Czy udało Ci się uruchomić komunikację między procesorami na tej płytce?
Konrad · 10 września 2022 o 08:51
Uruchomiłem dostępny na githubie projektu przykładowy program, który wykorzystuje ESP32 poprzez komendy AT do połączenia się z WiFi i odwiedza wskazany URL. Nie miałem jeszcze okazji zrobić czegoś swojego 😉