三轴加速度传感器在跌倒检测中的应用
前言
人们在跌倒后会面临双重危险。显而易见的是跌倒本身可能对人体产生伤害;另外,如果跌倒后不能得到及时的救助,可能会使结果更加恶化。例如,许多老年人由于其身体比较虚弱,自理能力和自我保护能力下降,常常会发生意外跌倒,如果得不到及时的救助,这种跌倒可能会导致非常严重的后果。有资料显示,很多严重的后果并不是由于跌倒直接造成的,而是由于跌倒后,未得到及时的处理和救护。当出现跌倒情况时,如果能够及时地通知到救助人员,将会大大地减轻由于跌倒而造成的危害。
不仅是对老人,在很多其他情况下,跌倒的报警也是非常有帮助的,尤其是从比较高的地方跌倒下来的时候。比如人们在登山,建筑,擦窗户,刷油漆和修理屋顶的时候。
这促使人们越来越热衷于对跌倒检测以及跌倒预报仪器的研制。近年来,随着iMEMS?加速度传感器技术的发展,使得设计基于三轴加速度传感器的跌倒检测器成为可能。这种跌倒检测器的基本原理是通过测量佩戴该仪器的个体在运动过程中的三个正交方向的加速度变化来感知其身体姿态的变化,并通过算法分析判断该个体是否发生跌倒情况。当个体发生跌倒时,仪器能够配合GPS模块以及无线发送模块对这一情况进行定位及报警,以便获得相应的救助。而跌倒检测器的核心部分就是判断跌倒情况是否发生的检测原理及算法。
ADXL3451是ADI公司的一款3轴、数字输出的加速度传感器。本文将在研究跌倒检测原理的基础上,提出一种基于ADXL345的新型跌倒检测解决方案。
iMEMS加速度传感器ADXL345
iMEMS 半导体技术把微型机械结构与电子电路集成在同一颗芯片上。iMEMS加速度传感器就是利用这种技术,实现对单轴、双轴甚至三轴加速度进行测量并产生模拟或数字输出的传感器。根据不同的应用,加速度传感器的测量范围从几g到几十g不等。数字输出的加速度传感器还会集成多种中断模式。这些特性可以为用户提供更加方便灵活的解决方案。
ADXL345是ADI公司最近推出的基于iMEMS技术的3轴、数字输出加速度传感器。ADXL345具有+/-2g,+/-4g,+/-8g,+/-16g可变的测量范围;最高13bit分辨率;固定的4mg/LSB灵敏度;3mm*5mm*1mm超小封装;40-145uA超低功耗;标准的I2C或SPI数字接口;32级FIFO存储;以及内部多种运动状态检测和灵活的中断方式等特性。所有这些特性,使得ADXL345有助于大大简化跌倒检测算法,使其成为一款非常适合用于跌倒检测器应用的加速度传感器。
本文给出的跌倒检测解决方案,完全基于ADXL345内部的运动状态检测功能和中断功能,甚至不需要对加速度的具体数值进行实时读取和复杂的计算操作,可以使算法的复杂度降至最低。
中断系统
图1给出了ADXL345的系统框图及管脚定义。
图1 ADXL345系统框图及管脚定义
ADXL345具有两个可编程的中断管脚:Int1和Int2。以及Data_Ready、Single_Tap、Double_Tap、Activity、Inactivity、Free_Fall、Watermark、Overrun,共计8个中断源。每个中断源可以独立地使能或禁用,还可以灵活地选择是否映射到Int1或Int2中断管脚。所有的功能都可以同时使用,只是某些功能可能需要共用中断管脚。中断功能通过INT_ENABLE寄存器的相应位来选择使能或禁用,通过INT_MAP寄存器的相应位来选择映射到Int1管脚或Int2管脚。中断功能的具体定义如下:
1. Data_Ready 当有新的数据产生时,Data_Ready中断置位;当没有新的数据时,Data_Ready中断清除。
2. Single_Tap 当加速度值超过一定门限(THRESH_TAP)并且持续时间小于一定时间范围(DUR)的时候,Single_Tap中断置位。
3. Double_Tap 当第一次Single_Tap事件发生后,在一定时间(LATENT)之后,并在一定时间(WINDOW)之内,又发生第二次Single_Tap事件时,Double _Tap中断置位。
图2给出了有效的Single_Tap中断和Double _Tap中断的示意图。
图2 Single_Tap和Double _Tap中断示意
4. Activity 当加速度值超过一定门限(THRESH_ACT)时,Activity中断置位。
5. Inactivity 当加速度值低于一定门限(THRESH_INACT)并且持续超过一定时间(TIME_INACT)时,Inactivity中断置位。TIME_INACT可以设定的最长时间为255s。
需要指出的是,对于Activity和Inactivity中断,用户可以针对X、Y、Z轴来分别进行使能或禁用。比如,可以只使能X轴的Activity中断,而禁用Y轴和Z轴的Activity中断。
另外,对于Activity和Inactivity中断,用户还可以自由选择DC coupled工作方式或者AC coupled工作方式。其区别在于,DC coupled工作方式下,每个采样点的加速度值将直接与门限(THRESH_ACT或THRESH_INACT)进行比较,来判断是否发生中断;而AC coupled工作方式下,新的采样点将以之前的某个采样点为参考,用两个采样点的差值与门限(THRESH_ACT或
THRESH_INACT)进行比较,来判断是否发生中断。AC coupled工作方式下的Activity检测,是选择检测开始时的那一个采样点作为参考,以后每个采样点的加速度值都与参考点进行比较。如果它们的差值超过门限(THRESH_ACT),则Activity中断置位。AC coupled工作方式下的Inctivity检测,同样要选择一个参考点。如果新采样点与参考点的加速度差值超过门限(THRESH_INACT),参考点会被该采样点更新。如果新采样点与参考点的加速度差值小于门限
(THRESH_INACT),并且持续超过一定时间(TIME_INACT),则Inctivity置位。
6. Free_Fall 当加速度值低于一定门限(THRESH_FF)并且持续超过一定时间(TIME_FF)时,Free_Fall中断置位。与Inactivity中断的区别在于,Free_Fall中断主要用于对自由落体运动的检测。因此, X、Y、Z轴总是同时被使能或禁用;其时间设定也比Inactivity中断中要小很多,TIME_FF可以设定的最大值为1.28s;而且Free_Fall中断只能是DC coupled工作方式。
7. Watermark 当FIFO里所存的采样点超过一定点数(SAMPLES)时,Watermark中断置位。当FIFO里的采样点被读取,使得其中保存的采样点数小于该数值(SAMPLES)时,Watermark中断自动清除。
需要指出的是,ADXL345的FIFO最多可以存储32个采样点(X、Y、Z三轴数值),且具有Bypass模式、普通FIFO模式、Stream模式和Trigger模式,一共4种工作模式。FIFO功能也是ADXL345的一个重要且十分有用的功能。但是本文后面给出的解决方案中,并没有使用到FIFO功能,所以,在此不做详细介绍。
8. Overrun 当有新采样点更新了未被读取得前次采样点时,Overrun中断置位。 Overrun功能与FIFO的工作模式有关,当FIFO工作在Bypass模式下,如果有新采样点更新了DATAX、DATAY和DATAZ寄存器里的数值,则Overrun中断置位。当FIFO工作在其他三种模式下,只有FIFO被存满32点时,Overrun中断才会置位。FIFO里的采样点被读取后,Overrun中断自动清除。
跌倒过程中的加速度变化特征
对跌倒检测原理的研究主要是找到人体在跌倒过程中的加速度变化特征。
图3给出的是加速度在不同运动过程中的变化曲线,包括(a)步行上楼、(b)步行下楼、(c)坐下、(d)起立。假设跌倒检测器被固定在被测的人体上。其中红色的曲线是Y轴(垂直方向)的加速度曲线,其正常静止状态下应该为-1g;黑色和黄色的曲线分别是X轴(前后方向)和Z轴(左右方向)的加速度曲线,其正常静止状态下应该为0g;绿色的曲线是三轴加速度的矢量和,其正常静止状态下应该为+1g。
a. 步行上楼 b. 步行下楼