如何使用SensorTile.box和Unicleo应用程序执行资产跟踪
本文讨论了在SensorTile.box的LSM6DSOX核心上实现一个简单的机器学习案例(识别移动中资产的状态),并结合确定频率的有限状态机配置。。。
目录
- 为什么在运输过程中监控资产很重要?
- 问题场景
- 传感器配置
- 数据收集
- 算法(MLC和FSM)配置
- 使用Unicleo GUI应用程序实现数据可视化
为什么在运输过程中监控资产很重要
资产监控和跟踪是检测货物或商品状态的一个越来越重要的应用,这些货物或商品可以从一个地方转移到另一个地方。数据可以逐步保存在本地(“边缘”),利用。由于功耗在电池驱动的应用程序(如资产跟踪应用程序)中至关重要,因此本文使用了SensorTile.box和LSM6DSOX嵌入式低功耗机器学习核心(MLC)和有限状态机(FSM)。问题场景
SensorTile.Box可以满足此应用程序的需求,因为它的形状因子可以跟踪资产上的定位,并且数据可以本地存储在板载SD卡上。
本示例结合了机器学习核心(MLC)和有限状态机(FSM)功能,实现了智能资产跟踪算法,该算法能够检测和跟踪包裹的各种状态(静止-直立、静止-非直立、运动中、摇晃),并检测一些可能的事件(冲击、自由落体)。传感器配置
在车载传感器中,加速度计配置为±16克低功率模式下的满标度和26Hz输出数据速率。传感器方向按照ENU惯例设置(Z轴朝上),以便正常工作。数据收集
对于数据采集,可以使用STBLE Sensor应用程序配置的SensorTile.box。SensorTile.box已将所选传感器配置为ODR 026Hz,将原始数据存储在板载SD卡上。有关配置过程的详细描述,请参阅本文。数据收集的另一种可能性,尽管不太“物联网风格”,是使用带有Unicleo GUI的X-NUCLEO-IKS01A3板,配置如下图所示:

算法(MLC和FSM)配置(详细信息)
MLC和FSM都被配置为在低功率模式下以26Hz处理加速度计数据:
-
MLC处理加速度计数据,以便通过使用每13个样本(对应于0.5秒)计算一次的三个特征(加速度计范数上的峰间和平均值,加速度计Z轴上的平均值)来检测封装状态。已经配置了一个具有三个节点的决策树来检测不同的类。已经设置了一个元分类器来减少误报。
MLC的输出可以从MLC0_SRC(70h)寄存器中读取:
- 00h=静止-直立
- 04h=静止-不直立
- 08h=运动中
- 0Ch=摇晃
MLC还对FSM使用的加速度计数据应用高通滤波器。每当寄存器MLC0_SRC(70h)被更新为新值时(当MLC检测到的状态改变时),该配置在INT1引脚上产生中断(脉冲和有效高)。在这种配置中,中断脉冲的持续时间是38.5ms。
-
FSM处理原始和过滤的加速度计数据,以检测以下状态:
- 影响,由FSM#1检测到
- 自由落体,由FSM#2检测到
在本例中,碰撞检测的阈值设置为0.5克,并且立柱的角度设置为26°。当FSM检测到自由落体或冲击事件时,该配置在INT2引脚上产生中断(脉冲和高电平有效)。只要包裹在空中,自由落体中断就一直处于活动状态。FSM_STATUS_A(13h)寄存器允许确定哪个FSM生成了中断,以便区分撞击事件和自由落体事件。
总电流消耗约为22µA。
*信用额度:https://qeexo.com/video/
使用Unicleo GUI应用程序实现数据可视化
为了测试决策树和FSM输出,首选Unicleo GUI PC应用程序可视化方法。决策树:1的值根据前面段落中描述的类标签而变化。- 放入SensorTile.BoxDFU模式(直接固件升级):断开电池并拔下USB电缆,按住“DFU引导”按钮,连接USB电缆,然后松开按钮。
- 运行STM32CubeProgrammer,从右侧下拉菜单中选择“USB”,然后按“连接”。单击左上角的菜单按钮。可选择执行全芯片擦除。选择“Erase&Programming”(擦除和编程),浏览以选择数据日志扩展可在FP-SNS-STBOX1功能包中找到的二进制文件,将地址设置为0x800 0000,选中“编程后运行”,然后单击“开始编程”。
- 运行Unicleo GUI,连接到设备,单击复选框以启用MLC,然后单击左侧面板中的MLC按钮,浏览并加载.uc公司f文件,最后单击“开始”按钮。

享受