Table of Contents

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

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)  |
+-----------------------------+

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