Zonora
正在加载
Zonora
正在加载
Zonora
正在加载
基于 ESP32-PICO-D4 的开源桌面小电视 — 从元器件采购、PCB 打样、外壳定制到固件二次开发全链路实践

基于 ESP32-PICO-D4 的开源桌面小电视 — 从元器件采购、PCB 打样、外壳定制到固件二次开发全链路实践
如视频所述,本项目有意思的地方在于使用了一个分光棱镜来设计出伪全息显示的效果。这个小设备功能丰富,搭载 WiFi 和蓝牙能力,可以实现多种网络应用。
本项目的硬件方案是基于 ESP32-PICO-D4 的(乐鑫 SiP 封装芯片,PCBA 仅硬币大小),软件方面基于 LVGL GUI 库,移植了 ST7789 1.3 寸 240×240 分辨率屏幕驱动,将 MPU6050 作为输入设备通过感应模拟编码器键值交互。
视频介绍:https://www.bilibili.com/video/BV1VA411p7MD/
Hardware 文件包含两个版本的 PCB 电路:
两层板,整板成本在 50 元以内。
3D Model 文件夹包含四种版本的外壳:
固件框架基于 Arduino 开发,需安装 ESP32 Arduino 支持包。
关键修改:ESP32 官方库 SPI/src/SPI.cpp 中 MISO 引脚需改为 26(因 HSPI 默认 MISO 引脚 12 是 Flash 上电电平设置引脚,上拉会导致芯片无法启动)。
// esp32/hardware/esp32/1.0.4/libraries/SPI/src/SPI.cpp
_miso = (_spi_num == VSPI) ? MISO : 12; // 改为 26也可通过设置芯片熔丝解决(一次性不可逆)。
Software 文件夹包含 VS 工程,可本地模拟 LVGL 界面效果,改完直接粘贴到 Arduino 固件,无需每次交叉编译ImageToHolo 文件夹提供 Python 脚本用于批量将图片转为 HoloCubic 固件用的 .bin 资源- LVGL 官方在线工具每次只能转换一张 - 本脚本参考 [W-Mai/lvgl_image_converter](https://github.com/W-Mai/lvgl_image_converter) - 资源存储在 SD 卡(FAT 文件系统),ESP32 Flash 有限
图片资源使用方式(SD 卡路径):
lv_obj_t* imgbtn = lv_imgbtn_create(lv_scr_act(), NULL);
lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, "S:/dir/icon_pressed.bin");
lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, "S:/dir/icon_released.bin");也可使用预编译 exe 转换器(拖拽即可批量转换.jpg/png/bmp→.bin)
├── Hardware/ # PCB 电路文件(Naive / Ironman)
├── Firmware/ # Arduino 固件源码
│ └── Libraries/ # LVGL 等库文件
├── Software/ # VS 模拟器工程
├── ImageToHolo/ # 图片批量转换脚本
├── 3D Model/ # 外壳模型(4 种版本)
└── Documents/ # 文档资料| 模块 | 技术 |
|---|---|
| MCU | ESP32-PICO-D4(SiP 封装,硬币大小) |
| GUI 框架 | LVGL |
| 开发语言 | C++ / Arduino |
| 通信 | WiFi + Bluetooth |
| 屏幕 | ST7789 1.3" 240×240 |
| 传感器 | MPU6050(IMU)+ 环境光 |
| 存储 | SD 卡(FAT 文件系统) |
| 显示原理 | 分光棱镜伪全息 |
MIT