ESP8266: Spojrzenie na hardware

Moje pierwsze spotkanie z ESP8266 lekko wprowadziło mnie w tematykę tego miłego modułu, ale nie zajmowałem się tam za bardzo samym sprzętem. Dlatego tym razem zerkam nieśmiało w tym kierunku. Głównie wokół prostych developerskich konstrukcji. Bo modułów istnieje cała gama, większe - mniejsze, dużo - mało wyprowadzeń, tanio - drogo... i jak tu wybrać jakąś wersję choćby tylko do bliższego poznania możliwości układu, albo typowej deweloperki i eksperymentów?

Do tej pory używałem ESP-01 do prostych testów, ale jak wiadomo, nie jest on zbyt breadboard/dev-friendly, ani go wtykać w płytkę stykową, ani wygodnie manipulować kabelkami przy resecie czy flashowaniu. Zatem dobrze jest sobie ułatwić pracę.

W sieci widziałem wiele własnoręcznie robionych adapterów, które pozwalały przejść na nieco większy rozstaw między rzędami pinów, albo ułatwiały zapakowanie modułu na płytkę stykową w inne kreatywne sposoby. Wszystko po to, aby docelowo łatwo można było eksperymentować z modułem. Od prostych adapterów z gniazdem i goldpinami, po wymianę oryginalnych pinów, czy ich wyginanie i inne manipulacje. Każdy sposób ma jakieś zalety i wady, niektóre tricki w ogóle mi się nie podobają, a inne są trochę mało praktyczne w różnych sytuacjach. Poniżej kilka propozycji realizacji (linki na zdjęciach prowadzą do materiałów źródłowych).

Jeśli dla kogoś bardziej przemawiają ruchome obrazy od tych statycznych, to na jednym filmie youtubera-elektronika GreatScotta o ESP8266 można trafić na takową instrukcję:

Przez myśl mi przeszła nawet chęć zrobienia takiej prostej przejściówki, ale jednak odpuściłem. Po prostych testach na module ESP-01 planowałem przejść na posiadaną wersję 07 lub 12, oczywiście po uprzednim przylutowaniu ich do posiadanych standardowych płytek adaptacyjnych. W związku z tym, że z braku czasu, jakoś to niestety mi nie wyszło, więc póki co, przy najbliższych testach, pozostanę wciąż z ESP-01.

Myślę sobie, że takie proste adapterki mogą być przydatne również w innych okolicznościach, z innymi modułami lub elementami, gdy będę chciał kiedyś połączyć coś z pododbnymi wyprowadzeniami na stykówce. Dlatego może jednak skuszę się na ich konstrukcję, albo znajdę coś taniego u Chińczyków. Bo widzę, że takie adaptery można bez problemu nabyć, rynek znalazł niszę. Niestety czasami takie proste rzeczy walą niezłą ceną po oczach, za która można byłoby zbudować kilka egzemplarzy. To w sumie taki dziwny paradoks, niektóre elementy, moduły są takie tanie u Chińczyków, tańsze niż same części składowe zakupione w Polsce czy nawet w Chinach (w małych ilościach), a z drugiej na innych dużo prostszych i trywialnych rzeczach podbijają cenę w górę...

Niezalenie od sposobu podłączenia do płytki, czy użytej wersji modułu, dobrym pomysłem przynajmniej na czas zabaw jest przygotowanie sobie małej płytki developerskiej. W najprostszej wersji wystarczy, aby zawierała 2 przyciski umożliwiacie szybkie zresetowanie układu i zmianę sposobu bootowania układu, aby przejść w tryb flashowania. Tak jak na poniższym schemacie:

esp-dev-schematic

Dodałem wszystkie rezystory podciągające, bo nie jestem w tej chwili pewien jak to wygląda w danym module i samym układzie. Sprawa do zbadania, bo jestem pewny, że niektóre są zbędne i można je spokojnie wywalić.

esp-dev-breadboard

Taka prosta płytka jest dla mnie wystarczająca, co prawda, powstało kilka prawdziwych płytek developerskich, takich z prawdziwego zdarzenia. Najbardziej popularna jest chyba płytka twórców firmware-u NodemMCU. Sam się zastanawiam, czy takiej sobie nie sprawić, ale chyba się powstrzymam. Na razie nie planuję jakiś szeroko zakrojonych projektów na ESP...

Prócz NodeMCU jest jeszcze kilka innych komercyjnych produkcji, z tych najbardziej znanych to Adafruit HUZZAH, WeMos D1 mini i NoName-owa Yellow Board, dostępna na chińskich portalach. A to tylko część, bo jak grzyby po deszczu oprócz nowych modułów pojawiają się również nowe płytki developerskie oraz ich różne klony...

Większość z nich posiada konwerter USB-UART, więc można bezpośredni podepnąć się pod USB. A przez wymóg zasilania 3,3V zawierają nierzadko własny stabilizator i konwerter poziomów logicznych, dzięku czemu bez problemu mogą pracować na typowych TTL-owych napięciach. Standardowo, im więcej wyjść na goldpinach, tym więcej da się podpiąć i więcej poeksperymentować. Tutaj również widoczna jest często tendencja do wyprowadzania prawie wszystkich końcówek układu ESP8266 na płytkę.

Jakoś nigdy nie przepadałem za takimi wielkimi tworami. Na pewno pomagają poczatkującym w szybkiej nauce, poznawaniu platformy i eksperymentowaniu, ale zawsze lepiej dla mnie było zestawianie niezbędnej konfiguracji samemu. Nie twierdzę, że są niepotrzebne, sam kilka posiadam (AVR, jakieś mini-ARM-y na ST?, mini Cypress), nie ze wszystkich korzystałem, ale czasem są dobrym poligonem testowym. Zamiast wielkich kobył, wolałbym te małe z minimalnym zestawem połączeń (zasilanie, kwarce etc) niezbędnych do poprawnego działania układu. Temat płytek testowych jest dobry na inną okazję.

Wracając do deweloperki na modułach ESP, niektórzy sami rzeźbią własne projekty płytek testowo-rozwojowych, w większości są to proste konstrukcje, zbliżone (konstrukcyjno-funkcjonalnie) do tej mojej przedstawionej wyżej.

Jedną z ciekawych konstrukcji jest płytka stworzona przez Baoshi, pomysłowym rozwiązaniem jest wykorzystanie prostego układu RC, dzięki czemu reset i flash można obsługiwać za pomocą jednego przycisku. Patrz poniższy schemat:

esp-baoshi-hack

Dokładny opis działania i szczegóły całej konstrukcji płytki na blogu autora, a dodatkowe materiały źródłowe na githubie. Ah i można ją jeszcze kupić na tindie.

Ten trick z jednym przyciskiem jest powielany w różnych innych konstrukcjach, widziałem go w płytkach al1-a na hackaday-u do ESP-01 i ESP-07/12.

Powyżej kilka propozycji ciekawszych konstrukcji amatorskich na mini płytki developerskie.

Bardzo zbliżony projekt do mojej konstrukcji opracował Hieromon szczegóły na jego githubie.

Niektóre konwertery UART-RS232-USB, szczególnie te oparte na chipsetach FTDI mają wyprowadzony prawie cały interfejs, w tym linie sterujące RTS i DTR. A dzięki tym liniom można osiągnąć auto-reset i przełączenie w tryb ładowania firmware-u przez UART, czyli wprowadzić moduł ESP w tryb flashowania. Wtedy nie trzeba bawić się w ręczne ekscesy z rebootowaniem. Zalecane połączenie to RTS-RST (CH_PD jest czasem używany zamiennie) i DTR-GPIO0. Mój konwerter oparty na PL2303HX nie posiada innych wyprowadzeń interfejsu RS232 prócz TX, RX, więc nie mogę przetestować takiej funkcjonalności.

W konstrukcjach amatorskich, granica między prostą przejściówką i adapterem, a prostą płytką developersko-testową jest bardzo płynna. Powstało wiele różnych konstrukcji, dla wielu różnych wersji modułów, więc jest w czym wybierać. A jak się nie podobają istniejące rozwiązania to zawsze można coś samemu zbudować :)

Wkrótce spojrzę okiem na inne dostępne oprogramowanie dla ESP8266. Na przykładzie prostej aplikacji może uda mi się nieco poznać pracę z kodem dla tego modułu, oczywiście w różnych odmianach językowych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *