亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

零部件与物料

零部件数量
Arduino Nano 33 BLE Sense1
PCA9685 8通道 12V FET 驱动板(I2C 接口)1
SG90 微型舵机3
9V 电池扣1

所需工具与设备

软件与在线服务

项目概述

本项目演示如何在 Arduino Nano 33 BLE Sense 上部署 TinyML 语言检测模型,识别三个单词:“si”(意大利语)、“oui”(法语)、“yes”(英语),并驱动对应国旗舵机升起。完整流程包括数据采集、模型设计训练、EON Tuner 硬件优化、部署与舵机联动。

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

数据采集与集构建

数据集共 30 分钟:每个目标词 10 分钟,加 3 分钟环境背景噪音。每段 1 秒单词录音,在 Edge Impulse 中标注。背景样本帮助模型区分语音与非语音。

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战
基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

模型设计

Edge Impulse 自动完成预处理:音频转时序、分帧、提取 MFCC 特征,再经轻量级 CNN 分类为四类(si、oui、yes、背景)。训练仪表盘可视化 MFCC 与网络结构。

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

训练与 Arduino 优化

EON Tuner 自动搜索数十种配置,按准确率、推理时间、RAM/Flash 占用评分。本项目选取前 5 高准确率中推理最快的模型。

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

测试验证

独立测试集确认性能稳健,目标词分类置信度持续超 80%。

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

部署与舵机联动

通过 Edge Impulse Arduino 库一键生成头文件,导入 Arduino IDE 后扩展舵机控制逻辑。三个 SG90 舵机分别对应三面小旗。

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战
基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

核心代码片段

关键扩展:引入 Adafruit_PWMServoDriver.h 驱动 PCA9685;编写 servos_selector() 根据分类结果驱动对应舵机;置信度超 80% 时触发动作。

void servos_selector(int iter) {
  unsigned long time_now = millis();
  if (time_now - time_was > 2000) {
    time_was = time_now;
    switch (iter) {
      case 0: // Italian
        pwm.setPWM(0, 0, 350); delay(500);
        pwm.setPWM(0, 0, 200); pwm.setPWM(1, 0, 200); pwm.setPWM(2, 0, 200);
        break;
      case 1: // French
        pwm.setPWM(1, 0, 350); Serial.println("2222"); delay(500);
        pwm.setPWM(0, 0, 200); pwm.setPWM(1, 0, 200); pwm.setPWM(2, 0, 200);
        break;
      case 2: // English
        pwm.setPWM(2, 0, 350); Serial.println("333"); delay(500);
        pwm.setPWM(0, 0, 200); pwm.setPWM(1, 0, 200); pwm.setPWM(2, 0, 200);
        break;
    }
  }
}

电路设计

9V 电池供电,PCA9685 经 I2C 驱动三路 SG90 舵机。PCA9685 的 12V 引脚接电池,PWM 输出接舵机。硬件、软件、数据流完备,即可部署边缘语言检测器。

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

完整代码仓库

GitHub 源码

原理图

基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战

制造工艺

  1. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  2. Arduino 数字骰子:LCD 显示随机点数的电子骰子
  3. DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
  4. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  5. DIY Arduino 加湿器控制器:继电器安全控制高压电路
  6. Arduino 声纳实时测距与 Processing 可视化
  7. MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
  8. 声控氛围灯:Arduino Nano + 麦克风模块 + WS2812B 灯珠
  9. Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
  10. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  11. Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里
  12. Arduino RGB 颜色混合器 – 分步制作教程