车辆碰撞和侧倾检测演示利用ISM330DHCX中嵌入的MLC和FSM
1.演示功能和定义在本演示中,使用遥控(RC)汽车代替实际汽车,嵌入ST的6轴MEMS传感器中的MLC和FSM实时检测车辆的惯性参考系。。。。
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工具包中,因此可以在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等智能功能,使您的设计能够实现高性能和低功耗。
此外,这使得创建原始演示/原型变得更容易,因为不需要编码。