littlebot
Published on 2025-04-12 / 2 Visits
0

【源码】基于ESP32的矢量图形显示库

项目简介

VectorGFX 是基于 ESP32 微控制器的矢量图形显示库,借助 ESP32 的内置 DAC 驱动示波器显示矢量图形。此项目受 Trammell Hudson 等人的 V.st 项目启发,利用 ESP32 的 DMA 引擎实现更高效的图形刷新。

项目的主要特性和功能

  • 提供简单 API 进行矢量图形绘制,如 moveto()lineto() 方法。
  • 采用 4096x4096 坐标系统,虽实际显示分辨率为 256x256,但为未来扩展预留空间。
  • 通过 ESP32 的 DMA 引擎驱动 DAC,保障图形显示的稳定性与亮度一致性。
  • 包含多个示例代码,如 simpledemoserialvector,便于用户快速上手。
  • 提供 Python 库和示例代码,支持通过串口从 PC 发送矢量数据。

安装使用步骤

硬件连接

  • 把示波器的 X 通道探头连到 ESP32 的 GPIO 25。
  • 将示波器的 Y 通道探头连到 ESP32 的 GPIO 26。
  • 把示波器设置为 X - Y 模式。

软件设置

  • 下载并解压项目源码。
  • 用 Arduino IDE 或其他支持 ESP32 的开发环境打开项目。
  • 编译并上传 examples/simpledemoexamples/serialvector 示例代码到 ESP32。

运行示例

  • 上电后,ESP32 会自动显示简单测试图案。
  • 通过串口发送矢量数据,示波器将显示对应图形。

自定义图形

  • 参考 VectorGFX 类的 API 文档,用 moveto()lineto() 方法绘制自定义图形。
  • 调用 display() 方法刷新显示。

注意事项

  • 因无法控制示波器亮度,长时间静止图形可能致永久性磷光烧伤,使用时需调整亮度。
  • 当前仅支持 256x256 显示分辨率,未来可能通过外部 DAC 扩展。
  • ESP32 的 DAC 输出可能有噪声,尤其在启用 WiFi 或蓝牙时。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】