Skocz do zawartości

ESP32 S3 7cali 800x480 LVGL demo PlatformIO VSCODE


virtualny

Pomocna odpowiedź

(edytowany)
9 godzin temu, _LM_ napisał:

Jego strata 😄

Strata (czasu) wynika tylko z mojej kiepskiej znajomości C++ a nie samego frameworku 😛wbrew pozorom uważam, że istnienie managera paczek dla Arduino rozwiązuje wiele problemów, oczywiście tworząc nowe gdy brak informacji w projektach na githubie o wersjach które są ze sobą kompatybilne 😛 I potem człowiek bierze taki projekt, gdzie boardy poszły do przodu a biblioteki stoją i zastanawia się czemu gotowiec nie działa 😛 

 

Ale do przodu, już coś swojego wyrzeźbiłem, także dzięki wszystkim za podpowiedzi 😉 

Edytowano przez rade
Link do komentarza
Share on other sites

Dnia 6.11.2024 o 10:57, rade napisał:

Cześć,

 

Próbowałem to skompilować bo też kupiłem ten wyświetlacz ale biorąc kod żywcem z githuba kompilacja wywala się na linijkach:

  ledcSetup(0, 300, 8);
  ledcAttachPin(TFT_BL, 0);

 

Spróbował byś to zbudować u siebie?

Witam, nie było mnie kilka dni... Co mogę dodać to:

Nie jestem ani znawcą C/C++, ani środowiska więc nie mogę się udzielać jako znawca tematu. Dlatego poprosiłem Proteusa, żeby przyjrzał się temu przykładowi.

Projekt skompilował się bez najmniejszego zacięcia, aby mieć pewność że używa najnowszej wersji odinstalował wersję 6.4.0 i pobrał najnowszą 6.9.0. Pomimo tego można używać starsze wersje w pliku konfiguracyjnym PlatformIO.ini

[env:esp32s3dev]

platform = espressif32@6.4.0

board = esp32-s3-devkitc-1

framework = arduino

monitor_speed = 115200

monitor_raw = yes

build_flags = -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue ;-DU8G2_FONT_SUPPORT

board_build.arduino.memory_type = qio_opi

board_build.f_flash = 80000000L

board_build.flash_mode = qio

board_upload.flash_size = 16MB

board_build.partitions= default_16mb.csv

 

 w linii:

platform = espressif32@6.4.0

 

Wybiera się wersję platformy pakietu dla ESP32

 

Pomimo tego kompilował to na takich wersjach pakietu dla ESP32:

thumbnail_image.thumb.png.690952e8ca4c5794fd8ef8528442f75d.png

 

I za każdym razem kompilacja była bezbłędna i wyprodukowany bin po zuploadowaniu działał prawidłowo.

 

Dla wersji pakietu ESP32 6.9.0 core Arduino jest w wersji 2.x

Problem może powstać dla wersji Arduino core 3.x , która jeszcze w żadnych pakietach PlatformIO nie została zintegrowana i nie jest oficjalnie w PlatformIO obsługiwana. Czyli instalacja i dostosowanie środowiska jest po stronie użytkownika i najprawdopodobniej musiałeś "ręcznie" instalować core 3.x

Samo działanie tego niezintegrowanego core'a tak sypało warnami i błędami, że po prostu natychmiast odechciało się go używać, tylko poczekać na oficjalne wersje zintegrowanych core'ów z PlatformIO zamiast wyważać otwarte drzwi.

 

Pewnym rozwiązaniem byłoby używanie core'ów wspieranych przez PlatformIO czyli wersji 2.x

Także same ArduinoIDE wprowadza wiele złych nawyków na przykład w ArduinoIDE można wywoływać zewnętrzne funkcje bez "externa", bo w tle externa robi Arduino. Dopiero przy portowaniu projektów z ArduinoIDE do innego środowiska jest wielkie zdziwienie i dochodzenie "Czemu to nie działa?".

 

Na marginesie dodam że zdarzył się człowiek, który do tego projektu założył issue, że nie działa mu na tym ESP32 odtwarzacz mp3!!! A ja zamiast napisać za niego odtwarzacz mp3, udostępnić kod i pokazać że jednak "działa", najzwyczajniej zamknąłem issue odpisując że w tym projekcie odtwarzacz mp3 NIE ISTNIEJE, wobec czego ma prawo nie działać.

 

 

 

 

 

 

 

 

 

  • Lubię! 1
Link do komentarza
Share on other sites

Swoją drogą, jutro owczym pędem ze względu na promkę 11/11 mam zamiar zamówić te moduły ciekawe jak mi z tym pójdzie pod IDF

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dnia 10.11.2024 o 13:50, _LM_ napisał:

Swoją drogą, jutro owczym pędem ze względu na promkę 11/11 mam zamiar zamówić te moduły ciekawe jak mi z tym pójdzie pod IDF

"Będzie pan zadowolony" 🙂

Link do komentarza
Share on other sites

Ja dobiłem do pierwszej ściany: umiem sobie dodać swoją wizualizację, no to teraz chciałem to spiąć ze źródłem danych - Supla MQTT, no i dodanie obsługi wifi i MQTT spoko, ale jak potem chce uruchomić LVGLa to juz staje z poniższym błędem. Jak zrobię najpierw inicjalizację LVGLa a potem Wifi i MQTT to sypie się na połączeniu z Wifi, co ciekawe sprawdzałem HEAP to jest jeszcze 250KB wolne, ale gdzieś coś się gryzie, także szukam dalej...

 


  disp_draw_buf = (lv_color_t *)heap_caps_malloc(sizeof(lv_color_t) * screenWidth *screenHeight/4  , MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT);

  if (!disp_draw_buf)
  {
    Serial.println("LVGL disp_draw_buf allocate failed!");
  }

 

Link do komentarza
Share on other sites

@rade przyszedł 7" jak i kwadrat 4" fajne tft, no i zaczyna się taniec pingwina bo mi się us.....ło że będzie to działać z LVGL 9.2 ma ktoś "pożyczyć" porta do tej wersji? IDF 5.3

Edytowano przez _LM_
Link do komentarza
Share on other sites

10 godzin temu, _LM_ napisał:

@rade przyszedł 7" jak i kwadrat 4" fajne tft, no i zaczyna się taniec pingwina bo mi się us.....ło że będzie to działać z LVGL 9.2 ma ktoś "pożyczyć" porta do tej wersji? IDF 5.3

nie próbowałem nawet z 9.2 bo był cyrk od samego początku żeby zrobić taką kombinację wszystkiego, żeby się skompilowało. 

Mam na 8.3 jak byś chciał tylko musiałbym trochę poczyścić z secretów które mam zahardcodowane.

Link do komentarza
Share on other sites

@rade jak tam daleko jesteś z tym wyświetlaczem? U mnie "kwadrat" jednak musi być na bibliotece v8 bo niema czasu na zabawy z portowaniem. Ogólnie wrażenia z używania tego TFT są pozytywne, jednak aby dojść do akceptowalnej wydajności(teraz max 33FPS i 60...70% czasu CPU wg licznika lvgl) musiałem przerzucić task LVGL na drugi rdzeń esp.

  xTaskCreatePinnedToCore(lvgl_main_task,"LVGL TASK",4096 * 8,NULL,23,&mainUiTask,1);

Przy okazji nie szczędząc pamięci i dokładając wysoki priorytet dla tego zadania. W efekcie system zaczął działać stabilnie, błędy jeśli są - to wynik mojej niekompetencji i wciąż jeszcze nikłego doświadczenia z RTOS

  • Pomogłeś! 1
Link do komentarza
Share on other sites

21 godzin temu, _LM_ napisał:

@rade jak tam daleko jesteś z tym wyświetlaczem? U mnie "kwadrat" jednak musi być na bibliotece v8 bo niema czasu na zabawy z portowaniem. Ogólnie wrażenia z używania tego TFT są pozytywne, jednak aby dojść do akceptowalnej wydajności(teraz max 33FPS i 60...70% czasu CPU wg licznika lvgl) musiałem przerzucić task LVGL na drugi rdzeń esp.

  xTaskCreatePinnedToCore(lvgl_main_task,"LVGL TASK",4096 * 8,NULL,23,&mainUiTask,1);

Przy okazji nie szczędząc pamięci i dokładając wysoki priorytet dla tego zadania. W efekcie system zaczął działać stabilnie, błędy jeśli są - to wynik mojej niekompetencji i wciąż jeszcze nikłego doświadczenia z RTOS

https://github.com/rkalwak/SuplaLvgl

Aktualnie kombinuje jak zrobić od zera kilka ekranów. Ale generalnie to co chciałem mniej więcej mam. 

Wyświetlam dane z Supli po MQTT i mogę sterować kilkoma lampami i bramami. 

Po za tym ciągnę pogodę z OpenMeteo bo OpenWeatherMap zmieniło warunki korzystania, i wyświetlam sobie już jakiś wykres.

Do tej pory żadnych akrobacji nie musiałem robić odkąd poprawnie ustawiłem PSRAM. ale nie zwracam też bardzo uwagi na FPSy bo nie mam takiej potrzeby

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.