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

ESP 手势识别系统:Arduino 101/ADXL335 加速度计 + 机器学习实时识别动作

元件清单

方案元件数量
方案 A(内置加速度计)Arduino 1011
––
方案 B(外挂加速度计)Arduino UNO(或其他)1
ADXL335 三轴模拟加速度计模块1
面包板 + 杜邦线1 套

系统架构

ESP(Embedded Signal Processing) 是运行在电脑端的手势识别应用,基于 GRT(Gesture Recognition Toolkit) 的 DTW(动态时间规整) 算法。Arduino 仅负责采集加速度计数据(9600 波特率,制表符分隔,三轴),经 USB 串口发送给 ESP;ESP 实时匹配训练样本,识别出手势后通过串口回传标签(如 1\n)给 Arduino,同时也可通过 TCP(localhost:5204)推送给其他应用(Processing、游戏等)。

软件准备

操作步骤

  1. 接线:Arduino 101 免接线;UNO+ADXL335 按 X→A5, Y→A4, Z→A3 接模拟口,或插针直插模拟口并用代码配置供电引脚。
  2. 上传采集代码:两份代码分别适配 Arduino 101 内置传感器与 ADXL335,均以 9600 波特率输出三轴数据。
  3. 串口监视器/绘图器验证:观察三轴波形随动作变化,确认无乱码。
  4. 关闭串口工具,启动 ESP 应用,配置菜单选择对应串口。
  5. 校准:传感器 Z 轴朝上平放,按 1 记录“直立”;倒置平放,按 2 记录“倒立”。ESP 据此推算 0g/1g 对应数值。
  6. 训练样本采集:切换到 Training 标签(或按 T),按住数字键(1–9)做对应手势,每类建议 5–10 个高质量样本。样本应包含完整动作,避免多余静止段;可事后删减/修剪/重标记/重命名。
  7. 训练模型:按 t 训练,提示 “training successful”。实时做动作,ESP 绘图区将显示识别出的手势名。
  8. 参数调优:配置面板可调 variability(容差,越大越宽松)与 timeout(最小识别间隔,ms),改动后需重新训练。
  9. 集成到项目:Arduino 读串口收到标签即可触发相应动作(舵机、LED、蜂鸣器等)。

Arduino 代码要点

Arduino 101 内置加速度计版

#include <CurieIMU.h>
void setup() {
  Serial.begin(9600);
  CurieIMU.begin();
  CurieIMU.setAccelerometerRange(2); // ±2g
}
void loop() {
  int ax, ay, az;
  CurieIMU.readAccelerometer(ax, ay, az);
  Serial.print(ax); Serial.print('\t');
  Serial.print(ay); Serial.print('\t');
  Serial.println(az);
  delay(20); // ~50 Hz
}

ADXL335 模拟输出版(X→A5, Y→A4, Z→A3)

const int xpin = A5, ypin = A4, zpin = A3;
void setup() { Serial.begin(9600); }
void loop() {
  Serial.print(analogRead(xpin)); Serial.print('\t');
  Serial.print(analogRead(ypin)); Serial.print('\t');
  Serial.println(analogRead(zpin));
  delay(20);
}

算法原理:DTW(动态时间规整)

DTW 通过在时间轴上拉伸/压缩实时信号,使其与各训练样本对齐,计算累积距离。距离小于阈值(由 variability 控制)则判定匹配。适合离散、时长可变的单次手势;不适用于连续流式动作分割。

扩展方向

注意事项

制造工艺

  1. 基于 Arduino 与 Python 的可靠 RFID 考勤系统
  2. 基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
  3. Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
  4. 智能物联网罐:ESP8266 + Arduino + 超声波传感器实时监测罐内物位
  5. 基于Arduino UNO的精准频率与占空比测量
  6. Firmata + Xbox 手柄无线遥控 Arduino 小车:UWP 应用桥接方案
  7. Arduino 声纳实时测距与 Processing 可视化
  8. Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
  9. DIY 智能 Arduino 机械臂:主从控制与动作记忆教程
  10. 在 Arduino Due 上实现语音识别与语音合成 - BitVoicer Server 方案
  11. 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
  12. Arduino 实时数字罗盘:HMC5883L + Processing 可视化教程