1.演示功能和定义

在本演示中,使用遥控(RC)汽车代替实际汽车,嵌入ST的6轴MEMS传感器中的MLC和FSM实时检测车辆的惯性参考系。

定义了由MLC检测的RC(遥控)车的以下六种运动状态。

  • 状态0:停止(车辆停止,没有移动,没有振动)。
  • 状态1:正在行驶(汽车在光滑的表面上行驶)。
  • 状态2:崎岖不平的道路(汽车在非常崎岖的路面上行驶,振动很大)。
  • 状态3:在河岸上(无论移动或停止状态如何,车辆都在向右或向左滚动)。
  • 状态4:在斜坡上(无论移动或停止状态如何,汽车都在斜坡上,前部或后部向上或向下)。
  • 状态5:翻车(汽车已经翻车,而且是上下颠倒的)。

 

除了MLC,我们还对FSM进行了编程,以识别汽车是否发生了碰撞。当RC汽车从前面撞到什么东西(前端碰撞)时,碰撞就升起了旗帜。

  • 崩溃0:未检测到崩溃。
  • 碰撞1:检测到前端碰撞。

为了使RC汽车的位置易于理解,我们还在STM32项目中实现了Motion FX库,以显示汽车的3D图形。

请注意,这些定义仅用于RC汽车的演示目的,但并不代表真实的汽车用例。

2.板和软件设置

硬件设置非常简单。我们只是使用STWIN套件(STEVAL-STWINKT1B),将其固定在商用遥控车的顶部,如下图所示。

 

此演示中使用的设备是ISM330DHCX它是STWIN套件内的工业级6轴IMU。汽车级6轴MEMS传感器是ASM330LHHX,但出于演示目的,由于功能相似,我们使用了STWIN套件。

用于将数据传输到PC,通过蓝牙进行无线通信®使用低能量。因此,它不需要任何电缆。

使用的软件是Unico GUI、Unicleo GUI和AlgoBuilder:

  • Unico GUI用于制作ISM330DHCX的MLC和FSM的配置文件。
  • AlgoBuilder用于开发STWIN套件的STM32L4R9主机MCU的固件。该固件配置ISM330DHCX,读取MLC/FSM的输出,并通过蓝牙将其传递给Unicleo GUI®低能量组件。
  • Unicleo GUI以图形方式显示传感器融合的结果、MLC的车辆状态以及FSM的碰撞检测。

 

3.配置MLC

通过使用上述硬件设置,我们收集了每个状态(要识别的类,如第1节所述)的数据日志,并对MLC进行了配置。主要参数如下所示。

MEMS传感器的基本设置

设备:ISM330DHCX

XL ODR:104Hz

XL FS:+/-4g

陀螺仪ODR:104Hz

陀螺仪FS:+/-2000dps

电源模式:高性能模式(XL和Gyro)

用于车辆状态识别的MLC的配置参数

MLC ODR:104Hz

窗口长度:208个样本(约2秒)

过滤器:否

所选功能:

  • ACC_X、Y、Z、V和V2的平均值
  • VAR_on_ACC_X、Y、Z、V和V2
  • VAR_on_GY_X、Y、Z V和V2
  • ENERGY_on_ACC_X、Y、Z、V和V2电源

元分类器:否

生成的决策树如下图所示。

 

为了获得这个决策树,我们参考了DT0139中描述的指南。换句话说,我们进行了数据检查、清除错误数据和手动目视检查。但是由于时间和资源的限制,没有进行诸如修剪之类的优化。

4.配置FSM以进行故障检测

我们还在FSM中的RC车前端实现了事故检测,因为FSM比MLC更适合检测短期事件,如事故。

此图显示了我们使用Unico GUI为FSM为演示定义的事故检测参数。

要检测的轴仅为+Y,阈值设置为-2[g],其值通过反复试验确定。

为了在几秒钟后自动清除FSM的输出寄存器,除了用于冲击检测的主要部分外,固件还具有一些额外的命令和定时器设置。

5.生成STM32固件

为了实现MLC和FSM配置,我们为STM32L4R9开发了固件,它是STWIN套件的主机MCU。下图显示了我们使用AlgoBuilder制作的固件的算法框图。

 
在AlgoBuilder的“固件设置”对话框中,选择“STWIN BLE”作为目标板。

如上所述,AlgoBuilder生成的固件被上传到STWIN工具包中,因此可以在Unicleo GUI中看到输出,如下图所示。

 

蓝色汽车的3D图形显示了STM32库计算的9轴传感器融合结果。“车辆状态”框中出现的数字显示第3节中所述MLC的输出,而“碰撞”框中显示的红色条和数字显示第4节中所示FSM的输出。

 

6.汽车展览会上的演示

准备好的演示系统如下图所示:

 

STWIN套件通过蓝牙实时发送RC汽车的计算数据和检测状态®到PC Unicleo GUI。然后,Unicleo GUI以图形方式显示接收到的数据/状态。

RC车由我们在2米x 2米的区域远程控制,那里有一些障碍物,如斜坡、河岸、墙壁和粗糙的表面。

让我们一起看看这个演示套件是如何在展览中发挥作用的。

以下图片显示了RC车的位置和演示固件的输出的一些情况,这些情况已被MLC和FSM识别。

当遥控车在颠簸区域驾驶时,“车辆状态”在屏幕上显示“2”(即崎岖道路状态),如第1节所定义。

如果RC轿厢向左(或向右)倾斜,则“车辆状态”在Unicleo GUI上正确显示“3”(即处于银行状态)。

当RC轿厢正在爬坡或下坡时,“车辆状态”正确显示“4”(即在斜坡上)(轿厢后端相同)。

如果RC车从前端撞到墙上,则Unicleo GUI显示一个红色条,FSM检测到“Crash”(碰撞)状态变为“1”(即停止状态)。

演示在展会期间取得了成功,并被证明是有效的。事实上,许多游客驻足观看,并提出了许多问题,同时也提供了反馈。

7.结论

在本文中,我们在一个演示中描述了车辆碰撞和侧倾检测以及状态检测(运动或静止),该演示使用遥控车和STWIN套件利用MLC和FSM。

为了开发演示软件,我们使用了Unico GUI、Unicleo GUI和AlgoBuilder,这些工具可以免费从st.com下载。这些为MEMS传感器开发的工具支持st最新MEMS传感器中的MLC/FSM等智能功能,使您的设计能够实现高性能和低功耗。

此外,这使得创建原始演示/原型变得更容易,因为不需要编码。