本文介绍了在SensorTile.box的LSM6DSOX核心上实现一个简单的机器学习案例(识别移动中资产的状态),结合确定自由落体和撞击事件的有限状态机配置,以及Unicleo PC应用程序上决策树输出的可视化。

目录
 

  1. 为什么在运输过程中监控资产很重要?
  2. 问题场景
  3. 传感器配置
  4. 数据收集
  5. 算法(MLC和FSM)配置
  6. 使用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的值根据前面段落中描述的类标签而变化。
  1. 放入SensorTile.BoxDFU模式(直接固件升级):断开电池并拔下USB电缆,按住“DFU引导”按钮,连接USB电缆,然后松开按钮。
  2. 运行STM32CubeProgrammer,从右侧下拉菜单中选择“USB”,然后按“连接”。单击左上角的菜单按钮。可选择执行全芯片擦除。选择“Erase&Programming”(擦除和编程),浏览以选择数据日志扩展可在FP-SNS-STBOX1功能包中找到的二进制文件,将地址设置为0x800 0000,选中“编程后运行”,然后单击“开始编程”。
  3. 运行Unicleo GUI,连接到设备,单击复选框以启用MLC,然后单击左侧面板中的MLC按钮,浏览并加载.uc公司f文件,最后单击“开始”按钮。


享受