ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller,
FabGL
ESP32
⭐⭐☆☆☆ (2/5)
已发布
项目简介
ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller,
FabGL 是一个专为 ESP32 微控制器设计的综合性图形库,由 Fabrizio Di Vittorio 创建。它最引人注目的能力是让 ESP32 输出 VGA 信号(通过简单的电阻网络实现数模转换),以及生成彩色 NTSC/PAL 复合视频信号,无需额外复杂硬件。此外,它还支持 I2C 和 SPI 接口的常见显示屏,如 ILI9341、ST7789 和 SSD1306。
标签
项目特点
支持多种显示输出:VGA、PAL/NTSC 彩色复合、OLED(SSD1306)、TFT(ST7789、ILI9341)
集成 PS/2 键盘与鼠标控制器,可直接连接标准外设
内置图形库、声音引擎和游戏引擎,适合开发复古游戏和交互应用
提供 ANSI/VT100 终端模拟器,可模拟经典计算机终端
基于 ESP32 双核处理器,性能足以运行模拟器和实时图形
开源社区活跃,GitHub 星数超过 1600,文档和示例丰富
技术规格
| 支持芯片 | |
|---|---|
| 显示接口 | |
| 视频分辨率(VGA) | |
| 视频分辨率(PAL) | |
| 视频分辨率(NTSC) | |
| 输入接口 | |
| 音频输出 | |
| 图形库 | |
| 终端模拟 | |
| 许可证 |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| ESP32 开发板(如 ESP32-DevKitC) | 1 | — | 推荐 4MB Flash 以上 |
| VGA 显示器或支持 VGA 的屏幕 | 1 | — | 可选,用于 VGA 输出 |
| 复合视频显示器(PAL/NTSC) | 1 | — | 可选,用于复合视频输出 |
| SSD1306 OLED 模块(128×64) | 1 | — | 可选,I2C/SPI |
| ST7789 TFT 模块(240×240) | 1 | — | 可选,SPI |
| ILI9341 TFT 模块(320×240) | 1 | — | 可选,SPI |
| PS/2 键盘 | 1 | — | 标准 PS/2 接口 |
| PS/2 鼠标 | 1 | — | 可选 |
| 杜邦线/面包板 | 若干 | — | 用于连接外设 |
| USB 数据线(Micro USB) | 1 | — | 供电与编程 |
所需工具
| 工具 | 用途 | 是否必需 |
|---|---|---|
| Arduino IDE 或 PlatformIO | 编写、编译、上传代码 | ✅ 是 |
| ESP32 板支持包 | 在 Arduino IDE 中支持 ESP32 | ✅ 是 |
| USB 转串口驱动(CP210x/CH340) | 连接 ESP32 与电脑 | ✅ 是 |
| 示波器或逻辑分析仪 | 调试视频时序和 PS/2 信号 | ▢ 推荐 |
| 万用表 | 检查连接和电压 | ▢ 推荐 |
能力画像
**记忆与知识检索**:3/5 — 项目文档和示例较为完整,但部分细节需查阅源码和社区讨论。
**动手与操作**:4/5 — 需要焊接和连接外设,但整体硬件接线简单,适合动手实践。
**编程与算法**:3/5 — 使用 C++ 编写,涉及图形渲染、终端模拟和音频合成,有一定编程门槛。
**设计与建模**:2/5 — 项目主要聚焦于底层驱动和库,不涉及复杂硬件设计或 3D 建模。
**实验与调试**:4/5 — 支持多种显示和输入设备,适合反复调试和实验不同配置。
**协作与分享**:3/5 — 开源项目,可通过 GitHub 提交 Issue 和 PR,但社区规模中等。
**学习与研究**:4/5 — 适合学习嵌入式图形、视频信号生成、PS/2 协议和终端模拟。
**系统集成**:3/5 — 可与其他 ESP32 项目集成,但需注意资源占用和引脚冲突。
项目图库
所需技能
基础 C/C++ 编程
了解 Arduino 或 PlatformIO 开发环境
熟悉 ESP32 的 GPIO、SPI、I2C 接口
基本电子知识(面包板、杜邦线连接)
对视频信号(VGA、PAL/NTSC)有基本了解更佳
对 PS/2 协议有基本了解更佳
适用场景
制作复古终端或 VT100 模拟器
开发基于 ESP32 的简易游戏机
构建带图形界面的嵌入式控制面板
学习视频信号生成和显示驱动
制作带键盘鼠标交互的 IoT 信息屏
教育和演示嵌入式系统原理