LVGL:一個開源的嵌入式圖形庫

前言

嵌入式系統是一種將計算機硬件和軟件集成在一個特定的應用中的系統,例如智能手機、智能手錶、汽車儀表盤等。嵌入式系統通常需要與用戶進行交互,因此需要一個友好和易用的圖形用戶界面(GUI)。然而,開發一個高質量的GUI並不容易,因為嵌入式系統通常有限的資源,例如處理器速度、記憶體大小、電源消耗等。因此,開發者需要一個適合嵌入式系統的GUI庫,可以幫助他們快速和方便地創建美觀和功能豐富的GUI

目的

本文的目的是介紹一個開源的嵌入式圖形庫 - LVGLLight and Versatile Graphics Library)。LVGL是一個適用於各種嵌入式平台和顯示器的GUI庫,它提供了豐富的控件、主題、動畫、字體、圖像等元素,以及靈活的佈局和事件處理機制。本文將介紹LVGL的主要特點、架構、使用方法和應用領域,並且展示一些LVGL的示例和效果。

LVGL介紹

LVGL是由Gábor Kiss-Vámosi2016年創建的一個開源項目,目前由來自世界各地的志願者共同維護和開發。LVGL是用C語言編寫的,遵循MIT協議,可以自由地使用和修改。LVGL支持多種操作系統,例如LinuxWindowsRTOS等,也可以在開發板上運行。LVGL還支持多種顯示器驅動器和觸摸屏驅動器,可以與不同大小和分辨率的顯示器兼容。LVGL還提供了多種語言的綁定,例如PythonMicropythonJavaScript等,以及多種開發工具,例如模擬器、視覺化設計器、字體轉換器等。  

LVGL的主要特點有: 

- 輕量級:LVGL只需要少量的記憶體和運算資源,可以在低端的微控制器上運行。

- 多功能:LVGL提供了超過40種控件,例如按鈕、滑塊、列表、圖表等,以及多種主題、動畫、字體、圖像等元素,可以創建各種風格和效果的GUI

- 靈活:LVGL採用了面向對象的設計,可以方便地創建和管理GUI的組件和屬性。LVGL還支持自動和手動佈局,可以適應不同的顯示器和方向。LVGL還支持事件驅動和回調函數,可以實現GUI的交互和邏輯。

- 可移植:LVGL可以在不同的硬件和軟件平台上運行,只需要提供一個顯示器刷新函數和一個觸摸屏讀取函數。LVGL還提供了多種預配置的平台,例如STM32ESP32Raspberry Pi等,可以快速地開始使用LVGL

應用領域

LVGL可以用於各種嵌入式系統的GUI開發,例如:

- 智能手機和平板電腦:LVGL可以用於創建類似於AndroidiOSGUI,提供多點觸控、手勢識別、動畫效果等功能。

- 智能手錶和穿戴設備:LVGL可以用於創建適合小型顯示器的GUI,提供圓形或方形的控件、低功耗模式、健康監測等功能。

- 汽車儀表盤和導航系統:LVGL可以用於創建適合汽車環境的GUI,提供高對比度、高亮度、反射式或透明式的顯示器、觸摸屏或按鍵操作、車載信息和娛樂等功能。

- 工業控制和測量儀器:LVGL可以用於創建適合工業場景的GUI,提供堅固耐用、防水防塵、高溫高壓、抗干擾等特性,以及數據顯示和控制等功能。

- 家庭電器和物聯網設備:LVGL可以用於創建適合家庭使用的GUI,提供簡潔美觀、易於操作、節能省電等特點,以及遠程控制和智能連接等功能。 

Ubuntu模擬器環境建置

1.前置準備:


a.安裝Ubuntu20.04虛擬機。
b.Ubuntu安裝vscode。

2.下載LVGL Source code:
a.mkdir -p ~/lvgl
b.cd ~/lvgl
c.git clone --recursive https://github.com/lvgl/lv_sim_vscode_sdl
d.cd ~/lvgl/lv_sim_vscode_sdl
e.git submodule update --init –recursive

3.安裝sdl2:
a.sudo apt-get update && sudo apt-get install -y build-essential libsdl2-dev

4.開啟VScode執行:
a.cd ~/lvgl
b.code lv_sim_vscode_sdl

5.安裝擴展套件:

 

1

6.F5執行。

7.執行結果:

 

2

結語

LVGL是一個開源的嵌入式圖形庫,它具有輕量級、多功能、靈活和可移植等特點,可以幫助開發者快速和方便地創建美觀和功能豐富的GUILVGL適用於各種嵌入式平台和顯示器,並且支持多種操作系統和語言。LVGL已經被廣泛地應用於智能手機、智能手錶、汽車儀表盤、工業控制、家庭電器等領域,並且得到了眾多用戶的好評。 

Q&A

  1. 問:lvgl 的作者是誰?

答:lvgl 的作者是來自匈牙利的 Gabor Kiss-Vamosi,也就是 kisvegabor2

  1. 問:lvgl 用什麼語言編寫?

答:lvgl C 語言編寫,以實現最大的兼容性(與 C++ 兼容)。

  1. 問:lvgl 提供了哪些內置的小工具(widgets)?

答:lvgl 提供了 30 多種內置的小工具,例如按鈕、標籤、滑塊、圖表、鍵盤、表格等。

  1. 問:lvgl 需要多少記憶體和儲存空間?

答:lvgl 至少需要 32kB RAM 128 kB Flash,以及一個 frame buffer 和至少一個 1/10 螢幕大小的緩衝區用於渲染。

  1. 問:lvgl 有什麼專業的 UI 編輯器工具?

答:lvgl 有一個叫做 SquareLine Studio UI 編輯器工具,可以讓你用拖放的方式來設計和創建功能完整的 UI
 

參考資料:New Bing 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論