倾斜与视差

真实姿态,不牺牲像素清晰度
星种不是对整张 PNG 做亚像素变换,而是把 160×160 图像按水平带切分,每带做整数偏移与 shear。
板级坐标
实板 QMI8658 相对屏幕旋转了 90°,最终唯一映射为:
text
screen tilt X = -(sensor Y - neutral Y)
screen tilt Y = +(sensor X - neutral X)旧实现直接使用 sensor X/Y,导致左右和前后方向错位。修正后四向轴隔离与 Waveshare Gravitysphere 示例一致。
采样管线
- 33 ms IMU 任务读取加速度/陀螺仪。
- 启动稳定窗口建立 neutral。
- 0.025 g 死区过滤桌面噪声。
- 0.55 g 映射为 1.0 满量程。
- 低通平滑后写入 lock-free/受控共享快照。
- 渲染任务读取归一化 X/Y,不在 UI 线程等待 I²C。
三档响应
| 档位 | 最大 X/Y 位移 | shear | 适用 |
|---|---|---|---|
| LOW | 3 / 2 px | 2 | 轻微玻璃视差 |
| MID | 6 / 4 px | 4 | 默认平衡 |
| HIGH | 10 / 7 px | 7 | 明显体感与 STAR RUSH |
所有最终位移取整数,750 个核心姿态由 clearance validator 检查,不允许星种 Alpha 与周边 UI 在任何 HIGH 采样重叠。
唤醒重校准
ambient 期间维护最近 5 个真实加速度样本。第一次触摸唤醒时立即冻结这份“触摸前姿态”为新 neutral,避免把手指 release 或随后动作采进校准;同一触摸事务仍完整吞掉。
网页模拟
网页 Demo 可以从 pointer 位置生成虚拟倾斜,便于冻结视觉;实体设备的 SIM/OFF 不伪造硬件输入,只有 AUTO 使用 QMI8658。
