本帖最后由 电子烂人 于 2024-9-18 20:24 编辑
#申请原创# #申请开发板#0.前言
前两天跟我姥爷打视频,姥爷让我多学学“欸哎”,帮他做个炒菜的“欸哎”机器人。不得不说现代传媒真的厉害,古稀的老人都对前沿技术略知一二。
手上的事放一放,先来做NANOEDGE AI 的部分。炒菜是做不了,整个颠勺还是行的(笑)。
1.NANOEDGE AI简介边缘AI是一种将人工智能处理从云端转移到网络边缘的技术,它使数据处理更接近数据源,如传感器或设备。这种方法降低了延迟,提高了带宽效率,增强了隐私和安全性,并且使得系统更加可靠。它适用于需要快速响应的应用,如自动驾驶、工业自动化和实时监控,通过在边缘设备上运行优化的机器学习算法,实现实时数据处理和智能决策。
NanoEdge AI Studio 是由意法半导体(STMicroelectronics)开发的一款自动化机器学习(ML)工具,专为STM32微控制器的开发人员设计。这个工具是免费的,可以帮助用户为STM32微控制器或智能传感器创建和集成机器学习模型。NanoEdge AI Studio 支持异常检测、分类或回归库的创建,并且能够与基于Cortex-M的Arduino开发板原生兼容。
(图源:wiki.stmicroelectronics.cn)
这个板子上集成了诸多传感器和通信方式,简直是为NANOEDGE AI这盘醋所包的饺子。
2.软件部分配置
软件的下载和使用这里不再赘述,今年初NANOEDGE AI studio 开放免费使用,直接在网站注册激活码即可。
打开后界面如图:
这里提供了四种训练方法,异常检测(AD)、多类分类(NCC)、单类分类(1CC)和外推法(E)。
简单论述四种方法:
- 异常检测(anomaly detection[color=var(--content-h1-fg)]):[color=var(--content-h1-fg)]让一个系统从数据中学习到某些正常的特征,从而诊断出非正常的数据。
- N类分类(N-class classification):将数据集中的每个实例分类到N个不同的类别中的某一个
- 一类分类(1-class classification):从数据中识别出单个类别的实例,同时忽略或识别不属于该类别的所有其他实例。
- 外推法(extrapolation):根据已有数据以及模型(函数)预测未知区域的函数值,预测的点在已有数据范围外,即是extrapolation(外推)。
这里可以直接用这块板子的DATELOG部分:
这里可以选择传感器和相关参数,这次选择用ISM330的加速度计:
之后会生成一个工程代码的ZIP,里面包含
其中的DOCS是WIKI的网站,可以按照WIKI来
另外还有一种方法,从串口采集数据,这种办法更方便,省去了前面搞数据的麻烦
板卡和数据选择:
代码部分:此部分代码要求时间固定,方便软件读取对应的参数,我用的定时进入中断回调函数:
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *hitm)
另外数据发送部分改用USB虚拟串口:
if(USB_Datalog=1)
size = sprintf(data_s, " %d, %d, %d\r\n ",
(int)rptr->acc.x, (int)rptr->acc.y, (int)rptr->acc.z);
CDC_Transmit_FS(( uint8_t * )data_s, size);
}
这个代码用之前ISM330的,但是之前那个有BUG,采集速度不行,可以从FP-DATELOG包下载代码
采集一定数据之后,还需要再采集异常的数据:
(这部分东西有点多,等我更新)
|