IMU 六轴运动使用说明
IMU 通过六轴传感器展示板卡姿态和瞬时加速度。 安装后的程序名为 lilygo-ui-imu,界面使用英文标签。
使用前准备
- T-DisplayCM0 的 QMI8658B 需要由 Linux IIO 驱动正常提供数据。
- 应用自动寻找名为
qmi8658c、qmi8658b或qmi8658的设备。 - 运行用户需要读取
/sys/bus/iio/devices下六轴 raw 与 scale 属性的权限。 - 不需要联网;应用通过 IIO 读取数据,不直接修改 I2C 寄存器。
查看运动
- 在 Launcher 打开 IMU。
- 查看底部状态:真实传感器为
Live,模拟输入为Demo,不可用为Offline。 - 缓慢倾斜设备,观察圆形区域中的小球随姿态移动。
- 保持角度,小球应稳定停在相应位置;它不表示设备已经移动的距离。
- 观察
Acceleration和Angular rate六轴读数。 - 调整底部 Sensitivity,选择适合的响应幅度。
小窗口中读数标题缩短为 Accel. 和 Gyro。 加速度单位为 m/s²,包含重力;角速度单位为 rad/s。 瞬间加速会让小球暂时变大,随后恢复。 小球白色标记反映传感器 Z 轴旋转,不是绝对罗盘航向。
调整灵敏度与方向
Sensitivity 范围为 25%–200%,默认 100%。 拖动滑块可改变位置响应,读数单位不会变化。 方向键 ↑/→ 增加 1%,↓/← 减少 1%;需要时按 Tab 恢复滑块焦点。
安装方向导致小球移动方向不符合预期时,可在设备终端启动:
sh
LILYGO_IMU_ROTATION=90 lilygo-ui-imu该角度叠加在显示旋转之上,仅调整小球映射;六轴数值仍使用传感器坐标系。 页面没有暂停、重置或校准按钮,不要寻找这些菜单。
选择真实或演示输入
Linux 默认读取真实 IIO;macOS 等非 Linux 主机默认演示。 有多个传感器时可以明确指定 IIO 目录:
sh
LILYGO_IMU_DEMO=0 \
LILYGO_IMU_DEVICE=/sys/bus/iio/devices/iio:device0 \
lilygo-ui-imu路径必须替换为实际设备。LILYGO_IMU_DEMO=1 明确启用演示,并优先于设备路径。 真实输入断开不会自动切换到模拟值。
数据与断线行为
读数为实时显示,页面没有录制或导出功能。 灵敏度和内部校准状态不跨应用重启保存。 断开或数据过期时,小球保持最后的位置与大小,读数显示不可用。 底部显示 QMI8658: waiting for connection,应用会自动尝试重新连接。 恢复新数据后继续运动,不必手动刷新。
常见问题
| 现象 | 处理 |
|---|---|
| 始终 Offline | 检查板卡 overlay、IIO 驱动、设备 name 和六轴属性读权限。 |
| 板卡水平时小球偏移 | 检查安装方向和传感器偏置;当前页面没有校准入口。 |
| 小球不动但 Demo 正常 | 演示只能证明界面运行,仍需检查真实 IIO 数据。 |
| 角速度变化但标记不是北向 | 标记只表达 Z 轴旋转,不是磁力计航向。 |
| 退出后灵敏度恢复 | 当前实现不保存此设置,重新调整滑块即可。 |
本文依据本地 IMU README、传感器说明及页面实现整理。