STM32 AI实验课程—HAR在STM32L4上的实现

2023-04-11 05:30   372   0  

课程目的:旨在为AI深度学习解决方案提供关于ST生态系统的实践体验


实验步骤:




下载AI演示项目到ST开发板上


借助智能手机/平板电脑上的应用程序,将传感器数据和标签记录在ST开发板上


给定的Python脚本将处理数据集并训练NN模型




在STM32CubeMX.AI工具的帮助下,将神经网络训练好的模型导入到STM32项目中


相关软硬件简介


软硬件需求列表


58cd48ff-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


IoT开发板—B-L475E-IOT01A


58cd4900-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


FP-AI-SENSING1


  • AI特定功能:训练用的数据集、数据标注、STM32模型转换对应代码

  • 其他功能:使用RTOS实现低功耗、手机应用软件“ST BLE Sensor”


58cd4901-ac51-11ed-bcd2-b8ca3a6cb5c4.png


实验1:STM32固件下载和演示测试


连接B-L475-IOT01A


  • 用Micro USB线连接到B-L475-IOT01A

  • 连接之后,驱动会自动安装,请稍等一会儿


58cd4902-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


在ST-LINK(调试器)驱动程序已正确安装的情况下,端口(LD6)附近的指示灯将切换为红色


58cd4903-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


ST-LINK驱动安装


58cd4904-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


ST-LINK驱动安装检查


  • 还可以在设备管理器的端口中检查是否会出现新的虚拟COM端口


58cd4905-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


B-L475-IOT01A默认固件下载


58cd4906-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


打开工程


  • 双击SENSING1.eww,打开工程(IAR)


58cd4907-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


修改main.c文件


修改main.c文件中的InitBlueNRG_Stack(void)函数,BoardName字符串将是手机/平板APP中显示的开发板名字


58cd4908-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


FP-AI-SENSING1编译及下载


59f9209a-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


单击Rebuild all,然后单击Download and Debug按钮。将固件成功下载到STM32后,单击Stop按钮


Open the FW project in CubeIDE


59f9209b-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


修改main.c文件


修改main.c文件中的Init_BlueNRG_Stack (void)函数,BoardName字符串将是手机/平板APP中显示的开发板名字


59f9209c-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


Build the code


59f9209d-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


下载到开发板


59f9209e-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


ST BLE Sensor App


BLE Sensor应用程序。选择BLE名称;在下面的选项卡中选择“Activity Recognition”;晃动开发板,确认活动将从“Still”变为“Walking”或“Running”。


59f9209f-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


实验2:数据收集和神经网络训练


数据收集


使用ST BLE Sensor应用程序,我们现在可以收集特定状态(步行、慢跑、静止、楼梯)的运动传感器数据,并标记它们,以便通过重新训练神经网络来更新它。


  • 数据记录功能可用于使用户能够创建用于训练其NN模型的数据集

  • 文件包中还提供了用于模型重新培训的预处理Python脚本


59f920a0-ac51-11ed-bcd2-b8ca3a6cb5c4.webp59f920a1-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


在记录新手势的数据时,请注意以下细节:先启动日志,再打开标签。


手势完成后,可以禁用手势标签(手势末尾也会做注释)并停止日志(关闭.csv文件)。


59f920a2-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


  1. 断开USB连接

  2. 将跳线从位置“1-2”移动到“5-6”

  3. 将USB电缆连接到USB OTG端口

  4. 在保持按下“USER”(用户)按钮的同时,还按下“Reset”(复位)按钮

  5. 先松开“Reset”(重置)按钮后,再松开“USER”(用户)按钮


59f920a3-ac51-11ed-bcd2-b8ca3a6cb5c4.webp59f920a4-ac51-11ed-bcd2-b8ca3a6cb5c4.webp59f920a5-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


神经网络训练


59f920a6-ac51-11ed-bcd2-b8ca3a6cb5c4.webp59f920a7-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


Python脚本命令行参数选项


59f920a8-ac51-11ed-bcd2-b8ca3a6cb5c4.webp


实验3:导入更新的网络模型并下载


STM32固件更新


  • 为了生成模型文件我们需要创建一个新的CubeMX项目


59f920a9-ac51-11ed-bcd2-b8ca3a6cb5c4.webp59f920aa-ac51-11ed-bcd2-b8ca3a6cb5c4.webp5b28eb44-ac51-11ed-bcd2-b8ca3a6cb5c4.webp5b28eb45-ac51-11ed-bcd2-b8ca3a6cb5c4.webp5b28eb46-ac51-11ed-bcd2-b8ca3a6cb5c4.webp5b28eb47-ac51-11ed-bcd2-b8ca3a6cb5c4.webp5b28eb48-ac51-11ed-bcd2-b8ca3a6cb5c4.webp




登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。