Skip to content

Latest commit

 

History

History
139 lines (70 loc) · 3.66 KB

File metadata and controls

139 lines (70 loc) · 3.66 KB

TinyML 摔倒检测系统

基于 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 传感器

  • 软件

    • 调试工具 QPYcom

    • QuecPython 固件(EG912U固件可在仓库的fw目录中找到)

    • Python 文本编辑器(例如 VSCodePyCharm

安装

  1. 克隆仓库:
git clone https://github.com/QuecPython/Tinyml-Fall.git

2.烧录固件: 按照说明将固件烧录到开发板上。

运行应用程序

  1. 硬件连接: 将 MPU6500 传感器正确连接到开发板的 I2C 接口。

  2. 通过 Type-C 连接到主机计算机。

  3. 将代码下载到设备:

    • 启动 QPYcom 调试工具。

    • 将数据线连接到计算机。

    • 按下开发板上的PWRKEY按钮上电。

    • 按照说明src文件夹中的所有文件导入到模块的文件系统中,保持目录结构。

  4. 运行代码

    • 选择File标签页。

    • 选择_main.py脚本。

    • 右键单击Run执行脚本。

使用方法

系统会自动实时检测手势。当识别到手势时,会输出分类结果(0、1、2 )并清除所有缓冲区,以防止来自先前手势的干扰。

性能

  • 检测延迟:理论最小值 150ms,实际 200-300ms

  • 内存使用:总计 < 50KB

  • 准确性:针对 X/Y 轴运动进行了优化