发作品签到
专业版

【电子法棒】STM32部署CNN实现轨迹识别控制方案

工程标签

442
0
0
0

简介

stm32部署卷积神经网络,nnom推理TensorFlow训练的模型,通过nnom的移植优化模型以适应嵌入式环境,案例通过红外收发模块对设备的控制,通过QT上位机对模型进行训练。

简介:stm32部署卷积神经网络,nnom推理TensorFlow训练的模型,通过nnom的移植优化模型以适应嵌入式环境,案例通过红外收发模块对设备的控制,通过QT上位机对模型进行训练。

开源协议

GPL 3.0

创建时间:2024-10-27 10:59:10更新时间:2024-11-05 05:59:20

描述

c4aa4c53b962efb757d301b2d99c8b8.jpg

视频链接:

[B站视频--
功能演示及介绍](【【完整开源】哈利波特用了都说好的电子魔杖!(STM32)】 https://www.bilibili.com/video/BV1XHDEYMETw/?share_source=copy_web&vd_source=abf17f209793b0dbe622a2b25b0cb7c9/)

项目简介

低成本的stm32芯片上部署一个卷积神经网络动作分类模型,nnom推理TensorFlow训练好的模型,通过nnom的移植优化模型以适应嵌入式环境,包括量化和模型裁剪,以减少内存占用和计算复杂度,数据放到输入数组,运行模型推理函数,即可读输出数组,实现mpu6050的位姿动作轨迹运动的精确识别,来控制设备的开关(例如红外设备),并可以通过上位机(QT)实现模型的训练。
再次感谢 Civic_crab大佬 提供的帮助!!!以及 逸星 提供的3D模型磨具和 梳桦 提供的美工!!!

实物展示

实物有些做旧效果,蹭漆也不用重涂hhhhh

aa4fef474a8cdd5616a75d3428902ae.jpg

993ff8de627a841d972dc804b73ace5.jpg

9404b233c03fcaab22ccdd7714ffd20.jpg

5cdd1d0cbe8159423bd432bfd3ee7e7.jpg

项目功能

总体逻辑功能说明

系统启动与模式切换
  • 系统启动:主板上电后,设备默认进入 模式0
  • 模式切换
    :按住按钮0.5 秒后松开,系统将在模式0和模式1之间切换。
    • 长按松开(>0.5秒):用于模式切换。
    • 短按松开(<0.5秒):用于触发特定操作(如动作识别采样)。
动作识别操作
  • 在任何模式下,短按按钮并松开会触发 IMU传感器的1.5秒数据采样。采集到的数据将输入至模型中进行 动作识别
红外模块指令模式
  • 模式0:动作识别完成后,模块发送与识别动作对应的 预录制红外信号
  • 模式1:动作识别完成后,模块进入 红外信号录制模式,等待并录制与识别动作对应的红外信号。
Type-C接口功能
  • 串口调试:通过 Type-C 接口进行设备调试。
  • 电池充电:当连接 Type-C 时,设备优先使用 Type-C 电源供电,而非电池。
电源管理
  • 电源开关
    :控制设备的 3.3V 主电源。
    • 当电源开关关闭时,电池可以充电,但 STM32、IMU 等组件不会上电工作
LED状态指示灯
  • 系统状态指示
    :按钮前的 LED 指示系统状态,有以下五种模式:
    • 10Hz 闪烁:快速指示状态
    • 5Hz 闪烁:中速指示状态
    • 2Hz 闪烁:低速指示状态
    • 常亮:系统稳定运行
    • 熄灭:系统关闭或待机
Qt 上位机模型训练
  • 模型训练功能
    :使用 Qt 上位机进行动作识别模型的训练和管理。
    • 数据采集:上位机通过串口连接设备,从设备端接收 IMU 传感器的采样数据。
    • 模型训练:基于采集数据进行模型训练,以提高动作识别的准确度。
    • 模型管理:支持模型保存、加载和更新,可管理不同动作集合的训练模型。
    • 实时调试:支持实时调试,监控模型的识别精度和设备响应情况。

项目参数

weight文件分别提供面包板实现的以及EVB板实现的两种,利于验证测试,如下所示。
1730029756449.jpg
更多文件以及训练模型的上位机都位于下述目录中。
1730029865865.jpg
2.jpg

原理解析(硬件说明)

以下是对该原理图的个人分析:
外设模块接口处:
1.jpg
电源部分分析:
1.TP4056:这是锂电池充电管理芯片,负责对锂离子电池进行充电管理,具有多种保护功能,如过充保护、过放保护等。通过外部电阻设置充电电流等参数。
2.可通过USB接口以及电池输入系统供电,电源选择,用于根据特定条件选择合适的电源输入,例如优先选择 USB 电源,当 USB 不可用时切换到其他电源。
3.22uH 电感:在电源电路中可能起到滤波、储能等作用,以稳定电流和电压。
4.10uF、4.7kΩ 电阻、0.1uF 电容等:这些元件在电路中起到滤波、去耦、分压等作用,以提高电源的稳定性和抗干扰能力。
5.充电状态指示灯,用于显示电池的充电状态,如充电中、充满等。
6.TYPE-C:提供一种连接接口,用于充电输入 以及 uart数据传输。
7.R-10kΩ、4.7kΩ 电阻:用于分压、限流等作用,调节电路中的电流和电压。
8.TEMP:用于连接温度传感器,监测电池温度。当温度超出设定范围时,芯片可以暂停充电以保护电池。
1730030572243.jpg

软件代码

Github链接,Github链接电子法棒

1730080157296.png

实物图

硬件顶部
image-20240923162410900.png
硬件底部
image-20240923162420708.png

上位机训练模型程序(QT)

上位机程序
1730028835461.jpg

参考资料 1
参考资料 2

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
演示视频.mp4
5
2
ProProject_Magic_wand_2024-10-27.epro
9
3
BOM_Board1_PCB1_2024-11-03.xlsx
4
4
Gerber_PCB1_2024-11-03.zip
5
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航