1. 项目简介
本项目在 ST NUCLEO-C562RE 开发板(STM32C562RE,Cortex-M33 @ 144 MHz)上基于 Zephyr RTOS v4.4.0 实现边缘 AI 电机状态检测:用 Grove LIS3DHTR 三轴加速度计采集电机振动,在 MCU 本地经 NanoEdge AI 知识库完成 4 类状态分类(停止、正常运行、异常抖动、堵转),结果同时输出到串口与Grove SSD1315 OLED,异常时 Grove 蜂鸣器报警。用户通过板载 B1 按键的短按完成电机启停、故障恢复。
2. 项目介绍
背景:电机是旋转设备中故障率最高的部件,传统振动监测依赖工控机 或云端推理,存在成本高、延迟大、断网失明等问题。
目标:MCU 本地完成 2 类状态实时分类;异常时本地声光报警;运行 参数无需重新烧录即可通过按键菜单调整。
范围:单路 28BYJ-48 齿轮步进电机、单路加速度计;电机驱动仅 控制启停与转速,不做位置闭环。
3. 硬件平台与软件环境
项目规格
| 开发板 | ST NUCLEO-C562RE |
| MCU | STM32C562RE,Cortex-M33 @ 144 MHz,512 KiB Flash / 128 KiB SRAM |
| 板载 LED | LD1 = PA5(低电平点亮),alias led0 |
| 用户按键 | B1 = PC13,alias sw0 |
| 控制台 | USART2(PA2/PA3),115200 baud |
| 加速度计 | Grove 三轴数字加速度计 LIS3DHTR,I2C1 地址 0x19 |
| OLED | Grove SSD1315 0.96 黄蓝屏,I2C1 地址 0x3C,128x64 |
| 蜂鸣器 | Grove 有源蜂鸣器,D6/PB10 数字电平控制 |
| 电机 | 齿轮步进电机驱动套件(28BYJ-48 + ULN2003),D4/D7/D8/D9 |
| RTOS | Zephyr v4.4.0,Zephyr SDK 0.17.x |
4. 系统架构设计
4.1 模块划分

4.2 中断与定时器划分中断 / 定时器用途上下文
| sw_isr(PC13 双沿) | 测量按压时长,产生 SHORT/LONG 事件 | ISR |
| led_timer(k_timer) | LD1 周期翻转 | ISR |
| step_timer(k_timer) | 步进电机八拍换相,周期由转速换算 | ISR |
| 系统 SysTick(1 kHz) | 调度器与上述定时器时基 | 内核 |
4.3 数据流图

5. 功能实现
5.1 启动信息
print_boot_banner 输出板卡名称(CONFIG_BOARD)、编译时间 (DATE/TIME)、Zephyr 版本、模式、采样率、窗口长度与外设清单。
5.2 OLED 显示
oled_display 模块使用 Display API 驱动 SSD1315,内置 5x7 点阵字体与 1024 字节静态显存,提供两屏:运行状态屏(电机启停、分类、转速、 阈值、置信度/报警倒计时)与设置菜单屏。显示写入统一由发送线程完成, 避免多线程竞争。
5.3 按键处理与参数菜单
button_ctrl 模块在 PC13 双沿中断中计时:30 ms 消抖,小于 2 s 为短按, 大于等于 2 s 为长按。主线程 control_loop 按当前状态解释事件:
状态短按长按
| 正常/停止 | 启动或停止电机 | 进入设置菜单 |
| 异常报警 | 故障恢复(停机、解除锁存) | - |
| 菜单内 | 循环切换当前项选项 | 提交本项,下一项/退出 |
可调参数:转速(5/8/10/12/15 rpm)、报警置信度阈值(60/70/80/90%)、 蜂鸣器报警时长(5/10/20/30 s)。转速在电机运行中提交时立即生效。
5.4 多任务调度
采集、处理、发送三线程,优先级依次为 2、3、4;线程间以 k_msgq 连接, 无忙等待。主线程初始化后转为按键控制循环。
5.5 加速度采集与 NanoEdge AI 数据
accel_sensor 经 Sensor API 设置 100 Hz、+/-2 g,用 SENSOR_CHAN_ACCEL_XYZ 一次读取三轴并换算为 mg。训练模式 (CONFIG_APP_TRAINING_MODE=y)下处理线程按 "seq,x,y,z,label" 输出 CSV;短按 B1 切换 4 类标签,数据可直接导入 NanoEdge AI Studio。
5.6 推理与异常报警
motor_classifier 将窗口展平为 float[窗口*3] 并归一化到 [-1,1],调用 neai_classify。置信度不低于阈值的 JITTER/STALL 结果锁存报警:LED 5 Hz 快闪、蜂鸣器发声;报警超时后蜂鸣器停止但状态保持,须用户短按恢复。
6. 功能展示
推理模式串口与屏幕预期(节选):
Motor State Detector based on Edge AI Board : nucleo_c562re Build : Sep 21 2026 10:00:00 [accel] seq=9 x=-12 y=18 z=1024 [state] STOPPED conf=70% [state] RUNNING_NORMAL conf=75% [state] JITTER conf=80% <- OLED: ALARM! LEFT:10S,蜂鸣器响,LED 快闪 [ctrl] fault recovered, motor stopped
OLED 同步显示对应四行文本;

7. 演示视频
8. 传送门
9. 总结
实现了环境搭建与声光控制、多任务调度、启动信息、OLED显示、按键菜单与参数调整、加速度采集、NanoEdge AI 数据/训练/部署、异常报警与恢复。
我要赚赏金
