HomeMade

Pełna wersja: Procesory ESP8266 oraz ESP32
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Szukając alternatywy dla coraz trudniej dostępnych i drogich chip-ów Atmel-a (obecnie Microchip) napotkałem procesory firmy Espressif Systems: ESP8266 oraz ESP32, które kosztują od kilkunastu do kilkudziesięciu PLN (w wersji z kamerą). Oba procesory są przedstawicielami grupy urządzeń IoT (internet of thing) głównie przez łatwość kontaktu (WiFi, BT) oraz dużą ilość portów.

İmage İmage
İmage İmage

Na zdjęciach pokazałem wersje rozwojowe obu układów o rozmiarach ok. 2x4cm.
Poniżej zamieszczam specyfikację obu procesorów. W wersjach rozwojowych, poza procesorem, na płytce znajdują się też port USB oraz stabilizatory zasilania.

İmage

W wersjach rozwojowych układy są bardzo łatwo programowalne za pomocą portu USB choć istnieją wersje minimalistyczne, niewiele większe niż sam procesor, do których za kilkanaście PLN można dokupić skuteczny programator USB. Językiem programowania układów jest dość egzotyczny język Lua ale w powszechnymm użyciu programuje się je za pomocą Arduino C oraz pythona. W tym ostatnim przypadku został opracowany tzw. upython, interpreter pythona właśnie dla tych układów.

I właśnie możliwość programowania za pomocą python-a jest dla mnie największą zaletą obu układów bo wymaga niewielkiego darmowego środowiska programistycznego co przy możliwościach obu układów daje szerokie pole do eksperymentów. Dodatkowo, istnieje bogata baza bibliotek do obsługi pod kontrolą upython-a urządzeń zewnętrznych od wyświetlaczy, przez czujniki i sensory po silniki krokowe i generatory.

Jak zacząć programować w upython-ie opisuje podany link dla esp32: oraz dla esp8266

W tych linkach można zapoznać się z gotowymi zastosowaniami obu chip-ów
opisy dla esp8266
opisy dla esp32

Jako przykład użycia układu ESP32 proponuję zajrzeć do mojego opisu sterownika kondensatora anteny magnetycznej. W programie użyłem gotowych bibliotek do obsługi enkodera oraz wyświetlacza ST7735S

L.J.
Leszku a może opiszesz swoje doświadczenia z mikroPhytona. Szukam alternatywy dla Bascoma
Ja się niedawno już prawie witałem z gąską ale wyczytałem ze przetwornik AD w ESP choć ma więcej bitów to jest tak zły że sumarycznie wychodzi gorzej od tego w Atmegach, do tego ma brakujące kody i ciężko z niego coś sensownego uzyskać nawet uśredniając sample.. Do jakiś rzeczy typu pomiar napięcia z mostka SWR może się nada....
Choć projekt Arduino jest niekwestionowanym królem popularności w kręgach amatorów, to każdy widzi, że król jest nagi bo nie ma podstawowej funkcjonalności niezbędnej w procesie pisania i uruchamiania programu czyli pracy krokowej. Co prawda ma możliwość podglądania przez monitor łącza szeregowego ale to nie załatwia sprawy. Ja też zacząłem rozglądać się za innym środowiskiem a ponieważ kilka moich ostatnich eksperymentów opartych było o ESP32 nie ukrywam, że jestem zainteresowany. Dobrze Leszku, będzie nas już dwóch, może jeszcze ktoś się przyłączy. Dodatkowo wyczytałem, że fundacja Raspberry wspiera ten projekt i ich RP2040 ma potencjał do wykorzystania w naszych zabawkach to czemu nie?
Kopiąc głębiej trafiłem na środowisko Thonny w zamyśle ułatwiające tworzenie i testowanie programów napisanych w uPy. Póki co jeszcze go nie ćwiczę i zapewne w pierwszym kroku na tapetę pójdzie jakiś projekt klucza do CW.
W ramach konkursu MAS w tym roku wykonaliśmy klucz CW na ESP32. Wszystkie możliwe funkcje do obsługi TRx CW, ale prędkość zmieniana potencjometrem. Ciekawostka to czas podtrzymania nadajnika zależna od prędkości nadawania by zmniejszyć gałkologię i nie wprowadzać dodatkowych ustawień... w wersji rozwojowej będą bloki pamięci do wgrania z telefonu. Projektem keyera - oprogramowaniem zajmował się Mateusz SP9MX. Jest opis w Świat Radio 09-10/2023.
RP2040 zawiera procesor PIO (po jednym na rdzeń), który pozwala sterować wyjściami nawet z prędkością zegara systemowego.
Dość łatwo można uzyskać przebieg sinusoidalny 3.5-3.8 MHz za pomocą 8-bitowej drabinki R/2R:
[attachment=18401]
Na zdjęciu niekoniecznie jest sinusoidaConfused. Do znalezienia błąd w przetworniku lub w programie.

Program napisałem w Pythonie (Thonny). Opracowanie danych dla generatora zajmuje kilka sekund.
Dla każdej częstotliwości potrzebne są osobne obliczenia, więc do zastosowań w Rx/Tx należałoby sięgnąć po C/C++.
Ze wstępnych obliczeń wynika, że da się uzyskać raster kilku herców, ale nie są to stałe kroki.
Znaczne zwiększenie generowanej częstotliwości, zwiększenie ilości bitów ponad 8, zmiana na generator I/Q powoduje wystąpienie problemów z wydajnością DMA. Możliwe, że problemy te da się przynajmniej częściowo rozwiązać.

Wykorzystując jeden rdzeń do sterowania, drugi do filtrów być może dałoby się zrobić TRX-a na 80m z minimalną liczą elementów.
Poprawiłem przetwornik drabinkowy R/2R:
[attachment=18406]

Generator zabiera ponad 100kB RAMu i 100% wydajności DMA.
Przekierowanie