旋转 LED 平面 POV(Persistence of Vision,视觉暂留)显示是一种创新的 3D 体积显示技术,通过高速旋转 LED 面板填充空间体素,形成逼真立体图像。其核心挑战在于精确同步电机旋转与 LED 刷新,避免鬼影(ghosting) artifact,确保图像清晰稳定。本文聚焦 Multivox 开源项目,剖析其旋转 LED 平面同步机制,提供可落地工程参数与清单,帮助开发者复现或优化类似系统。
同步机制的核心观点:相位锁定与实时扫描
传统静态 LED 屏依赖像素阵列,而旋转 POV 依赖机械扫描:LED 面板(如 HUB75 128x64 RGB 面板)围绕垂直轴高速旋转(数百 RPM),结合视觉暂留(人眼~1/16s 残像)合成体积图像。鬼影产生于定时偏差 ——LED 在错误角度点亮,导致前后帧重叠模糊。Multivox 解决之道是相位锁定循环(Phase-Locked Loop, PLL)式同步:使用光电二极管(photodiode)作为单 GPIO 位置传感器,提供 180° 高 / 低电平信号,驱动实时扫描 voxel buffer(体素缓冲区),确保每个 “切片”(slice)精确对位。
证据来自 Multivox 驱动代码(vortex.c):Raspberry Pi 4 独占核心 3(isolcpus=3),内存映射 GPIO 高速访问 HUB75 接口(ABC/ABCDE 寻址)。旋转一圈分为 N 个切片(slice count,默认 128),每个切片扫描对应体素行。Photodiode 信号触发中断,计算旋转周期(timer23 计时),动态调整定时器 T0 初始值,实现自适应同步。键盘诊断键 't' 调节 trails(跳帧累积),'l' 锁定朝向,证明系统对变速(数百 RPM)鲁棒。
此机制优于霍尔传感器(多通道复杂),单 GPIO 简洁高效,支持线性 / 径向扫描几何(-g l/r 选项)。
证据:Multivox 硬件与软件实现
- 硬件:Vortex(300mm 球体,两面板背对背水平排列)使用 YM2776 无刷电机、汽车发电机滑环(ASL9013/ABH6004S)供电、6015/6804 轴承稳定。Core 容纳 RPi4、HUB75 适配板、光电中断器。碳纤维杆固定面板,配重铅坠平衡(动态加速计辅助)。
- 软件:Driver 创建共享内存 voxel buffer(3 位 / 通道 RGB,~128 slices x 64 height x 128 width 体素)。客户端(如 eighty 光周期、zander 着陆游戏)填充 buffer,Xbox 蓝牙手柄输入。Simulator(virtex)OpenGL 渲染验证几何。
- 性能:更高位深(3bit)降刷新率,但亮度均匀('u' 键策略)。旋转率 profiling 输出帧率 / RPM,确保 > 24fps 无闪烁。
YouTube 演示(Vortex: Ozzpirkhi5c)显示 Doom/GTA 流畅运行,无明显鬼影,验证同步精度。
可落地参数与工程清单
复现 Multivox 或自定义系统,按以下参数迭代:
-
电机与机械参数:
参数 值 说明 电机 YM2776 无刷 数百 RPM,PID 调速至稳定 300-600RPM 轴承 6015 上 / 6804 下 低摩擦,Pi 通过上轴承 滑环 ASL9013 12V / 高功率传输,避免电刷磨损 面板偏移 屏幕半径 0.8-1.0 倍(-o X X) 径向几何,避免线性扫描畸变 平衡 1/2oz 铅坠 + 加速计 振动 < 0.1g,防电机过载 -
同步传感器:
- Photodiode + 180° 遮光槽:高电平半圈触发。
- 阈值:GPIO 拉高 > 50% 周期,噪声滤波(中值滤 10 样本)。
- 周期测量:32bit 定时器,RPM=60/(周期 / 40MHz)。
-
驱动与定时参数:
参数 默认 范围 / 调优 Slice count (-s) 128 64-256,高值高分辨低帧率 Bit depth (-b) 2 1-3,3bit 亮度 x8 但帧率 / 8 Trails 动态 0-4,高速时累积跳帧 延迟 / 切片 150us 匹配 RPM,LED PWM 占空 50% HUB75 模式 ABC shift --led-row-addr-type=3 -
软件清单:
- CMake 构建:-DMULTIVOX_GADGET=vortex。
- 服务:systemd vortex.service,@reboot multivox。
- 玩具:fireworks/tesseract/viewer.obj,蓝牙手柄映射。
- 校准:python grid.py/colourwheel.py 测试均匀性。
-
风险与回滚:
- 风险:振动导致脱同步(限速 < 500RPM),过热(风扇散热 Pi)。
- 限值:RPM 400±50,温度 < 70°C,鬼影阈值 < 5% 体素偏移。
- 监控:profiling 日志,'p' 键单面板测试。
- 回滚:静态模式(非旋转,orthographic 轴 xyz 键)。
工程实践:先 simulator 验证几何,再硬件迭代平衡 / 同步。成本~200USD(3D 打印 + 面板 + Pi),刷新率 > 30fps,体积 300-400mm。
结语与来源
旋转 LED 平面 POV 同步不仅是技术炫技,更是嵌入式实时系统典范:微秒级定时 + 反馈控制实现沉浸 3D。Multivox 证明开源可驱动游戏级体验,未来扩展 VR/AR 体素渲染潜力巨大。
资料来源:
- GitHub: AncientJames/multivox (driver/simulator/toys)。
- GitHub: AncientJames/VortexParts (STEP 文件 / 组件)。
- YouTube: pcAEqbYwixU (demo),97cLIO7FNtw (Rotovox),Ozzpirkhi5c (Vortex)。