logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak programować moduł ESP32 C3 Mini TV LCD 1.44inch ST7735? Tutorial PlatformIO

p.kaczmarek2 05 Gru 2024 10:36 6459 8

TL;DR

  • Moduł ESP32-C3 Mini TV LCD 1,44-calowy ST7735 został uruchomiony w PlatformIO z wyświetlaczem 128x128, animacją, OTA i testami prędkości SPI.
  • Do obsługi użyto biblioteki Adafruit ST7735/ST7789 oraz Adafruit GFX, a ekran skonfigurowano najpierw przez programowe SPI, potem sprzętowe SPI.
  • Stare esptool.py 3.0.2 nie rozpoznało płytki, ale esptool-v4.8.1 bez problemu zgrał pełny wsad z 16MB pamięci flash.
  • Sprzętowe SPI przyśpieszyło fillScreen z 16 014 ms do 470 ms, czyli ponad 30 razy względem wersji programowej.
  • Płytka ma też dwa dodatkowe przyciski na IO8 i IO10 oraz zasilanie Li-Ion, ale czas pracy na baterii nie został przetestowany.
Wygenerowane przez model językowy.
REKLAMA
📢 Słuchaj (AI):
  • Moduł ESP32 C3 z kolorowym wyświetlaczem LCD w formie breloczka.
    Ten niepozorny moduł opiera się o ESP32 C3 i oferuje 1.44-calowy, kolorowy wyświetlacz o rozdzielczości 128x128, sterowany przez protokół SPI. Tutaj pokażę, jak łatwo można zacząć z nim przygodę, jak można wgrywać mu wsad zdalnie (przez WiFi), jak wyświetlić prostą animację oraz porównam szybkość wyświetlania pomiędzy programowym i sprzętowym SPI. Dodatkowo sprawdzę, czy starszy esptool poradzi sobie z ESP32-C3...

    Produkt występuje często pod hasłem "ESP32 C3 Desktop Trinket Mini TV Portable Pendant LVGL 1.44inch LCD ST7735" i można go kupić za około 40 zł. Całość po zakupie dostałem w takim pudełeczku, odpowiednio zabezpieczone:
    Pudełko z etykietą modułu ESP32 C3 z wyświetlaczem Małe brązowe pudełko z etykietą i kodem CE.
    W zestawie jest też prosta obudowa oparta o dystanse oraz breloczek:
    Zestaw z modułem ESP32-C3 oraz akcesoria w opakowaniu.
    Załączona naklejka (czemu naklejka?) z kodem QR odsyła nas informacji od sprzedawcy.
    Ulotka z informacjami kontaktowymi i kodami QR od firmy Spotpear
    I oto sam moduł:
    Zbliżenie na płytkę PCB z komponentami elektronicznymi, w tym gniazdem micro USB, układami scalonymi i złączami I/O. Moduł wyświetlacza LCD na drewnianym stole. Zdjęcie zielonej płytki drukowanej z układem ESP32-C3 i chipem Winbond. Zbliżenie na płytkę drukowaną z mikrokontrolerem ESP32-C3 i chipem Winbond.
    Oprócz klasycznych przycisków BOOT (tryb bootloadera) i RESET mamy tutaj też dwa dodatkowe przyciski na IO8 i IO10, jak również mamy pady od kilku wyprowadzonych pinów.
    Widać tu pamięć 25Q128JVSG (całe 16MB) oraz oczywiście ESP32-C3. Jest też złącze 1.27mm do podłączania ogniwa Li-Ion i złącze micro USB.
    Informacje od sprzedawcy prowadzą do krótkiego samouczka/dokumentacji na stronie:
    https://spotpear.com/wiki/ESP32-C3-desktop-tr...ortable-Pendant-LVGL-1.44inch-LCD-ST7735.html
    Schemat:
    Schemat modułu z ESP32 C3 z wyświetlaczem ST7735
    Obsługą baterii Li-Ion zajmuje się tutaj PL4054. 3.3V (z 5V z USB) zapewnia CAT6219. Pamięć Flash to, jak wspomniałem, W25Q128, a wyświetlacz... wiadomo

    Program demonstracyjny
    Program demonstracyjny jest fabrycznie wgrany na płytkę i wyświetla obraz od razu po podaniu zasilania:
    Moduł wyświetlający instrukcje konfiguracji WLAN na małym ekranie.
    Nie znalazłem w sieci angielskojęzycznej instrukcji do jego obsługi, ale zasadniczo wymaga on tylko utworzenia na naszym telefonie punktu dostępu WiFi o danych:
    
    spotpear
    12345678
    

    Następnie podłącza się do niego, a potem przez połączenie internetowe naszego telefonu pobiera informacje pogodowe dla naszej lokalizacji:
    Moduł ESP32 C3 z wyświetlaczem i telefonem skonfigurowanym jako hotspot Wi-Fi Moduł ESP32-C3 z wyświetlaczem obok smartfona skonfigurowanego jako hotspot WiFi. Moduł ESP32-C3 z wyświetlaczem oraz smartfon z ustawieniami hotspotu Wi-Fi.
    Na górnym pasku kolejno wyświetlane są pobrane dane.
    Wyświetlacz ESP32 C3 pokazujący dane pogodowe obok smartfona z ustawieniami hotspotu. Moduł ESP32 C3 z kolorowym wyświetlaczem obok telefonu. Miniaturowy wyświetlacz ESP32-C3 z modułem pogody obok telefonu.
    Źródło programu można pobrać na Githubie:
    https://github.com/Spotpear/ESP32C3_1.44inch

    Kopia flashu i błąd Unexpected CHIP magic value 0x1b31506f
    Na początek zacząłem od wykonania kopii oryginalnego fabrycznego programu i już wtedy natrafiłem na problem. Użyłem mojego sprawdzonego esptool.py, co się zainstalowało kiedyś razem z wsparciem ESP dla Arduino:
    
    esptool.py read_flash 0 0x1000000 ESP32-C3-Desktop-Trinket-Mini-TV-Portable-Pendant-LVGL-1.44inch-LCD-ST7735.bin
    pause
    

    Ten esptool jednak nie rozpoznaje tej płytki:
    Zrzut ekranu z komunikatem błędu esptool.py
    To dlatego, że jest on w wersji 3.0.2, o czym świadczy sama ścieżka:
    
    esp8266\hardware\esp8266\3.0.2\tools\esptool
    

    Dlatego lepiej jest pobrać najnowszy esptool z Githuba - można już w postaci exe:
    https://github.com/espressif/esptool/releases
    Nowszy esptool-v4.8.1-win64.zip bez problemu dał radę zgrać wsad
    Zrzut ekranu z terminala podczas pracy z narzędziem esptool.
    
    esptool.exe read_flash 0 0x1000000 ESP32-C3-Desktop-Trinket-Mini-TV-Portable-Pendant-LVGL-1.44inch-LCD-ST7735.bin
    pause
    

    Kopię umieściłem tutaj:
    https://github.com/openshwprojects/FlashDumps/tree/main/IoT/ESP32


    Najprostszy program w PlatformIO
    Niektórzy programują jeszcze w Arduino IDE, ale mi łatwiej jest w PlatformIO. Środowisko te stanowi dodatek do darmowego Visual Code, co szerzej opisywałem już wcześniej w tematach:
    Jak programować płytkę Wemos D1 (ESP8266) w kształcie Arduino? ArduinoOTA w PlatformIO
    Zegar na ESP12 i wyświetlaczu MAX7219 - tutorial - część 1, ArduinoOTA, podstawy
    Utworzyłem nowy projekt. Nie znalazłem w płytkach tej konkretnej z tematu, więc użyłem innej z ESP32-C3.
    Okno kreatora PlatformIO do tworzenia nowego projektu dla Adafruit QT Py ESP32-C3.
    Na początek uruchomiłem sam UART, bez wyświetlacza.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Mój platformio.ini
    
    [env:adafruit_qtpy_esp32c3]
    platform = espressif32
    board = adafruit_qtpy_esp32c3
    framework = arduino
    
    

    Jedno wywołanie "Upload and Monitor" później wszystko zaczęło działać zgodnie z oczekiwaniami:
    Zrzut ekranu z terminala pokazujący komunikaty o weryfikacji danych i informacje o przesyłaniu danych.


    Uruchamiamy wyświetlacz w PlatformIO
    Ok, ale nie kupiliśmy tej płytki by nie korzystać z jej wyświetlacza. Trzeba go uruchomić.
    Potrzebne będą do tego dwie biblioteki:
    - adafruit/Adafruit ST7735 and ST7789 Library
    - adafruit/Adafruit GFX Library
    Można je dodać przez GUI PlatformIO:
    Zrzut ekranu interfejsu PlatformIO z zakładką Biblioteki i zaznaczoną ikoną menu po lewej stronie.
    ... albo po prostu dopisać do naszego platformio.ini i PIO samo je pobierze:
    
    [env:adafruit_qtpy_esp32c3]
    platform = espressif32
    board = adafruit_qtpy_esp32c3
    framework = arduino
    lib_deps =
        adafruit/Adafruit ST7735 and ST7789 Library
        adafruit/Adafruit GFX Library
    
    

    Potem możemy uruchomić Hello World ST7735. Tu ważne jest odpowiednie ustawienie indeksów pinów, gdyż mogą się one różnić między modułami:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Mamy tu kolejno:
    - Adafruit_ST7735(int8_t cs, int8_t dc, int8_t mosi, int8_t sclk, int8_t rst) - uruchamia wyświetlacz w trybie programowego SPI (bit-bang)
    - tft.initR(INITR_BLACKTAB) - inicjalizuje wyświetlacz z odpowiednią konfiguracją dla ST7735
    - tft.fillScreen(color) - wypełnia cały ekran określonym kolorem
    - tft.setCursor(x, y) - ustawia pozycję kursora
    - tft.setTextColor(color) - ustawia kolor tekstu
    - tft.setTextSize(size) - ustawia rozmiar tekstu
    - tft.print(text) - wyświetla tekst w obecnym miejscu kursora
    Rezultat:
    Mały wyświetlacz LCD podłączony do modułu ESP32-C3 z tekstem hello world.

    Animacja i technika częściowego czyszczenia ekranu
    Statyczny tekst to nie wszystko - tu można robić dość płynne animacje. Oczywiście wymaga to odpowiednich zabiegów optymalizacyjnych, a jednym z nich jest rysowanie na ekranie tylko tego, co uległo zmianie.
    Przykładowo, gdy chcemy narysować prosty zegar, to zamiast z każdym ruchem wskazówki odświeżać cały ekran, możemy po prostu "zamazywać" wcześniejszą wskazówkę kolorem tła a potem rysować ją na nowo:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Dużo się w kodzie nie zmieniło, zasadniczo na początku liczę tylko centrum ekranu a potem w funkcji od rysowania wskazówki też liczę jej końcówkę dla danego kąta (z trygonometrii). Punkt centrum łączę linią z obliczoną końcówką. To samo wywołuję w pętli dwa razy, raz dla "starej" wskazówki, zamalowuję ją kolorem tła, a potem dla "nowej" wskazówki - na biało.
    Rezultat:





    Aktualizacja wsadu przez sieć
    Nie zapominajmy o Arduino OTA - prezentowałem to już m. in. tutaj:
    Jak programować płytkę Wemos D1 (ESP8266) w kształcie Arduino? ArduinoOTA w PlatformIO
    Zmodyfikujmy mój projekt tak, aby dodać zdalną aktualizację. Nowe PlatformIO.ini:
    
    
    
    [env:adafruit_qtpy_esp32c3]
    platform = espressif32
    board = adafruit_qtpy_esp32c3
    framework = arduino
    lib_deps =
        adafruit/Adafruit ST7735 and ST7789 Library
        adafruit/Adafruit GFX Library
        ArduinoOTA
    
    [env:adafruit_qtpy_esp32c3_ota]
    extends = env:adafruit_qtpy_esp32c3
    upload_protocol = espota
    upload_port = 192.168.0.192
    
    

    Nowy kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Dodane ArduinoOTA.begin(); inicjuje system OTA, a z kolei równie ważne jest regularne wywołanie ArduinoOTA.handle();, które obsługuje samą aktualizacje.
    Po pierwszym wgraniu sprawdzamy IP płytki na routerze i wpisujemy je do wspomnianego już platformio.ini:
    Fragment listy klientów DHCP z wyświetlonym IP
    Teraz na pasku bocznym mamy dwie grupy zadań, uruchamiamy wgrywanie z grupy OTA:
    Zrzut ekranu interfejsu PlatformIO w Visual Studio Code z zaznaczonymi zadaniami Upload and Monitor.
    Program zostaje zaktualizowany zdalnie:
    Terminal pokazujący postęp aktualizacji oprogramowania na ESP32-C3.



    Kolory
    Na tej płytce jest nieco większy wybór kolorów niż do tej pory pokazałem. Oto zmodyfikowany kod "zegara", tak aby wskazówka zmieniała kolor w zależności od tego w której ćwiartce ekranu się znajduje:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Rezultat:




    Przyśpieszamy rysowanie
    Do tej pory pokazywałem przykłady w wersji opartej o programowe, wolne SPI. Takie SPI jest realizowane poprzez programowe "machanie" pinami, co zresztą widać w kodzie biblioteki (patrz sekcja TFT_SOFT_SPI):
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    ale dostępna jest też opcja hwspi, czyli SPI sprzętowe.
    To, jakie SPI zostanie użyte zależy od użytego konstruktora.
    W celu uruchomienia sprzętowego SPI należy wprowadzić drobną zmianę:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Reszta kodu analogicznie. Teraz pytanie, jak dużo nam to daje?
    Zróbmy w tym celu mały benchmark, test wydajności:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Powyższy kod zapisuje bieżący czas a potem wypełnia wielokrotnie ekran różnymi kolorami za pomocą funkcji fillScreen. Potem bieżący czas jest pobierany ponownie i obliczane jest ile trwał cały proces.
    Uruchomiłem go dla obu wersji i porównałem wyniki:






    Programowe SPI: 16 014ms
    Sprzętowe: 470ms
    Sprzętowe SPI jest w tym przypadku ponad 30 razy szybsze. Zdecydowanie zrobi to odczuwalną różnicę, zwłaszcza przy częstym odświeżaniu ekranu.

    Demonstracja różnych funkcji
    Ten wyświetlacz potrafi jeszcze nieco więcej, w związku z tym zdecydowałem się przerzucić na niego program "graphicstest" od Adafruit:
    https://raw.githubusercontent.com/adafruit/Ad...master/examples/graphicstest/graphicstest.ino
    Program wymagał tylko zmiany pinów i portu z konstruktora klasy Adafruit_ST7735:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Rezultat:





    Przyciski i ich obsługa
    Na koniec warto pokazać użycie przycisków na pinach IO8 i IO10. W najprostszej wersji można do ich obsługi wykorzystać pinMode i zwykłe digitalRead. Nie będę tutaj przejmować się drganiem styków, problem rozwiążę dodając blokujący delay w kodzie. W oparciu o te przyciski można zrealizować np. nawigację w menu:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Powyższy kod można by znacznie usprawnić, przede wszystkim usuwając blokujące delay, jak również też optymalizując wyświetlanie menu - zamiast rysować je całe za każdym razem od nowa, można by po prostu tylko zamalowywać strzałkę i rysować ją w nowym miejscu. Rezultat:
    Moduł ESP32 C3 z wyświetlaczem LCD o przekątnej 1.44 cala i menu na ekranie. Mały moduł z wyświetlaczem LCD z menu opcji.

    Uproszczona znacznie biblioteka obsługi ST7735 w jednym pliku/projekcie
    Tutaj bez większego komentarza, ale może komuś się przyda.
    Chciałem zapoznać się bliżej z obsługą ST7735 i przerobiłem sobie bibliotekę od Adafruit tak, aby miała raptem 600 linijek kodu i to w stylu C (bez klasy). Całość obsługuje tylko programowe SPI (bit-bang) oraz potrafi tylko rysować proste kształty, nie ma tu czcionki. Wszystko jest w jednym projekcie PlatformIO:
    Widok edytora Visual Studio Code z otwartym plikiem platformio.ini dla projektu ESP32 C3.
    Moje uproszczone demko:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Rezultat:



    Do pobrania:
    c3aSimpli..ed.rar (3.72 MB)Musisz być zalogowany, aby pobrać ten załącznik.

    Podsumowanie
    Bardzo ciekawy moduł. Można nieco projektów zrobić, a do wszystkiego są gotowe biblioteki. Wyświetlacz można wysterować zarówno sprzętowo (wydajnie), jak i programowo, choć ta druga opcja raczej tu się nie przyda. Pamięci Flash jest dużo, bo całe 16MB. Oprócz przycisków boot i reset są jeszcze wyprowadzone dwa GPIO, więc można czymś posterować już bez lutowania, a i jeśli chcemy dodatkowe peryferia, to taka opcja też jest.
    Nie testowałem natomiast zasilania z baterii i tu mam pewną wątpliwość, ile to podziała z tym wyświetlaczem na ogniwie? Nie jest on za jasny? Pobór prądu mojego przykładu z wyświetlaczem to około 70-100mA...
    Czy korzystaliście z tego modułu, jakie widzicie dla niego zastosowania?

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14556 postów o ocenie 12568, pomógł 654 razy. Jest z nami od 2014 roku.
  • REKLAMA
  • #2 21334569
    gulson
    Administrator Systemowy
    Posty: 29321
    Pomógł: 148
    Ocena: 6018
    Dzięki za test. Myślę, że takim interesującym zastosowaniem mógłby być taki przenośny "status bar" wyświetlający podstawowe dane o naszych urządzeniach czy sieci czy pochodzących z różnych czujników. Zamiast odblokowania telefonu, rzut oka na wyświetlacz i od razu wszystko wiadomo. Dodatkowo wyprowadzenie jednego przycisku pozwoliłoby wykonać jakąś akcję.
    Fajnie by było to połączyć z ChatGPT, który niejako podawałby istotne komunikaty, już przetworzone, spersonalizowane i odpowiednio krótkie.
  • REKLAMA
  • #3 21365764
    rchristescu
    Poziom 8  
    Posty: 19
    Pomógł: 2
    Ocena: 4
    Bardzo dziękuję za ten poradnik, dzięki niemu kupiłem to urządzenie i jestem z niego bardzo zadowolony.
    Mam jedną uwagę. Przy tej konfiguracji są pewne anomalie, które widzę na moim urządzeniu, a także w twoich filmach.
    - Po prawej stronie kolumna pikseli nie jest wypełniona;
    - po lewej i górnej stronie są 2 rzędy / kolumny pikseli, które nie są widoczne. Powinieneś ustawić kursor na 2,2, aby wyraźnie zobaczyć tekst. "Benchmark" jest dobrze widoczny, "hello world" nie;
    - funkcja tft.height() zwraca 160 zamiast 128. W przykładach zegar nie znajduje się na środku, ale nieco niżej.
    - Kolory to 5-6-5, ale z czerwonym na najmniej znaczących 5 bitach i niebieskim na najbardziej znaczących 5 bitach. Na przykład tft.fillScreen(ST77XX_RED) wypełni ekran kolorem niebieskim. Wskazówka zegara jest niebieska, zielona, czerwona, cyjanowa, zaczynając od pierwszego kwadrantu, zamiast czerwonej, zielonej, niebieskiej, żółtej, jak oczekiwano.
    Dobrą wiadomością jest to, że wszystko to można łatwo naprawić, używając
    tft.initR(INITR_144GREENTAB);

    zamiast
    tft.initR(INITR_BLACKTAB);
    (to dla ekranu 1,8").
  • #4 21463136
    Wulfara
    Poziom 2  
    Posty: 2
    Dziękuję bardzo za te informacje. Czy udało Ci się skompilować i sflashować oryginalny projekt? Postępowałem zgodnie z instrukcjami Spotpear i skompilowałem bez błędów i pomyślnie sflashowałem projekt, ale wszystko, co dostaję po tym, to pusty ekran i brak reakcji urządzenia. A może udało ci się przypadkiem dodać LVGL do własnego projektu PlatformIO? Próbując to zrobić, kończę z tym samym wynikiem kompilacji, ale nie działającym.
    Dziękuję.
    Pozdrawiam.
  • #5 21463205
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14556
    Pomógł: 654
    Ocena: 12568
    Nie skompilowałem jeszcze dla tej konkretnej planszy, ale pokazałem przykładowe użycie LVGL w tym temacie, który nie został jeszcze przetłumaczony, więc zamieszczam dwa linki:
    https://www.elektroda.pl/rtvforum/topic4069845.html
    https://www.elektroda.com/rtvforum/topic4069845.html
    Czy próbka PlatformIO dla tej płyty byłaby przydatna? Mogę zrobić dla ciebie taką prezentację, ale może to potrwać co najmniej kilka tygodni, zanim ją opublikuję.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #6 21463308
    Wulfara
    Poziom 2  
    Posty: 2
    Dziękuję bardzo za miłą odpowiedź.
    p.kaczmarek2 napisał:
    Czy przydałaby Ci się próbka PlatformIO dla tej tablicy? Mogę zrobić taką prezentację dla Ciebie, ale może to potrwać co najmniej kilka tygodni, zanim ją opublikuję.

    To byłoby niesamowite! Konfiguracja LVGL dla tej konkretnej płyty jest tym, czego nie udaje mi się osiągnąć lub znaleźć informacji na ten temat. Byłbym naprawdę wdzięczny, gdybyś mógł pomóc, ale czułbym się źle, zmuszając cię do tego całego wysiłku.

    Dodano po 1 [godzinie] 20 [minutach]: .

    Właśnie udało nam się sprawić, że LVGL działa na urządzeniu przy użyciu biblioteki Adafruit ST7735 i ST7789, o której wspomniałeś. Problemem była alternatywa TFT_eSPI, której Spotpear używał w swoim projekcie. Niestety, częstotliwość odświeżania w bibliotece Adafruit jest naprawdę niska dla naszego projektu. Staramy się, aby działał z TFT_eSPI, który powinien być znacznie szybszy.
  • REKLAMA
  • #7 21833469
    heldore1
    Poziom 2  
    Posty: 2
    Wulfara napisał:
    Czy udało Ci się skompilować i sflashować oryginalny projekt? Postępowałem zgodnie z instrukcjami Spotpear i skompilowałem bez błędów i pomyślnie sflashowałem projekt, ale wszystko, co dostaję po tym, to pusty ekran i brak reakcji urządzenia.

    Urzadzenie wpada w pętle i się resetuje, zerknij w serial monitor.
  • #8 21871410
    fg1998
    Poziom 1  
    Posty: 1
    Thank you very much, greetings from Brazil.
    I had been trying to get it working for a few days, but the tutorials I found didn’t work.
    Now it’s working perfectly.
  • #9 21871449
    heldore1
    Poziom 2  
    Posty: 2
    >>21871410
    I have some working programs with
    adafruit/Adafruit GFX Library @ ^1.12.4
    adafruit/Adafruit ST7735 and ST7789 Library @ ^1.11.0
    Example from manufacturer not work good.
    If You wan, check my github with working Deauth Detector

    https://github.com/HelDoRe/DeauthDetectorUni
📢 Słuchaj (AI):

Podsumowanie tematu

✨ Dyskusja dotyczy programowania modułu ESP32 C3 Mini TV LCD 1.44" z wyświetlaczem ST7735 o rozdzielczości 128x128 pikseli, sterowanym przez interfejs SPI. Użytkownicy omawiają metody wgrywania oprogramowania, w tym zdalnie przez WiFi, oraz wyświetlania prostych animacji. Zwrócono uwagę na problemy z wyświetlaniem, takie jak niewypełnione kolumny pikseli, przesunięcia tekstu wynikające z nieprawidłowego ustawienia kursora (należy ustawić na 2,2), oraz niezgodności w zwracanej wysokości ekranu (tft.height() zwraca 160 zamiast 128). Wskazano również na specyficzne odwzorowanie kolorów w formacie 5-6-5, gdzie czerwony i niebieski kanał są zamienione miejscami, co wpływa na wyświetlane barwy. Dyskutowano o wykorzystaniu bibliotek graficznych, takich jak Adafruit GFX i Adafruit ST7735/ST7789, które działają stabilnie, oraz o problemach z biblioteką TFT_eSPI używaną w oryginalnym projekcie Spotpear, która oferuje lepszą wydajność, ale sprawia trudności w konfiguracji. Pojawiły się także informacje o próbach integracji LVGL (Light and Versatile Graphics Library) z tym modułem, gdzie użytkownicy osiągnęli częściowy sukces, lecz konfiguracja wymaga dalszych prac. Wskazano na problemy z resetowaniem się urządzenia i konieczność monitorowania komunikatów w serial monitorze. Udostępniono link do działającego projektu na GitHubie wykorzystującego wspomniane biblioteki. Podsumowując, moduł jest atrakcyjny cenowo i funkcjonalny, ale wymaga precyzyjnej konfiguracji oprogramowania i dostosowania bibliotek do specyfiki wyświetlacza ST7735 oraz układu ESP32 C3.
Wygenerowane przez model językowy.
REKLAMA