EDN China > 设计实例 > 嵌入式系统 > 应用软件 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

老龄化社会催生的跌倒检测报警系统的设计

王刚?? 北京工业大学?? 2015年08月17日 ?? 收藏7

3算法设计与实验

3.1 跌倒检测算法

对跌倒检测原理的研究主要是找到人体在跌倒过程中的加速度变化特征。图5给出的是加速度在不同运动过程中的变化曲线,包括(a)步行上楼、(b)步行下楼、(c)坐下、 (d)起立。其中红色的曲线是Y轴(垂直方向)的加速度曲线,其正常静止状态下应该为-1g;黑色和黄色的曲线分别是X轴(前后方向)和Z轴(左右方向)的加速度曲线,其正常静止状态下应该为0g;绿色的曲线是三轴加速度的矢量和,其正常静止状态下应该为+1g。

图5  不同运动过程中的加速度变化曲线
图5 不同运动过程中的加速度变化曲线

由于老年人的运动相对比较慢,所以在普通的步行过程中,加速度变化不会很大。最明显的加速度变化就是在坐下动作中Y轴加速度(和加速度矢量和)上有一个超过3g的尖峰,这个尖峰是由于身体与椅子接触而产生的。而跌倒过程中的加速度变化则完全不同。图6给出的是意外跌倒过程中的加速度变化曲线。通过图6和图5的比较,可以发现跌倒过程中的加速度变化有4个主要特征,这可以作为跌倒检测的准则。这4个特征在图6中以红色的方框标注,下面将对其逐一进行详细介绍。

图6  意外跌倒过程中的加速度变化曲线
图6 意外跌倒过程中的加速度变化曲线

失重:在跌倒的开始都会发生一定的失重现象。在自由落体的下降过程,这个现象会更加明显,加速度的矢量和会降低到接近0g。对于一般的跌倒,也会发生合加速度小于1g的情况。因此,这可以作为跌倒状态的第一个判断依据。可以由ADXL345的Free_Fall中断来检测。

撞击:失重之后,人体发生跌倒的时候会与地面或其他物体发生撞击,在加速度曲线中会产生一个很大的冲击。这个冲击可以通过ADXL345的Activity中断来检测。因此,Free_Fall中断之后,紧接着产生Activity中断是跌倒状态的第二个判断依据。

静止:人体在跌倒后,也就是撞击发生之后,不可能马上起来,会有短暂的静止状态(如果人因为跌倒而导致昏迷,甚至可能是较长时间的静止)。表现在加速度曲线上就是会有一段时间的平稳。这可以通过ADXL345的Inactivity中断来检测。因此,Activity中断之后的Inactivity中断是跌倒状态的第三个判断依据。

与初始状态比较:跌倒之后,人体会发生翻转,因此人体的方向会与原先静止站立的姿态不同。这使得跌倒之后的静止状态下的三轴加速度数值与初始状态下的不同,如图5所示。因此,跌倒检测的第四个依据就是跌倒后的静止状态下加速度值与初始状态发生变化,且矢量变化超过一定的门限值。

这四个判断依据综合在一起,构成了整个的跌倒检测算法,可以对跌倒状态给出报警。

另外,如果跌倒造成了严重的后果,比如,导致了人的昏迷。那么人体会在更常的一段时间内都保持静止。这个状态仍然可以通过Inactivity中断来检测。也就是说,如果发现在跌倒之后的很长时间内都保持Inactivity状态,可以再次给出一个严重报警。算法的流程图如图7所示。

图7  算法流程图
图7 算法流程图

3.2 实验结果

本文设计了一个实验方案对算法进行验证。实验对向前跌倒,向后跌倒,向左、右两侧跌倒等不同跌倒姿势以及跌倒后是否有长时间静止状态的情况分别进行了10次测试,表1中给出的是相关测试结果。

表1  实验结果
表1 实验结果

本设计将加速度传感器ADXL345、GPS和GSM模块SIM908与Arduino Uno平台结合在一起,通过加速度传感器采集人体三轴加速度值,实时检测人体体态,完成对人体跌倒的检测和报警。整体设计成本低、可靠性高、算法复杂度低、检测准确度高和可扩展的优点,具有很高的实用性,可以满足对人体跌倒检测报警的需要。

【分页导航】

本文来源于《单片机与嵌入式系统》


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

Arduino? 跌倒检测?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈