LVGL (Light and Versatile Graphics Library) este o biblioteca open-source pentru interfete grafice (GUI) folosite pe dispozitivele embedded cu resurse limitate precum microcontrollerele. Are suportul necesar pentru a crea interfete grafice moderne si interactive cum gasim si pe smartphone-uri.
Structura LVGL poate fi impartita in 3 mari componente.
+-----------------------------+ | Application | | (Your GUI logic & widgets) | +-----------------------------+ | LVGL Core | | Drawing, events, objects | +-----------------------------+ | Display & Input Interfaces | | (Drivers for LCD, touch) | +-----------------------------+ | Hardware / OS | | (ESP32, NuttX, FreeRTOS) | +-----------------------------+
Nuttx are deja inclusa biblioteca LVGL in subsistemul grafic. Config-ul folosit astazi are deja componenta LVGL activat, dar mentionam aici setarile din config care trebuie activate daca veti avea nevoie sa folositi un alt config.
make menuconfig → Graphics Support → LVGL graphics library = [Y] → Graphics Applications → LVGL Demo Widgets = [Y] → Board Selection → Enable LCD or SPI display driver
Smartwatch-ul Hacktorwatch are integrate LCD-ul … si senzorul touchscreen CST816S. Display-ul foloseste protocolul SPI pentru a comunica cu board-ul ESP32, folosind urmatorul pinout.
| Signal | Description | ESP32 GPIO | | -----: | ------------ | ------------ | | MOSI | Data to LCD | e.g. GPIO 23 | | SCLK | Clock | e.g. GPIO 18 | | CS | Chip select | e.g. GPIO 5 | | DC | Data/Command | e.g. GPIO 21 | | RST | Reset | e.g. GPIO 22 | | BL | Backlight | optional |
0. (Optional) Rulati simulatorul LVGL pe Linux-ul vostru
ToDo
1. ToDo