Nauka elektroniki
Jest to nasz nowy cykl edukacyjny poświęcony wykorzystaniu popularnego modułu ESP32 do nauki podstaw elektroniki i programowania. Nie zakładamy, że Czytelnik ma wcześniejsze doświadczenie w programowaniu ani elektronice. Jeśli znacie jedną z tych dziedzin, ale druga jest dla Was nowością, trafiliście we właściwe miejsce. A jeśli dopiero zaczynacie przygodę zarówno z elektroniką, jak i programowaniem, również nie ma powodów do obaw. Nasz cykl opiera się na stopniowym i praktycznym zdobywaniu wiedzy. Będzie mnóstwo okazji do nauki i samodzielnego eksperymentowania. W kolejnych odcinkach znajdziecie projekty i zadania, które pomogą lepiej zrozumieć omawiane zagadnienia.
Tematyką tego odcinka jest:
- instalacja i obsługa środowiska Arduino IDE,
- wprowadzanie i testowanie programu,
- użycie modułu ESP32 na płytce prototypowej.
Dlaczego ESP32?
ESP32 wybraliśmy jako platformę dla tej serii z kilku istotnych powodów. Mówiąc najprościej, ESP32 to rozwiązanie dobrze już sprawdzone (wprowadzone na rynek w 2016 roku), wydajne i łatwe w obsłudze. Oferuje szerokie możliwości konfiguracji i może być wykorzystywane w bardzo różnych zastosowaniach – od zupełnie podstawowych (np. sterowania wyświetlaczem LED) po najbardziej wymagające (np. strumieniowe przesyłanie i dekodowanie plików MP3). ESP32 oferuje rozbudowany zestaw wejść i wyjść analogowych oraz cyfrowych, asynchroniczny interfejs szeregowy (UART), a także możliwość dołączania popularnych układów wyposażonych w interfejsy SPI i I²C. Obsługuje również Ethernet (z wykorzystaniem zewnętrznego układu PHY – przypis redaktora), Bluetooth oraz Wi-Fi. Płytka z modułem ESP32 kosztuje około 30 zł, co rzeczywiście trudno przebić!
Dużym atutem ESP32 jest wbudowany układ radiowy. Pozwala to uniknąć kłopotliwego dołączania zewnętrznych elementów toru radiowego, co ze względu na bardzo wysokie częstotliwości sygnałów bywa trudne. Moduł zawiera wzmacniacz mocy w.cz. (o mocy wyjściowej do 20 dBm), niskoszumny wzmacniacz odbiorczy, przełącznik antenowy oraz filtry w.cz. Dzięki temu nie trzeba samodzielnie projektować i wykonywać skomplikowanego toru radiowego.
Moduł ESP32, bogato wyposażony w różnorodne funkcje, ugruntował w ostatnich latach swoją pozycję jako centralny element wielu niedrogich urządzeń sterujących oraz systemów IoT (Internet of Things). Powody jego sukcesu to między innymi:
Doskonały system łączności
ESP32, poza podstawowym interfejsem szeregowym (UART), oferuje wiele możliwości komunikacji z wykorzystaniem Wi-Fi 2,4 GHz, Bluetooth i Ethernetu. Interfejs Bluetooth obsługuje zarówno tryb klasyczny, jak i Bluetooth Low Energy (BLE). Wi-Fi jest zgodne ze standardem IEEE 802.11 i może pracować zarówno w trybie punktu dostępowego (AP), jak i w trybie stacji (STA). Pierwszy z tych trybów pozwala utworzyć z ESP32 własną lokalną sieć bezprzewodową, natomiast drugi umożliwia połączenie z istniejącą siecią Wi-Fi i dostęp do Internetu.
Niski pobór mocy
Niewielki pobór mocy sprawia, że ESP32 doskonale nadaje się do aplikacji zasilanych z baterii. Moduł można przełączyć w tryb głębokiego uśpienia (Deep Sleep), w którym pobór prądu wynosi zaledwie kilka mikroamperów.
Dwurdzeniowy mikrokontroler
Większość modułów ESP32 zawiera dwurdzeniowe mikrokontrolery. Program może być wykonywany równolegle przez oba rdzenie.
Oprogramowanie systemowe
Oprogramowanie producenta wykorzystuje system FreeRTOS. Ten zaawansowany, dobrze udokumentowany system operacyjny typu open source obsługuje wielozadaniowość i udostępnia bogaty zestaw funkcji API (interfejsu programowania aplikacji).
Rozbudowane możliwości wejścia/wyjścia
ESP32 współpracuje z szeroką gamą urządzeń zewnętrznych. Ma wbudowane przetworniki DAC i ADC, generatory PWM oraz wejścia czujników dotykowych, a także interfejsy I²C, SPI i UART.
Łatwość programowania
Pisanie programów dla modułu jest proste. Można do tego wykorzystać środowisko Arduino IDE lub inne popularne środowiska programistyczne (patrz dalej).
Niski koszt i szeroka dostępność
Moduły i zestawy rozwojowe oparte na ESP32 są dostępne u wielu dostawców w bardzo atrakcyjnych cenach (zazwyczaj około 30...50 zł za kompletną płytkę).
Czym jest ESP32?
ESP32 to ogólna nazwa rodziny zaawansowanych układów typu System on Chip (SoC) firmy Espressif. Określenie ESP32 odnosi się również do modułów oraz licznych płytek rozwojowych opartych na tych układach. Układ SoC ESP32 jest następcą cieszącego się dużą popularnością ESP8266, oferując przy tym szereg istotnych nowych funkcji.
Układ SoC ESP32 jest przeznaczony do wbudowywania w urządzenia realizujące określone zadania, takie jak kontrola dostępu, monitorowanie środowiska, sterowanie maszynami czy automatyka domowa. W postaci modułu jest montowany na niewielkiej płytce zawierającej dodatkowe elementy, między innymi drukowaną antenę Wi-Fi.
Płytki rozwojowe (ang. Devkits) idą o krok dalej, zapewniając jeszcze lepsze warunki do eksperymentowania i nauki. Udostępniają większość wyprowadzeń wejścia/wyjścia modułu ESP32, a ponadto są wyposażone w interfejs USB do programowania oraz stabilizator napięcia. Nasza seria „Nauka elektroniki” skupia się na najpopularniejszych płytkach rozwojowych wykorzystujących moduł ESP-WROOM-32. Są one dostępne w wersjach 30- i 36-pinowych. Do realizacji opisywanych przez nas układów można użyć każdej z nich, jednak w większości przykładów wykorzystujemy mniejszą wersję 30-pinową. Moduł ESP-WROOM-32 ma imponujące parametry.
I wreszcie, osoby znające płytki Arduino UNO zauważą, że dostępne są również płytki z ESP32 o układzie wyprowadzeń zgodnym z Arduino UNO. Dzięki temu można korzystać z modułów i nakładek zaprojektowanych dla Arduino UNO również z układem ESP32. Układ ESP32 został nawet wykorzystany w najnowszym module Arduino UNO R4 Wi-Fi. Połączono w nim mikrokontroler RA4M1 firmy Renesas z układem ESP32-S3 firmy Espressif, uzyskując wyjątkowo wydajne i wszechstronne rozwiązanie.