第一章:课程导学与开发环境搭建

1.1 AI on STM32 概述

说实话,我第一次听说要在STM32上跑AI,第一反应是「这能行吗?」。毕竟我们做嵌入式的,对MCU的资源太清楚了——几兆的Flash,几百K的RAM,跑个RTOS都精打细算,还要塞神经网络?

但后来我发现,这其实是把AI推理从云端「搬」到边缘设备上。说白了,就是让传感器数据在本地就被处理掉,不用上传到服务器。好处很明显:延迟低、功耗小、数据隐私有保障。

我做过一个项目,用STM32做电机故障预测。以前得把振动数据通过Wi-Fi传到服务器,来回一趟至少200ms。换成板载推理后,5ms就出结果了。嗯,这就是AI on STM32的魅力。

目前STM32支持的AI模型类型包括:

  • 分类模型:比如图像分类、声音识别
  • 回归模型:预测连续值,像温度预测
  • 异常检测:设备故障预警、入侵检测

你可能会问:「那能跑多大的模型?」以NUCLEO-H743ZI2为例,它有2MB Flash和1MB RAM,跑个几十KB的轻量级CNN完全没问题。我实测过MobileNet V1量化后大概300KB,推理一次约50ms。

核心要点:AI on STM32不是把整个TensorFlow搬上去,而是把训练好的模型经过量化、优化后,用X-CUBE-AI转换成STM32能跑的C代码。

1.2 STM32CubeMX 与 X-CUBE-AI 安装

这部分我踩过不少坑,跟大家分享一下我的安装流程。

1.2.1 安装STM32CubeMX

去ST官网下载最新版,我建议用6.8.0以上版本。安装时注意:

  • 路径不要有中文和空格
  • Java环境要提前装好(JDK 11+)
  • 安装完成后,记得更新固件包

我个人习惯把固件包放在单独的目录,方便管理。比如:D:\STM32Cube\Repository

1.2.2 安装X-CUBE-AI

X-CUBE-AI是ST官方的AI扩展包。安装方式有两种:

  1. 在线安装:在CubeMX的「Software Packs」里搜索X-CUBE-AI,一键安装
  2. 离线安装:从ST官网下载压缩包,手动解压到仓库目录

我曾经在离线安装时犯过一个低级错误——解压路径搞错了。X-CUBE-AI必须放在 Repository\STM32CubeExpansion_AI_V7.0.0 这样的格式下,否则CubeMX识别不到。

避坑指南:安装完成后,一定要在CubeMX的「Help」→「Manage embedded software packs」里确认X-CUBE-AI显示为绿色勾号。如果是红色叉号,说明没装成功。

1.2.3 验证安装

打开CubeMX,新建一个项目,选择NUCLEO-H743ZI2。在「Pinout & Configuration」页面,左侧列表应该能看到「X-CUBE-AI」选项。点进去,如果显示版本号,就说明装好了。

1.3 硬件平台介绍(NUCLEO-H743ZI2)

我们课程用的板子是NUCLEO-H743ZI2。为什么选它?

参数 数值 我的评价
主控芯片 STM32H743ZIT6 Cortex-M7,480MHz,够猛
Flash 2MB 装模型绰绰有余
SRAM 1MB 跑推理时做中间缓存
外设 USB、以太网、SD卡 方便数据采集和调试
调试接口 ST-LINK/V3 下载速度快,稳定

这块板子我最喜欢的是它的扩展接口——Arduino和ST morpho都有。我做过一个项目,直接插上摄像头模块和LCD屏,就搭出了一个边缘AI视觉终端。

嗯,这里要注意:H743的功耗不低,全速运行时大概200mA。如果做电池供电的项目,记得用低功耗模式。

1.4 开发流程全景图

整个AI on STM32的开发流程,我总结为5步:

  1. 模型训练:用Keras、PyTorch等框架训练模型
  2. 模型转换:用X-CUBE-AI把模型转成STM32能用的C代码
  3. 工程生成:CubeMX生成初始化代码,集成AI库
  4. 应用开发:写业务逻辑,调用AI推理接口
  5. 部署调试:下载到板子,用串口或调试器看结果

你想想看,这其实和传统嵌入式开发很像,只是多了一个「模型转换」的环节。我刚开始做的时候,总想着把整个模型训练流程也搬到板子上,后来发现完全没必要——训练在PC上完成,推理在MCU上跑,各司其职。

我的建议:第一次做的时候,先用ST官方提供的示例模型跑通流程。比如手势识别那个demo,从CubeMX生成到板子跑起来,半小时就能搞定。有了信心再上自己的模型。

最后说一句:开发环境搭建是这门课的基础。我见过太多人卡在安装这一步,然后放弃了整个AI on STM32的学习。其实没那么复杂,按部就班来就行。如果遇到问题,先看ST的官方文档,再不行就搜社区——我当年就是这么过来的。

下一章,我们会正式开始第一个实战项目:用X-CUBE-AI部署一个简单的分类模型。到时候我会手把手带你走完整个流程。