littlebot
Published on 2025-04-10 / 0 Visits
0

【源码】基于Arduino和Web界面的手势控制门系统

项目简介

本项目借助Arduino Nano 33 BLE Sense和web界面实现对虚拟门的控制。通过捕获并分类加速度计和陀螺仪的数据,利用蓝牙与Arduino通信,依据识别出的手势完成门的打开或关闭操作。

项目的主要特性和功能

  1. 数据捕获imu_capture文件夹中的代码可捕获IMU传感器数据并输出到串行端口,这些包含加速度计和陀螺仪读数的数据用于后续训练和分类,需保存为.csv格式。
  2. 手势分类imu_classifier文件夹利用机器学习模型,依据传感器数据对执行的手势进行分类。当检测到正确手势,会通过蓝牙发送“true”消息,触发web页面上的门打开。
  3. 模型训练model_training文件夹内的Jupyter笔记本提供了详细的手势识别模型训练步骤,可在Google Colab平台运行。同时包含两个样本.csv文件,用于训练model.h文件。
  4. Web页面控制:Web页面支持通过蓝牙与Arduino连接并控制门,接收来自Arduino的开关门命令,门在打开10秒后自动关闭。

安装使用步骤

  1. 搭建Arduino IDE环境,准备好Arduino Nano 33 BLE Sense板。
  2. 利用Arduino IDE上传imu_capture.ino草图。
  3. 执行手势捕获IMU数据,每个手势至少重复10次以提升模型精度。
  4. 将串行输出导出为.csv文件,保存捕获的数据。
  5. 打开model_training文件夹中的arduino_gesture_model_training.ipynb文件,在Google Colab中按步骤训练机器学习模型,并将模型导出为model.h文件,放置于imu_classifier文件夹。
  6. 上传imu_classifier.ino草图。
  7. index.htmlimages文件夹托管在web服务器,或在本地web浏览器中打开index.html文件。
  8. 在web浏览器中打开网页。
  9. 点击“连接到Arduino”按钮,通过蓝牙连接Arduino。
  10. 若连接成功,网页会显示相关提示,更改门图像不透明度并将连接按钮变为断开连接按钮。执行手势,识别正确时门打开,10秒后自动关闭。

注意事项

确保在web页面代码(index.html)和Arduino草图(imu_classifier.ino)中调整蓝牙服务和特性UUID,以适配你的具体设置。另外,修改imu_classifier.ino以反映你的训练模型。

依赖项

此项目依赖以下技术、硬件和库: - Arduino IDE - Arduino Nano 33 BLE板 - Arduino_LSM9DS1库 - TensorFlow Lite Micro库 - Arduino的蓝牙低功耗(BLE)库 - 支持JavaScript和蓝牙的Web浏览器

下载地址

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