Laboratorul 05. LVGL

Despre LVGL

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.

Site-ul oficial

Functionalitati principale

  • Biblioteca de widget-uri: butoane, label-uri, slider-e, meniuri, checkbox-uri, chart-uri, imagini si animatii, tastaturi
  • Eficienta randarii, foloseste “dirty area tracking” pentru a redesena doar acele portiuni din ecran care au fost modificate
  • Abstractie hardware (HAL): foloseste un nivel intermediar de acces al display-ului si al dispozitivelor de intrare (touchscreen)
  • Este usoara - consum redus de memorie si procesor (Flash: ~100–200 KB, RAM: ~10–50 KB)
  • Este portabila - funcționeaza pe multe platforme (MCU-uri, Linux embedded, RTOS-uri).
  • Are simulator pentru Windows si Linux pentru a usura procesul de development (il vom folosi si noi astazi)

Arhitectura

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)  |
+-----------------------------+
  • Aplicatia principala
  • Nucleul LVGL
  • Drivere

LVGL pentru Nuttx

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

LVGL pe smartwatch-ul Hacktorwatch

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     |

Exercitii

0. (Optional) Rulati simulatorul LVGL pe Linux-ul vostru

ToDo

1. ToDo

Resurse

si/laboratoare/2025/05.txt · Last modified: 2025/10/30 00:48 by cosmin.chenaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0