这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【let'sdo|2026年第3期】05成果帖 NanoEdgeAIStudio

共3条 1/1 1 跳转至页

【let'sdo|2026年第3期】05成果帖 NanoEdgeAIStudio|数据收集、处理、验证、代码一键完成,Simplypowerful!

助工
2026-10-29 13:45:46     打赏

上一篇我们跑通了数据闭环,现在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,与模拟仿真结果基本一致。实测试结果如下:

模型实测输出.gif

无需手动调参,软件自动完成特征提取、模型选择与压缩,把模型压到几 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;

image.png

图 1  Project Settings:选 NUCLEO-H533RE + Accelerometer 三轴,右上角标出 272KB RAM / 512KB Flash 资源上限


二、按四种状态分别采集

Signals 一步把「马达当前状态」转成可训练数据,提供导入文件、串口实时采集、创建数据采集器三种入口。本例采用串口采集,选好 COM 口与波特率 921600,点 START 开始录制。

image.png

图 2  Add signals:三种采集入口——导入文件 / 串口实时采集 / 创建数据采集器


关键是让软件知道每段数据属于哪个标签——将马达按四种状态各录一段,分别建成四个 Class:

• 停止(静止)、低速、中速、高速,一档一录,标签清晰;

• 每组数据缓冲区 3×256,对应三轴 × 256 采样点,录制时实时显示单轴波形与 FFT 频谱。

完成后,Signals 页将各 Class 的三轴时域波形与 FFT 频谱并排展示,四档差异一目了然——高速档抖动更密、能量更高。

image.png

图 3  Signals 页:四类状态各自的三轴时域波形与 FFT 频谱,不同档位差异一目了然


三、一键搜索最优模型

进入 Benchmark 点击开始,软件自动搜索整条机器学习流水线:是否降维、去趋势、用 STFT、提取特征、PCA,以及采用 CNN / LSTM / 随机森林等模型。本例共测试 21837 种库组合,耗时两个多小时。训练界面实时显示进度、质量指数与平衡准确率曲线,并高亮选中的 ML Pipeline。

image.png

图 4  Benchmark 训练中:实时显示进度、质量指数与平衡准确率曲线,下方为 ML Pipeline 与最佳库指标


无需理解内部节点,只需关注质量指数、平衡准确率与 RAM / Flash 占用。

四、模拟验证与选型

Validation 将候选模型排成成绩单,列出 Library ID、质量指数、平衡准确率、RAM、Flash、执行时间与模型类型。本例三个候选均为 100% 准确、99 分,需按体积与速度择优。image.png

图 6  模型排行榜:Library 116(LSTM,RAM 3.7 KB / Flash 4.1 KB / 4.4 ms)体积与性能综合最优

点模型右侧播放键可打开 Emulator 模拟器:从串口喂入数据,实时显示 CLASS DETECTED 结果、概率分布柱状图与四类占比环形图,可切换不同模型反复验证。本例最终选定 Library ID 116(LSTM):四类全对、体积最小。

模型模拟测试.gif

图 7  Emulator 模拟验证:喂入数据后输出 CLASS DETECTED,概率柱状图与四类占比环形图,可换模型反复验证

五、代码输出与上板

点 DEPLOY LIBRARY 进入 Deployment,工具链选 GNU Arm Embedded (GCC),编译选项(mfloat-abi、-fshort-enums)保持默认,即可导出静态库 libneai.a。

image.png

图 8  Deployment:选择 GNU Arm Embedded (GCC) 工具链与编译选项,导出 libneai.a

回到 STM32 IDE 工程,改动仅两处:

• 将 libneai.a 作为库加入项目、头文件加入包含路径;

• 把原采集程序改为将数据喂给模型的 classify 接口,函数返回值即判断结果(停止 / 低速 / 中速 / 高速)。

image.png

图 9  工程文件树:libneai.a 集成进 fetch_accel_data 工程,包含 ai_model_nanoeai 等模型文件

编译烧录后,上电即通过串口逐行输出 CLASS DETECTED,与模拟仿真结果基本一致,至此「采数据」到「单片机上实时判断」的链路完全跑通。测试视频:

六、小结

  本次评测的最大感受:NanoEdge AI Studio 显著降低了机器学习在嵌入式上的落地门槛。全程无需手写模型代码,软件自动完成特征提取、模型选择与调参,最终产出一个仅几 KB、可直接在 Cortex-M33 上运行的库,用户只需喂入数据、读取结果。

感谢 DigiKey 与 EEPW 的支持,敬请期待下一篇。





关键词: NanoEdgeAI     Studio     数据     收集     处    

高工
2026-10-29 20:33:31     打赏
2楼

你怎么判断异常数据?我训了一晚上,最高也就74的准确率



助工
2026-10-29 21:14:11     打赏
3楼

https://forum.eepw.com.cn/thread/402069/1
https://forum.eepw.com.cn/thread/402081/1

可以先用前面介绍的工具,直观的看了下马达振动和3D传感器输出的状态,确认一下数据是正确的,振动是可检测的,再读数据训练。

六、附上代码与在线验证

完整的初始化 + 读取 + 打印代码已放到在线页面,可以直接查看寄存器读写时序和实际读取效果,方便对照自己板子调试:

•  在线演示 / 测试地址:https://web.unito.top/i2c/

H533RE开发板程序:letisdo_3d.zip



共3条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]