【let'sdo | 2026年第3期】基于边缘AI的电机状态检测——开箱贴
非常的荣幸此次参加了 Let's do 2026 年第 3 期活动,此次命题是 基于边缘AI的电机状态检测。前段时间收到了所需要的物料,这次进行一个简单的介绍和开发计划的规划。
主控选择
关于我的主控的选择,我选择的是 NUCLEO-H533RE 这款板子,看中的是它拥有较高的主频,软件生态成熟,算力高,可以跑一点轻量的边缘推理模型(比如对电机振动信号做特征提取和分类),支持 Arm TrustZone,隔离安全代码和普通应用代码等性能优势,还有就是此次活动要求的两个必选外设分别是 LIS3DH 三轴加速度计扩展板和 ULN2003 + 28BYJ-48 步进电机驱动套装和可选外设 Seeed Technology 的蜂鸣器。
逐个拆箱介绍
NUCLEO-H533RE

较高的主频与数据处理能力:250 MHz(这个数字让人眼前一亮哈哈)Cortex-M33 内核,集成硬件浮点运算单元(FPU)和 DSP 指令(FPU 和 DSP 对于电机控制等相关的控制太方便了,笔者的最爱)
硬件安全性突出:支持 Arm TrustZone,隔离安全代码和普通应用代码,提供 AES 等硬件加密加速能力,以及安全启动相关功能(虽然我不用,但是多多益善啦)
通信接口丰富、现代化:不仅拥有 UART、SPI、I²C 等基本外设,还拥有现代化的 FDCAN(注意:需要自己外接 CAN 收发器),较为灵活,当然,还拥有基本的 ADC、DAC、PWM 等功能(可以一次性将外设学完,感觉未来将代替我的恩师 STM32F103C8T6)
自带 ST-LINK,优化开发体验和降低调试难度:相信学习嵌入式的各位每次调试最难受的就是自己接入下载器的线了,真的是杜邦线满天飞
LIS3DH 三轴加速度计扩展板

核心是 LIS3DH 这颗超低功耗三轴加速度计,量程可在 ±2g 到 ±16g 之间切换,通信采用 I²C 接口,还集成了 FIFO 和中断功能。
对于项目来说,FIFO 很关键——可以让传感器先攒一批采样数据再一次性读出,减轻主控频繁读寄存器的负担,可以很好的进行数据同步操作。例如三轴角速度和三轴加速度的同步获取可以通过 Mahony 算法解算出此时的欧拉角。
同时量程的可调性保证了我们此时的精度和范围的选择。同时板子是 Grove 接口形态,接线真是方便(笔者就喜欢接线方便的)。
ULN2003 + 28BYJ-48 步进电机驱动套装

步进电机好处是转角可控、转速可控,方便我制造出不同的运行状态(正常转、堵转、变速等),给后面的“状态检测”提供可复现的实验对象。ULN2003 驱动板上还带了几颗指示灯,通电后能直观看到四相的通断节奏,调试很直观。
Seeed Technology 的蜂鸣器

蜂鸣器的作用就是对用户进行提醒的功能,Seeed Technology 的蜂鸣器采用 PWM 的方式进行,我们可以很方便的根据不同的安全等级控制此时的音量。
开发计划
好了,物料介绍差不多了,接下来说说我的开发计划吧,注意 划重点:
对于这些任务的开发都是采用现代化的 vscode+cmake(可以看看我之前写的 vscode的cmake环境配置 - 杰杰的文章 - 知乎 这篇文章)进行开发,同时将不再采用 C语言 进行,而是采用 C++ 来进行。
第一篇首先是搭建开发环境和配好时钟来完成点灯大师的成就。
第二篇是使用 PWM 驱动蜂鸣器演奏动听的音乐(请相信笔者的艺术细胞,虽然笔者自己也不相信就是了)。
第三篇是进行 LIS3DH 的 I²C 读取,把三轴加速度数据稳定采上来,验证 FIFO 和中断。
第四篇是使电机在 ULN2003 驱动下正常转起来,并能人为制造几种运行状态。
我要赚赏金
