UI на ESP32 своими руками при помощи LVGL
ฝัง
- เผยแพร่เมื่อ 21 พ.ย. 2023
- kirill.ivanychev.tilda.ws
Помогу создать прототип электронного устройства как Разработчик или Консультант
🔥 В ЭТОМ ВИДЕО я покажу как быстро создать UI для вашего проекта на чипах ESP32 используя заготовку проекта на базе LVGL версии 7.11.
ТАЙМ КОДЫ
-------------------------------------
0:06 Вспоминаем про SquareLine Studio
1:05 Состав экрана моего проекта
1:45 Где взять демо-проект lv_port_esp32
3:17 Настраиваю свой проект на работу с LVGL
5:16 Создаю базу кода LVGL в моем проекте
8:17 Создаю виджеты. Описание LVGL
11:41 Привязываю UI к светодиоду
12:30 Тест
🔀 LINKS
-------------------------------------
Демо-проект на GitHub:
github.com/lvgl/lv_port_esp32
Описание виджетов на сайте LVGL:
docs.lvgl.io/7.11/
🔀 ЧЕМ МОГУ ПОМОЧЬ
-------------------------------------
Создать прототип умного устройства: kirill.ivanychev.tilda.ws
Помогу быстро въехать в разработку на ESP32: kirill.ivanychev.tilda.ws/coac...
kirill.ivanychev.tilda.ws
🤝 ПОДДЕРЖИ МОЙ ПРОЕКТ
-------------------------------------
donate.stream/ot_idei_do_zheleza
#arduino #отидеидожелеза #easyeda #ESP32
Спасибо! надеюсь будет продолжение с более сложным примером и при помощи SquareLine Studio
Канал изобилует темой ESP32.
Пожалуй подпишусь)
Вэлкам :-)
Неожиданно 😂. Тулчейн в виндус 🤣
Да, неожиданно:-)
Пожалуйста, шушуть добавьте задержку к звуковой дорожке, рассинхрон с картинкой ломает мозг, а тема-то крайне интересная, оторваться не могу!
Увы, уже низя
Здравствуйте! Скажите пожалуйста, можно ли управлять esp32 через яндекс колонку по протоколу zigbee
Да, можно.
Esp32-h2 и ESP32-C6 разработаны для этой цели.
@@kirill-ivanychev спасибо большое за ответ!
советую GUI-Guider от NXP как редактор UI и генератор кода LVGL
Он может генерировать код для ESP32?
@@kirill-ivanychev без разницы какой камень, он генерирует несколько фалов с UI и калбеками действий. Копируешь в свой проект просто
вот это я понимаю контент, а не все эти ваши Ардуино))
Спасибо:-)
Я завел LVGL на esp32-s3 с дисплеем, у которого разрешение 800х480. Итог - 4 fps (((
Сейчас в поисках SoC, на котором LVGL заведется без тормозов и без linux
Вы можете попробовать экран с параллельным интерфейсом, у которого скорость обмена в 8-10 раз выше чем у SPI.
SPI экраны на такое разрешение используют, если нужно получить более дешёвый вариант системы и требования к быстродействию системы не высоки
@@kirill-ivanychev экран с параллельным интерфейсом.
Я разместил график на весь экран, который постоянно обновлялся, поэтому LVGL перерисовывал весь фреймбуфер целиком.
Фреймбуфер лежал во внешней RAM и перекачивался в дисплей через DMA.
Как вариант можно попробовать параллельную отрисовку и закачку фреймбуфера в дисплей. Для этого потребуется буфер-качели. Но что-то мне подсказывает, что оно того не стоит, производительность особо не вырастет.
Я уже все пересмотрел на ютубе по lvgl, везде тормоза, и единственная baremetal железка, которая тянет эту библиотеку - это плата на allwinner v3s. На одном канале пользователь завел на ней freertos + lvgl. На этой же плате запускают linux + lvgl, но производительность графики при этом падает.
Такие дела.
У всех stm есть параллельный интерфейс и экранов под него полно, скорость передачи ограничена экранами, но она там все равно большая, ибо параллельно 16 бит. У esp32s3 тоже есть параллельный интерфейс но в ее случае почти все ножки на него уйдут. Еще лучше в плане графики это RGB интерфейс по ножкам тоже самое теже же 16 бит, но изображение хранится в самом МК что дает больше возможностей в плане слоев, прозрачности но памяти оперативной нужно много …. А для spi хорошо только 320х240, уже 320х480 кадров 8 дает всего. Если кнопки еще куда не шло, а вот графики такое себе
@@gt540gfxя все это знаю и работал с разными дисплейными интерфейсами, вплоть до LVDS, MIPI, и eDP. SPI, I2С я даже никогда не рассматривал. На таких камнях, как ESP, при работе с большим разрешением и сложной графикой максимум что можно сделать - это перекачивать готовые картинки на экран. Так работают дисплеи DWIN, например. Ну а для того, чтобы отрисовывать графику программно с LVGL нужен мощный камень. Я закономерно получил 4 fps esp32-s3 на дисплее с разрешением 800х480. На stm32f103 я работал с монохромным дисплеем 160х128. Та же беда, главный тормоз - это заполнение фреймбуфера, отрисовка в нем шрифтов и графических примитивов.
В итоге я пришел к выводу, что плавную красивую графику на дохлом железе не отрисуешь. Если нет GPU, всегда упираешься в герцы. Устройства, с плавным качественным GUI сделаны в основном на Android на соответствующем железе.
@@kirill-ivanychev вот взял себе ESP32S3 с 800*480 дисплеем, интерфейс парраллельный, пример от ESP запустил, дико лагает, на СТМ32 гораздо лучше работает, либо пример кривой, хотя там по сути только настройка интерфейса и описание 2х функция работы с экраном, либо есп для UI такое себе
Это фронтенд?
Можно и так назвать