TinyML 关键词检测控制 RGB 灯 — Arduino Nano 33 BLE Sense
组件与物料
- Arduino Nano 33 BLE Sense (内置麦克风、IMU、环境传感器、APDS-9960 等)
应用与在线服务
- Edge Impulse Studio (在线 TinyML 模型训练平台)
项目介绍
项目背景
边缘机器学习可让设备以极少代码实现“智能”任务。本项目利用板载麦克风进行关键词检测,识别语音指令控制板载 RGB LED 颜色与开关。

硬件
仅需一块 Arduino Nano 33 BLE Sense,主控 nRF52840 (64 MHz, 1MB Flash, 256KB RAM),板载 RGB LED 直接指示状态。
Edge Impulse 模型训练流程
- 创建项目并安装 CLI,将板子刷入 Edge Impulse 固件 (双击复位进入 Bootloader,运行
flash_windows.bat)。 - 数据采集:录制 5 个关键词各 1 分钟 ("on", "off", "red", "green", "blue"),间隔 1-2 秒重复念词;上传 Edge Impulse 提供的背景噪音与未知词数据集;按 8:2 划分训练/测试集。
- 冲动设计:时间序列输入,窗口 1000ms、步长 500ms;MFCC 特征提取;Keras 神经网络分类器。调整置信度阈值 0.70,启用噪声增强与时间掩码防过拟合。
- 部署:导出 Arduino 库,在 IDE 中编译烧录至 Nano 33 BLE Sense。







代码
完整推理代码 RGBLEDKeywordDetection.ino (C/C++),包含 PDM 麦克风采样、Edge Impulse 推理循环、标签到动作映射 (开/关/红/绿/蓝)、RGB LED 驱动。关键参数:CONFIDENCE_THRESHOLD 0.7,EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW 3。代码较长,核心逻辑如下:
// 标签到动作映射
const std::map labelToActionMap = {
{"on", LED_ON}, {"off", LED_OFF},
{"red", LED_RED}, {"green", LED_GREEN}, {"blue", LED_BLUE},
{"unknown", NONE}, {"noise", NONE}
};
// 推理循环中检测置信度超阈值则执行对应动作
if (result.classification[ix].value > CONFIDENCE_THRESHOLD) {
performAction(result.classification[ix].label);
}
// performAction() 根据映射设置 RGB LED 颜色或开关
制造工艺
- 智能工厂边缘计算成功部署的四大关键步骤
- 气体检测仪维护三大铁律:校准/撞击测试/培训缺一不可
- Arm 推出 Cortex-M55 与 Ethos-U55:赋能低功耗端点 TinyML 的新 IP 核
- 超高灵敏化学武器检测系统:低浓度威胁精准识别
- 工业物联网安全:2020年关键趋势与最佳实践
- IoT边缘与云计算:演进史视角下的融合之路
- 边缘计算为何是IoT成功关键
- Kontron KBox A-150-WKL:高性能低功耗IoT边缘工控机
- 边缘计算:加速AI在网络边缘的部署
- 微软推出Azure Edge Zones赋能5G物联网与AI工作负载
- 为何开源驱动边缘创新——必读电子书
- 超薄纳米涂层:亚20 nm分层实现精准色彩控制