上一篇我们跑通了数据闭环,现在NanoEdge AI Studio,从「采集 → 训练 → 验证 → 出代码」
软件在两千多种模型组合中自动挑选,最终选中的冠军模型(Library ID 116,LSTM)实测指标如下:
• Quality Index(质量指数):99.0 分,接近满分;
• Balanced Accuracy(平衡准确率):100.00%,马达四种状态全部识别正确;
• 资源占用:RAM 3.7 KB、Flash 4.1 KB,单次推理 4.4 ms;
• 将 libneai.a 加载进工程、把采集程序改为把数据喂给模型,编译烧录后串口直接返回 CLASS DETECTED,与模拟仿真结果基本一致。实测试结果如下:

无需手动调参,软件自动完成特征提取、模型选择与压缩,把模型压到几 KB 直接跑在单片机上:
一、选定开发板与传感器
NanoEdge AI Studio(5.2.0)将流程分为五步:Project Settings → Signals → Benchmark → Validation → Deployment。
Project Settings 只需确定模型运行的开发板与采集的传感器类型:
• Target 选 NUCLEO-H533RE(STM32H533 开发板),右上角自动带出资源上限 272 KB RAM / 512 KB Flash;
• Sensor 选 Time Series → Accelerometer、3 Axes,对应三轴加速度计 LIS3DH;

图 1 Project Settings:选 NUCLEO-H533RE + Accelerometer 三轴,右上角标出 272KB RAM / 512KB Flash 资源上限
二、按四种状态分别采集
Signals 一步把「马达当前状态」转成可训练数据,提供导入文件、串口实时采集、创建数据采集器三种入口。本例采用串口采集,选好 COM 口与波特率 921600,点 START 开始录制。

图 2 Add signals:三种采集入口——导入文件 / 串口实时采集 / 创建数据采集器
关键是让软件知道每段数据属于哪个标签——将马达按四种状态各录一段,分别建成四个 Class:
• 停止(静止)、低速、中速、高速,一档一录,标签清晰;
• 每组数据缓冲区 3×256,对应三轴 × 256 采样点,录制时实时显示单轴波形与 FFT 频谱。
完成后,Signals 页将各 Class 的三轴时域波形与 FFT 频谱并排展示,四档差异一目了然——高速档抖动更密、能量更高。

图 3 Signals 页:四类状态各自的三轴时域波形与 FFT 频谱,不同档位差异一目了然
三、一键搜索最优模型
进入 Benchmark 点击开始,软件自动搜索整条机器学习流水线:是否降维、去趋势、用 STFT、提取特征、PCA,以及采用 CNN / LSTM / 随机森林等模型。本例共测试 21837 种库组合,耗时两个多小时。训练界面实时显示进度、质量指数与平衡准确率曲线,并高亮选中的 ML Pipeline。

图 4 Benchmark 训练中:实时显示进度、质量指数与平衡准确率曲线,下方为 ML Pipeline 与最佳库指标
无需理解内部节点,只需关注质量指数、平衡准确率与 RAM / Flash 占用。
四、模拟验证与选型
Validation 将候选模型排成成绩单,列出 Library ID、质量指数、平衡准确率、RAM、Flash、执行时间与模型类型。本例三个候选均为 100% 准确、99 分,需按体积与速度择优。
图 6 模型排行榜:Library 116(LSTM,RAM 3.7 KB / Flash 4.1 KB / 4.4 ms)体积与性能综合最优
点模型右侧播放键可打开 Emulator 模拟器:从串口喂入数据,实时显示 CLASS DETECTED 结果、概率分布柱状图与四类占比环形图,可切换不同模型反复验证。本例最终选定 Library ID 116(LSTM):四类全对、体积最小。

图 7 Emulator 模拟验证:喂入数据后输出 CLASS DETECTED,概率柱状图与四类占比环形图,可换模型反复验证
五、代码输出与上板
点 DEPLOY LIBRARY 进入 Deployment,工具链选 GNU Arm Embedded (GCC),编译选项(mfloat-abi、-fshort-enums)保持默认,即可导出静态库 libneai.a。

图 8 Deployment:选择 GNU Arm Embedded (GCC) 工具链与编译选项,导出 libneai.a
回到 STM32 IDE 工程,改动仅两处:
• 将 libneai.a 作为库加入项目、头文件加入包含路径;
• 把原采集程序改为将数据喂给模型的 classify 接口,函数返回值即判断结果(停止 / 低速 / 中速 / 高速)。

图 9 工程文件树:libneai.a 集成进 fetch_accel_data 工程,包含 ai_model_nanoeai 等模型文件
编译烧录后,上电即通过串口逐行输出 CLASS DETECTED,与模拟仿真结果基本一致,至此「采数据」到「单片机上实时判断」的链路完全跑通。测试视频:
六、小结
本次评测的最大感受:NanoEdge AI Studio 显著降低了机器学习在嵌入式上的落地门槛。全程无需手写模型代码,软件自动完成特征提取、模型选择与调参,最终产出一个仅几 KB、可直接在 Cortex-M33 上运行的库,用户只需喂入数据、读取结果。
感谢 DigiKey 与 EEPW 的支持,敬请期待下一篇。
我要赚赏金
