基于ESP32和GC9A01构建一个复古 VU 表
扫描二维码
随时随地手机看文章
最近,在我之前的一段视频中,我向您展示了一个基于圆形显示屏、使用 ESP32 微控制器和 Adafruit GFX 库的复古 VU 表项目。当时,VU 表是通过库函数绘制出来的,但代码仍然相对复杂,您可以在那段视频中看到结果。
在这个项目中,我还将向您展示一种制作复古 VU 表的方法,不过这次我们将使用 LVGL,这是一个免费且开源的库,它能让您为任何供应商的任何微控制器在任何平台上创建图形用户界面,并且还有 Squareline 工作室的 UI 编辑器,可让您快速、轻松地为嵌入式设备设计和开发美观的用户界面。使用这两个工具的结果马上就能显现出来,这些 VU 表非常逼真,而且代码也更加简洁、灵活。
硬件部分与之前提到的项目完全相同,仅由一些价格低廉的组件构成:
这些二极管与输入端的电容器共同构成了所谓的“包络跟随器”电路,该电路将适合进一步处理的信号传输至微控制器的输入端。峰值计的指示灯通过适当的限流电阻连接,而显示屏则通过 SPI 接口连接。
该项目由 PCBWay 公司赞助。从概念设计到实际生产,PCBWay 为全球创新者提供前沿的电子设计解决方案,涵盖硬件设计、软件开发、机械设计、产品测试及认证等方面。PCBWay 工程团队由在电子、嵌入式系统和产品开发领域经验丰富的工程师组成。他们成功完成了涵盖医疗设备、工业自动化、消费电子、智能家居和物联网等多个行业的数百个项目。
至于代码,它通常由两部分组成:使用 SquareLine Studio 生成的用户界面文件,以及使用 LVGL 库来“管理”这些文件的基本.ino 代码。
简要说明一下,我正在使用的 Arduino IDE 版本是 1.8.16,ESP32 核心版本是 2.0.14,以及 LVGL 库版本是 。8.3.11. 包含代码文件的文件夹的名称应与代码文件内部的.ino 文件的名称相同。现在我们只需运行这个.ino 文件,然后编译并上传代码。我们直接在这个文件中进行基本设置。
代码中有一个部分,你可以在此处更改峰值指示灯开启的值,以及激活指示灯的持续时间、箭头的反应方式,以及输入的灵敏度。两个通道的代码是相同的。顺便说一下,我们还可以通过一个立体音旋钮以简单的方式调整输入灵敏度。
现在让我们来看看该设备在实际环境中的反应情况。在开启电压指示器后,它会立即开始工作,并且箭头会随着输入音频信号的强度而移动。如果该信号超过了预先设定的限值,峰值指示灯就会亮起。正如我之前所说,箭头移动的速度和方式可以在代码中进行更改。
最后,给出一个简短的总结。该项目是对经典模拟 VU 表的一种现代创新设计,它采用了强大的 ESP32 微控制器和圆形 TFT 显示屏,以实现具有现代精度的复古外观。借助 LVGL 库和 SquareLine Studio,我创建了一个不仅实用而且在美学上能丰富任何音频系统的可视化效果。
本文编译自hackster.io





