
1.简介 NanoEdge™ AI 库是 Cartesiam 推出的人工智能静态库,它可以帮助客户直接生成可以运行在嵌入式 Arm Cortex 处理器上的.a 静态库文件。 2021 年 ST 收购 Cartesiam,完善了 ST 在 AI 领域的生态,大大降低了客户使用 STM32 开发 AI 应用的难度。通过使用 NanoEdge AI Studio,用户只需要了解基本的 AI 概念,并提供相应的数据,便可以从众多 AI 算法库中智能搜索和生成出最符合用户应用的算法。 NanoEdge AI Studio 具备以下特点: • AI 库的搜索引擎。• 为嵌入式开发者量身定做。 • 通过抽象化数据科学和机器学习,降低用户开发难度。 • 快速部署机器学习,兼容任何 C 代码。 • 对比传统机器学习方法,使用最少量数据。 本文将介绍 NanoEdge AI Studio 的使用方法,并完成人体姿态识别的简单应用。 6 u# r I$ N1 P% m2.数据采集 在使用 NanoEdge AI Studio 之前,我们需要准备数据,数据来源可以是公开的数据集,也可以是自己采集的数据,还可以利用 NanoEdge AI Studio 采集数据。 ! C+ o7 g% F+ X9 j8 k. p本文将使用 sensorTile.box 完成数据的采集。 + q- ^) k2 q* M' I6 ], |2.1硬件介绍 ![]() 在 ST 官网搜索 STEVAL-MKSBOX1V1 可以查看关于开发板的基本内容,板载了丰富的运动传感器和温湿度传感器,并且具备 SD 卡,可以保存采集到的数据。板载的 USB 可以用于供电和下载程序,也可以通过 ST-LINK 和开发板连接进行调试和下载。USB 下载程序方法:我们这里使用 STM32 CubeProgrammer 下载程序。首先确保没有用电池供电,然后按住板上的 boot 按钮,连接 USB 到电脑,点击 CubeProgrammer 中如下图图 2所示的 connect。 x4 o+ \" q s( N' S![]() 6 k& r" a+ X1 p) j2 K4 e+ ? 连接成功后,选择好固件,然后填写下载地址,点击 Start Programming 即可完成下载。如图 3: ![]() 5 ?9 G7 [0 z- \: k8 Z f. \ 2.2 软件介绍 关于数据采集和后续的功能测试,推荐使用 FP-AI-SENSING1 这个软件包,可以在 ST官网搜索到。该软件包提供了基本的 BSP,包括按钮,LED,传感器驱动,SD 卡驱动,BLE驱动等。 : M- o* h+ t" O9 Z2 Y2 Y" `3 A# f除此之外,它还提供了一些功能可以帮助我们收集数据,包括可以通过 BLE 连接 ST Ble Sensor App,通过该 APP 配置板载传感器采样率,完成数据的采集,并将数据按一定格式保存到 SD 卡当中,本文将利用该方法采集加速度数据。 该软件包也实现了人体姿态识别和声音场景识别的 AI demo,可以在 ST BLE SensorAPP 上展示,其中的 demo 使用了 Cube.AI 工具做模型转换,和本文讨论的 NanoEdge AI 的方法不同,不在本文讨论范围中。 8 n9 T1 X/ X7 K2.3 数据采集步骤 1、编译和烧录程序 下载完 FP-AI-SENSING1 软件包后,需要先编译 bootloader,工程路径位于: FP-AI-SENSING1_V4.0.3\Projects\STM32L4R9ZI-SensorTile.box\Examples\BootLoader 编译完成后,下载到 sensorTile.box 当中即可。 然后编译应用程序,工程路径位于: FP-AI-SENSING1_V4.0.3\Projects\STM32L4R9ZI-SensorTile.box\Applications\SENSING1 编译完成后,下载到 sensorTile.box 当中,当上电启动后,绿灯常亮,表明开发板初始化正常完成。蓝色 LED 灯闪烁,表明 BLE 正处于广播状态。 % M8 [9 S0 W. H* r Q注意: • bootloader 的下载地址为 0x08000000 • App 的下载地址为 0x08004000 • 当使用电池供电,长按 PWR 按钮,可以开机或关机。在后续采集运动姿态数据时,我们需要使用电池供电。 • 如有需要,可通过 USB 给电池充电,充电过程中,红色 LED 会闪烁。 ![]() , j' j* X& z9 x) b" e2 I) x 2、ST BLE Sensor APP 该 APP 由 ST 提供,可以展示运动传感器和温湿度传感器,您可从 ST 官网下载(搜索STBLESensor),或者 iPhone 通过苹果商店可以下载,Android 通过 Google Play 或其他第三方下载商店下载。 g+ o; {+ @; Z, K$ T+ X1 A: m给 sensorTile.box 上电后,开发板会自动进入广播状态,并且蓝色 LED 闪烁,从 ST BLE Sensor APP 点击“开始扫描”,搜索到开发板(sensorTile.box 一般默认命名为 BAI_400)之后,点击连接就可以连接到开发板。连接完成后的展示界面如下: _& I+ |7 Q8 f' W) k, k' d & X& f7 J1 p8 P+ G( Z7 k* m![]() / y, G3 `* T% N2 c 可以通过该 APP 查看运动传感器的数据曲线: ![]() % V- x! Y8 Z: k* V2 M: o 通过该 APP 进行数据采集的方法:点击左上角菜单,并选择 Data Log,如下: 0 A* [( Z/ ] w/ J& D; b& w![]() q. U0 q$ e6 N" ` ' C- v6 X" L* `+ n 在数据采集界面可以选择板载的各种不同的传感器,并设置采样率。本文需要选择加速度传感器,并配置采样率为 52Hz: $ i* a# j) X5 E* i- \4 A0 H, E9 N# h+ M1 w+ L ![]() 可以通过 ADD LABEL 来添加一个标签,然后打开该标签,点击 START LOGGING 进行数据采集,采集完成后,点击 STOP LOGGING 完成数据采集。 , w+ A$ p" }6 R1 L+ c8 R% W$ x![]() 7 }& O9 ~, [! q. U1 _ 6 x& y! \5 i8 a 使用读卡器,读取 SD 卡里面的数据,保存为 CSV 格式,如下: . i# O2 D I) ~* \![]() ) {) \. ]1 B b7 Q$ N: ~. `2 E ![]() 7 _. h1 Q6 b4 Y7 t% _( W; I# p 数据起始有一些标注,其中 Stationary 一行就是我们采集数据所打的标签,每一行代表一个时间点采集到的三轴加速度数据,从时间上可以看出约 20ms 进行一次采样,所以采样率约为50Hz,和之前在 APP 中的设置是一致的,采集到的数据格式和我们最终在 NanoEdge AI studio中使用的格式是有差异的,需要进行一定的转换,具体转换方法在后面进行介绍。 6 V" c1 [8 ?* P0 X: }5 Z* v( B3、数据采集 在正式采集数据之前有些问题需要考虑清楚: • 采样率:如果想要比较好的恢复原始信号,采样率必须大于原信号最大频率的 2 倍。但是,目前是无法知道原始信号的最大频率的,比较可行的方法是先以 52Hz 的采样率对数据采集,采集完成后对信号进行分析,看是否满足,如果不满足再进行调整。 • 采样时间:总体的采样时间可以通过 APP 进行灵活的开关,单条信号的采样时间需要自己定义,需要在后续的处理中进行调整。 ; c0 _; |( P% }: F2 s g• 标签:FP-AI-SENSING1 的软件包人体姿态识别 demo 中,默认包含以下标签:HAR_STATIONARY(站立),HAR_WALKING(行走),HAR_FASTWALKING(快走),HAR_JOGGING(慢跑), HAR_BIKING(骑单车),HAR_DRIVING(开车),HAR_STAIRS(上下楼梯),Sensor APP 中也有对应的 BLE 协议,可以方便的从手机上看到人体姿态活动识别结果,我们从中选择一部分作为测试即可,其中骑单车和开车数据采集较麻烦,可以直接去掉,其余的通过上面介绍的方法通过 ST BLE Sensor APP 进行采集。 • 采集方法:将 SensorTile.box 使用电池供电,放置在裤子的前方口袋中,使用 ST BLE Sensor APP 连接后,按照上文中介绍的方法设置好标签,然后进行相应的动作对数据进行采集。 9 J! t: T( O; |3 |7 X8 C0 s采集数据的方法之所以选择使用 ST BLE Sensor APP 设置的方法采集,而不是直接去修改固件,是因为当调整这些采集参数的时候,APP 会更方便一些,不用反复编译和烧录代码。 $ D) ~5 a0 h* z, r+ v' y+ N, y1 u) q " H) D; f0 O8 v' }" C1 W |
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南
适用于STM32微控制器的ΣΔ数字接口入门