跳转到内容

Arduino 离线手势识别提示词范例

接手一套 Arduino Nano 33 BLE Sense Rev2 手势遥控器。设备只使用板载 IMU,
在本地识别“向左、向右、画圈、静止”四类动作,并通过 BLE GATT 上报
类别、置信度和推理耗时;模型必须在板上离线运行,断开电脑后仍可工作。
1. 数据与硬件
板卡:Arduino Nano 33 BLE Sense Rev2
IMU:BMI270/BMM150,使用与 Rev2 匹配的 Arduino 官方传感器库
输入:三轴加速度和三轴角速度,目标采样率 50Hz
窗口:64 个连续样本,窗口重叠 50%
类别:LEFT、RIGHT、CIRCLE、IDLE
输出:板载 LED 指示结果,BLE 特征值发布类别、置信度和延迟
先确认项目针对 Rev2,不能直接套用旧版 Nano 33 BLE Sense 的 LSM9DS1
驱动或引脚假设。模型格式和运行库以项目锁定版本为准。
2. 要实现的识别链路
增加带时间戳的数据采集模式。每类至少采集 200 个完整手势,覆盖不同
速度、方向幅度和三次独立采集会话。训练集、验证集和测试集按采集会话
划分,不能把同一动作窗口随机拆到多个集合造成数据泄漏。
完成归一化、窗口切分、模型训练和 int8 量化。将模型及归一化参数作为
版本化资产集成进工程,编译时记录模型大小、Flash 和 RAM 占用。
运行时使用固定采样节拍,不在采样回调中打印。置信度低于 0.80 时输出
UNKNOWN;同一类别连续两个窗口成立后才发布,避免边界抖动。BLE 断开
不得阻塞采样和推理,重连后只发布新结果,不补发过期手势。
3. 工程边界
- 不得编造准确率、混淆矩阵、推理时间或板上内存数据;
- 不得用训练样本验证同一个模型,也不得按单帧随机拆分数据集;
- 不得为提高准确率删除难例而不记录删除规则;
- 不得在循环中动态分配推理张量或超过板卡可用 RAM;
- 不得把桌面 Python 推理结果当作板上 TensorFlow Lite Micro 结果;
- 未获得允许时不得上传原始动作数据到第三方服务。
4. 验收
使用从未参与训练的独立会话,每类执行 50 次手势并记录混淆矩阵、
Precision、Recall、UNKNOWN 比例和误触发次数。板上端到端延迟应小于
150ms,连续运行 2 小时不得出现采样溢出、BLE 阻塞或内存增长。
最终交付数据版本、预处理参数、模型结构与大小、板上资源占用、
独立测试结果、BLE 协议和仍需扩充的数据盲区。