基于ESP32和GC9A01構(gòu)建一個(gè)復(fù)古 VU 表
最近,在我之前的一段視頻中,我向您展示了一個(gè)基于圓形顯示屏、使用 ESP32 微控制器和 Adafruit GFX 庫的復(fù)古 VU 表項(xiàng)目。當(dāng)時(shí),VU 表是通過庫函數(shù)繪制出來的,但代碼仍然相對(duì)復(fù)雜,您可以在那段視頻中看到結(jié)果。
在這個(gè)項(xiàng)目中,我還將向您展示一種制作復(fù)古 VU 表的方法,不過這次我們將使用 LVGL,這是一個(gè)免費(fèi)且開源的庫,它能讓您為任何供應(yīng)商的任何微控制器在任何平臺(tái)上創(chuàng)建圖形用戶界面,并且還有 Squareline 工作室的 UI 編輯器,可讓您快速、輕松地為嵌入式設(shè)備設(shè)計(jì)和開發(fā)美觀的用戶界面。使用這兩個(gè)工具的結(jié)果馬上就能顯現(xiàn)出來,這些 VU 表非常逼真,而且代碼也更加簡潔、靈活。
硬件部分與之前提到的項(xiàng)目完全相同,僅由一些價(jià)格低廉的組件構(gòu)成:
這些二極管與輸入端的電容器共同構(gòu)成了所謂的“包絡(luò)跟隨器”電路,該電路將適合進(jìn)一步處理的信號(hào)傳輸至微控制器的輸入端。峰值計(jì)的指示燈通過適當(dāng)?shù)南蘖麟娮柽B接,而顯示屏則通過 SPI 接口連接。
該項(xiàng)目由 PCBWay 公司贊助。從概念設(shè)計(jì)到實(shí)際生產(chǎn),PCBWay 為全球創(chuàng)新者提供前沿的電子設(shè)計(jì)解決方案,涵蓋硬件設(shè)計(jì)、軟件開發(fā)、機(jī)械設(shè)計(jì)、產(chǎn)品測(cè)試及認(rèn)證等方面。PCBWay 工程團(tuán)隊(duì)由在電子、嵌入式系統(tǒng)和產(chǎn)品開發(fā)領(lǐng)域經(jīng)驗(yàn)豐富的工程師組成。他們成功完成了涵蓋醫(yī)療設(shè)備、工業(yè)自動(dòng)化、消費(fèi)電子、智能家居和物聯(lián)網(wǎng)等多個(gè)行業(yè)的數(shù)百個(gè)項(xiàng)目。
至于代碼,它通常由兩部分組成:使用 SquareLine Studio 生成的用戶界面文件,以及使用 LVGL 庫來“管理”這些文件的基本.ino 代碼。
簡要說明一下,我正在使用的 Arduino IDE 版本是 1.8.16,ESP32 核心版本是 2.0.14,以及 LVGL 庫版本是 。8.3.11. 包含代碼文件的文件夾的名稱應(yīng)與代碼文件內(nèi)部的.ino 文件的名稱相同?,F(xiàn)在我們只需運(yùn)行這個(gè).ino 文件,然后編譯并上傳代碼。我們直接在這個(gè)文件中進(jìn)行基本設(shè)置。
代碼中有一個(gè)部分,你可以在此處更改峰值指示燈開啟的值,以及激活指示燈的持續(xù)時(shí)間、箭頭的反應(yīng)方式,以及輸入的靈敏度。兩個(gè)通道的代碼是相同的。順便說一下,我們還可以通過一個(gè)立體音旋鈕以簡單的方式調(diào)整輸入靈敏度。
現(xiàn)在讓我們來看看該設(shè)備在實(shí)際環(huán)境中的反應(yīng)情況。在開啟電壓指示器后,它會(huì)立即開始工作,并且箭頭會(huì)隨著輸入音頻信號(hào)的強(qiáng)度而移動(dòng)。如果該信號(hào)超過了預(yù)先設(shè)定的限值,峰值指示燈就會(huì)亮起。正如我之前所說,箭頭移動(dòng)的速度和方式可以在代碼中進(jìn)行更改。
最后,給出一個(gè)簡短的總結(jié)。該項(xiàng)目是對(duì)經(jīng)典模擬 VU 表的一種現(xiàn)代創(chuàng)新設(shè)計(jì),它采用了強(qiáng)大的 ESP32 微控制器和圓形 TFT 顯示屏,以實(shí)現(xiàn)具有現(xiàn)代精度的復(fù)古外觀。借助 LVGL 庫和 SquareLine Studio,我創(chuàng)建了一個(gè)不僅實(shí)用而且在美學(xué)上能豐富任何音頻系統(tǒng)的可視化效果。
本文編譯自hackster.io





