本文介绍了一个简单的机器学习案例(门的状态识别)在SensorTile.box的LSM6DSOX核心上的实现,以及STBLE Sensor智能手机应用程序上决策树输出的可视化。其他方法(与Unicleo GUI和AlgoBuilder GUI的接口有关)将在下一篇文章中描述。

目录
 

  1. 为什么检测开门很重要?
  2. 问题场景
  3. 传感器配置
  4. 数据收集
  5. 算法(MLC)配置
  6. STE BLE传感器应用程序上的数据可视化
 

为什么检测开门很重要?

“开门”检测是一个重要的应用程序,可以用来检测房屋门的状态,也可以用作入侵检测器或报警器。本文使用了由陀螺仪数据提供的SensorTile.box和LSM6DSOX低功耗机器学习核心(MLC)。
 

问题场景

SensorTile.Box可以满足此应用程序的需求,因为它的形状因子可以在门上进行精确定位,并且数据可以本地存储在板载SD卡上。
工具的放置如下图所示。只要传感器轴的方向正确,也可以使用其他设备。

  • X轴平行于门,指向上。
  • 平行于门的Y轴,指向门铰链。
  • Z轴指向车门打开的方向。

 

传感器配置

在车载传感器中,陀螺仪(LSM6DSOX)被选择用于该应用,因为它比加速度计更灵敏,并且可以检测门在铰链上的旋转。它配置了±2000 dps满量程和52 Hz输出数据率,这足以进行准确的车门运动检测。
 

数据收集

SensorTile.box已配置为以ODR 52Hz采集各种传感器,并将原始数据存储在板载SD卡上。默认的“数据记录器”应用程序可以用于此范围。可以找到ST BLE传感器应用程序配置的详细说明



然后将获取的数据集(本例中的数据日志的有限子集在此可用)上传到Unico上。上传后,必须按照以下步骤构建LSM6DSOX机器学习核心的代码(以及相关的决策树定义)。

  1. 设置配置选项卡(标签、功能和ARFF文件);
  2. 设计决策树分类器;
  3. 生成MLC配置文件。

整个过程的详细描述可以在这里找到。
 

算法(MLC)配置(详细信息)

LSM6DSOX机器学习核心被配置为以52赫兹运行,在13个样本的窗口上计算特征,因此决策树分类器输出每秒更新4次(52赫兹/13=4赫兹)。

仅计算一个特征:

  • 陀螺仪X轴上的平均值


已经配置了一个具有大约4个节点的决策树来检测不同的类。尚未使用元分类器。

决策树分类器检测对应于3个不同门状态的3个不同类别。决策树分类器的输出被存储在寄存器MLC0_ SRC(地址70h)中。

  • MLC0_SRC(70h)寄存器值
    • 0=关闭
    • 4=打开
    • 8=静止
 

ST BLE Sensor应用程序的数据可视化

为了测试决策树,首选STBLE传感器应用程序可视化方法。决策树:1的值根据前面段落中描述的类标签而变化。
其他方法(与Unicleo GUI和AlgoBuilder GUI工具的接口有关)将在下一篇文章中描述。
  
有关以下内容的更多信息:STMems_Machine_Learning_Core/application_examples/lsm6dsox/Door OpeningClosingStill