项目简介
本项目利用新添加的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程序,编译上传后即可实现手势识别。
安装使用步骤
安装环境
- 安装Python 3.5.x - 3.7.x版本,在命令行执行
pip3 install tensorflow
和pip install jupyterlab
安装所需Python库。 - 安装Arduino IDE,在板卡管理器添加Arduino Nano 33 BLE Sense板卡,在库管理器添加LSM9DS1库。
准备数据集
运行IMU捕获脚本,记录不同手势的加速度计和陀螺仪数据,保存为.csv
文件。
训练神经网络
使用提供的Jupyter Notebook或在线Colab训练神经网络,选择合适的架构和参数,训练完成后转换为可在Arduino运行的模型文件。
上传程序
将模型文件添加到Arduino程序,编译并上传到Arduino设备。
测试与优化
在实际环境中测试手势识别系统性能,根据需要调整优化,注意保持设备姿态稳定,控制环境因素,做好电源管理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】