如何使用ASM330LHHX在汽车应用中使用机器学习核心
机器学习核心(MLC)是传感器ASIC中的一个硬连线核心,具有开发人工智能算法的功能。巨大的优势是降低了整个系统的功耗,因为一些事件检测。。。
1.软件
我们在这篇知识文章中使用的软件工具是Unico GUI,图形用户界面(可用于Linux、MacOS和Windows),支持广泛的传感器,并允许构建MLC程序(即使没有任何板连接=离线模式)和生成传感器配置文件(UCF文件)。
2.硬件
这个STEVAL-MKI109V3将在本教程中用于配置MEMS传感器和评估传感器输出。此外,它还具有一些高级功能,例如:
-
可编程电压电源
-
电流消耗测量
-
和通信协议,可以在SPI和I²C之间更改
STEVAL-MKI109V3可以与不同的DIL24适配器板一起使用。在本教程中,我们将使用STEVAL-MKI212V1,它是用于ASM330LHHX,具有嵌入式机器学习核心的汽车应用IMU。
- MEMS传感器ST资源页
- 探索MEMS传感器中的机器学习核心的ST资源页面
- 申请说明AN5296开机器学习核心嵌入ASM330LHXX型
3.如何构建MLC配置
作为第一步,在PC上启动Unico GUI,并选择适配器板STEVAL-MKI212V1,其中包含ASM330LHHX,这是本知识文章中使用的带有嵌入式机器学习核心的汽车IMU。

在Unico GUI主窗口中,通过单击选项选项卡,可以配置主加速度计和陀螺仪设置。对于本例,已选择:
-
AXL-2g满量程和104Hz输出数据速率
-
陀螺仪-250dps满刻度和104Hz输出数据速率

点击顶部栏上的“开始”按钮,我们将启用装卸工MKI109V3以及我们的电脑。

点击绘图工具时,我们可以实时可视化来自传感器的数据。


要开始记录,需要按下“加载/保存选项卡”,选择要保存的参数,在这种情况下,只需要加速度和角速率数据,然后需要键入日志的文件名,并获取所有类的数据。

已经记录的类以及将使用本知识文章的ML算法检测的类是:
-
不动的
-
移动
-
千斤顶
-
崩溃




一旦获取了所有日志,建议分析每个类的日志并对其进行清理。本例中使用了Microsoft Excel。

在分析数据日志时,可能会注意到:
-
主要的变化是加速度计的X轴和Y轴
-
与加速度计相比,陀螺仪不提供额外的信息
因此,可以仅使用加速度计数据配置MLC,并选择加速度计X和Y轴上的一些特征(如峰间均值方差)。
下一步是导入在的MLC工具中获取的数据日志Unico GUI。在MLC工具的“数据模式选项卡”中,点击“浏览”按钮可以选择相应的数据日志文件(同一类可以同时选择多个文件)。

对于导入的所有数据日志和每个类,都需要分配一个标签,即与该数据关联的类。
正确导入所有日志后,单击“配置”选项卡,然后继续创建决策树和配置文件。
配置用于asm330小时:
-
机器学习核心的104 Hz数据速率(与用于获取数据日志的数据速率相同)
-
仅加速度计数据
-
2g满刻度
-
104Hz数据速率
-
-
不需要陀螺仪,因为在分析数据时,很明显它不能为该应用程序提供额外的信息

然后,需要通过选择1个决策树和104个样本的窗口长度来进行配置。window参数指定机器学习核心每次必须识别类时阐述的样本数。它可以是从1到255,并且MLC结果的延迟将与这个数字相关。在这种情况下,数据速率为104Hz,窗口中的104个样本获得1秒的等效时间窗口。

在本例中跳过了过滤器配置部分,这意味着没有对输入数据使用过滤器。
在功能配置部分,可以选择在构建决策树时使用哪个功能。
由于从数据日志中可以清楚地看出,加速度计X和Y轴上存在一些变化,因此可以在这些轴上以及加速度计范数上选择一些特征(如均值、方差、能量、峰值2峰值)。

现在,该工具正在生成arff文件,该文件包含选定的特征,在之前定义的1秒窗口中使用提供的所有标记数据进行计算。

然后,我们需要决定哪些数值描述不同的类(这些值是MLC的输出,可以在我们设备的MLC_SRC寄存器中读取)。我们正在使用以下值:
-
0表示静止
-
4用于运动/驾驶
-
8用于自升式
-
12表示碰撞


现在可以按照配置过程构建决策树,它使用了之前通过单击“生成”按钮定义的一些功能,或者可以导入由外部工具生成的决策树。在下一节中,可以选择不同的过滤器,但对于本例,已跳过此部分。最后,该工具可以生成具有机器学习核心配置的UCF文件asm330小时,以将决策树嵌入到传感器配置中。自装卸工MKI109V3带ASM330LHHX DIL24适配器(装卸工MKI212V1)已经连接到PC,它允许直接对设备进行编程,并评估此配置。

最后,可以检查MLC是否正常工作。该算法必须检测所有4个记录的类。
在汽车静止的情况下,我们看到输出0,意思是“静止”。

向前和向后移动汽车,MLC输出变为4。

当轿厢侧向提升时,MLC输出变为8。
最后,当汽车撞上另一辆汽车时,MLC检测到类别“碰撞”,其值为12。
在这篇知识文章中,我们展示了如何在中使用MLC检测四个不同的类ASM330LHHX,但目前的消费是多少?为了激活MLC,在本例中只需要大约10µA。这是机器学习核心的额外电流,必须添加到传感器电流消耗中。不同的配置是可能的——识别不同的类别——选择不同的数据速率——或者使用不同的数据(例如仅加速度计数据,或者加速度计+陀螺仪)。在表中,您可以看到我们在GitHub公司同一设备的存储库。