基于 QuecPython 嵌入式平台,使用 MPU6500 IMU 传感器和随机森林分类器的实时摔倒检测系统。
该 TinyML 系统直接在嵌入式硬件上使用机器学习实时检测动作。系统采用名为 MPU6500 的小型传感器来测量运动和旋转,目前针对 X 轴和 Y 轴运动进行了优化。
-
实时检测:手势识别响应时间为 150-300ms
-
内存高效:具有溢出预防的自动缓冲区管理
-
误报预防:检测前需要 3 个连续一致的结果
-
基于定时器的处理:非阻塞硬件定时器架构
-
手势分离:每个手势独立分析,避免相互干扰
tinyml-Fall/
├── src
├── _main.py # 基于定时器系统的主应用程序
├── mpu6500.py # 带m/s²缩放的MPU6500传感器驱动
├── random_forest.py # 预训练随机森林模型
├── tinyml.py # 带防抖机制的TinyML流水线
├── LICENSE
├── README.md
└── README_zh.md
-
平台:运行 MicroPython 的 Quectel 嵌入式模块
-
传感器:MPU6500 6 轴 IMU(3 轴加速度计 + 3 轴陀螺仪)
-
模型:随机森林分类器(3 类:0 =静止,1=行走, 2=摔倒类型)
-
采样:50Hz 传感器读取,20Hz 推理
-
检测:450ms 窗口内 3 个连续一致的结果
-
数据格式:加速度计(m/s²),陀螺仪(deg/s)
-
X/Y 轴运动 - 工作可靠,检测稳定
-
内存管理 - 缓冲区污染问题已解决
-
实时处理 - 基于定时器的架构已实现
-
防抖系统 - 误报预防功能正常工作
-
圆周运动 - 目前正在开发中
开始之前,请确保您具备以下前提条件:
-
硬件:
-
一块 QuecPython 开发板
-
计算机(Windows 7、Windows 10 或 Windows 11)
-
MPU6500 传感器
-
-
软件:
- 克隆仓库:
git clone https://github.com/QuecPython/Tinyml-Fall.git2.烧录固件: 按照说明将固件烧录到开发板上。
-
硬件连接: 将 MPU6500 传感器正确连接到开发板的 I2C 接口。
-
通过 Type-C 连接到主机计算机。
-
将代码下载到设备:
-
启动 QPYcom 调试工具。
-
将数据线连接到计算机。
-
按下开发板上的PWRKEY按钮上电。
-
按照说明将
src文件夹中的所有文件导入到模块的文件系统中,保持目录结构。
-
-
运行代码
-
选择
File标签页。 -
选择
_main.py脚本。 -
右键单击
Run执行脚本。
-
系统会自动实时检测手势。当识别到手势时,会输出分类结果(0、1、2 )并清除所有缓冲区,以防止来自先前手势的干扰。
-
检测延迟:理论最小值 150ms,实际 200-300ms
-
内存使用:总计 < 50KB
-
准确性:针对 X/Y 轴运动进行了优化