littlebot
Published on 2025-04-17 / 1 Visits
0

【源码】基于Arduino和TensorFlow的战斗手势识别系统

项目简介

本项目利用新添加的TensorFlow Lite对32位Arduino板的支持,通过Arduino Nano 33 BLE Sense板载的陀螺仪和加速度计传感器,训练神经网络以识别上击、拳打、劈砍和刺戳等战斗动作。项目灵感源自Arduino博客上关于机器学习在Arduino上的入门分类器。

项目的主要特性和功能

环境配置

  • Python:需安装3.5.x - 3.7.x版本的Python以支持TensorFlow 2.0,使用pip3 install tensorflow安装TensorFlow,pip install jupyterlab安装Jupyter Notebook。
  • Arduino IDE:由于使用非标准的Arduino Nano 33 BLE Sense板,要在板卡管理器添加该板卡,并添加LSM9DS1库用于读取IMU数据。

数据采集

IMU捕获脚本在设备加速度超过设定阈值(如1.55)时,以逗号分隔格式记录陀螺仪和加速度计数值,在串口以100Hz频率输出119个样本,直至下一次动作触发,每个动作记录十次。

模型训练与转换

可使用Jupyter Notebook或在线Colab进行神经网络训练,对数据进行预处理(如独热编码),采用含两个密集层的简单神经网络架构。训练完成后,将模型转换为可在Arduino等微控制器运行的.h文件。

手势识别

把转换后的model.h文件添加到Arduino程序,编译上传后即可实现手势识别。

安装使用步骤

安装环境

  1. 安装Python 3.5.x - 3.7.x版本,在命令行执行pip3 install tensorflowpip install jupyterlab安装所需Python库。
  2. 安装Arduino IDE,在板卡管理器添加Arduino Nano 33 BLE Sense板卡,在库管理器添加LSM9DS1库。

准备数据集

运行IMU捕获脚本,记录不同手势的加速度计和陀螺仪数据,保存为.csv文件。

训练神经网络

使用提供的Jupyter Notebook或在线Colab训练神经网络,选择合适的架构和参数,训练完成后转换为可在Arduino运行的模型文件。

上传程序

将模型文件添加到Arduino程序,编译并上传到Arduino设备。

测试与优化

在实际环境中测试手势识别系统性能,根据需要调整优化,注意保持设备姿态稳定,控制环境因素,做好电源管理。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】