- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于STM32的跌倒防护装置研究
摘要:基于STM32的用于老年人跌倒防护的装置,由控制模块,传感器模块,防护挽救模块组成。控制模块以STM32为核心,控制模块接收传感器模块检测的加速度、角速度信号,使用阈值判断法进行分析,并能够在老年人发生跌倒但未完全着地前为后面开启防护措施提供信号,从而避免老年人受伤害。实验显示,本系统采用的跌倒判断算法准确度高,系统可靠性高、结构简单。
关键词:跌到检测;阈值算法;加速度计;陀螺仪;STM32
随着老年人口的剧增,老龄化问题成为当前社会的最突出问题。目前已知世界范围内60岁以上的老年人口已超过6亿。跌倒对于老年人群而畜是一个很严重的问题,除了肢体上的伤害,跌倒之后在心理及社交生活上也可能造成严重的后遗症。据统计,约三分之一65岁以上老人平均每年跌倒一次。面对这种情况,开发跌倒智能探测和报警系统,具有极其重要的现实意义和社会意义。
目前的跌倒检测可分为三类:基于视频图像的跌倒检测,其不足之处是受空间上的限制、视频图像的质量受环境影响较大和不能保证用户的隐私安全;基于声学系统的跌倒检测,其不足之处是安装复杂且资金投入比较大;基于穿戴式装置的跌倒检测,不受空间限制、环境干扰相对较小。
本系统开发的是基于穿戴式装置的防跌倒装置系统,是通过加速度计和陀螺仪对老年人身体姿态和运动的实时检测,采集到人体的加速度和角速度,再经过徽处理器使用阈值判断法进行分析,并在未着地之前报警和进行防护措施。本系统采用加速度计、陀螺仪和阈值判断法使准确度提高,日常行为的误报低,并且实施保护防止老年人受到跌倒带来的伤害。
1 系统总体设计
根据老人防跌倒装置系统原理,整个系统有二部分组成:跌倒检测部分和防护挽救部分。而跌倒检测部分又由两部分组成:系统的硬件设计和软件算法,软件算法使用阈值判断法,硬件由以下四部分组成:
1)传感器模块:用加速度计、陀螺仪实时采集人体加速度信号和角速度信号,再通过A/D转换成数字信号传送到STM32核心控制模块上。
2)SIM32核心控制模块:接收传感器A/D转换后的信号进行处理、分析并判断是否符合跌倒条件,再通过D/A对安全气囊进行动作。
3)无线传输模块:它是用于本模块与上位机进行无线通信,使上位机得到数据并设计出跌倒检测的算法,并根据算法进行了实验。
4)防护挽救模块:通过STM32核心控制模块对其发送动作的信号,在老人没跌倒在地之前进行保护。
本文主要介绍跌倒检测部分,即硬件设计部分和软件算法。系统的整体构图如图1。
2 硬件电路设计
2.1 STM32F103RBT6单片机
基于穿戴式装置要求系统轻便小巧和事前判断跌倒发生要求处理单元运行速度足够快等因素考虑。本系统选用高性能的ARM
CortexTM—M3 32位的RISC内核单片机STM32F103RBT6作为主处理单元,工作频率为72 MHz,内置高速存储器,丰富的增强I/O端口和联接到2条APB总线的外设。
2.2 加速度计
加速度计属于惯性感测元件,可测量物体的加速度。本系统选用亚德诺半导体公司的一款小而薄的超低功耗三轴加速度传感器ADXL345本设计中加速度传感器与单片机STM32F103RBT6采用I2C总线连接方式,测量范围+16 g,使用最大分辨率(13位),数据输出速率100 Hz。初始化主要对ADXL345的数据输出速率、测量范围、分辨率、数据的对齐模式以及中断触发方式进行设置。
2.3 陀螺仪
陀螺仪,是一种用来感测与维持方向的装置。本系统中选用意法半导体公司可以让用户自主设定量程,提供一个16位数据输出的三轴陀螺仪L3G4200D。本设计中L3G4200D使用I2C数字接口与单片机STM32F103RBT6相连,量程使用±250 dps,数据速率100 Hz,初始化主要对L304 200D的量程、数据速率的进行设置。
2.4 无线传输模块
系统加入无线通信模块,在验证算法时开启无线通信,系统实时处理采集到的传感器数据,并将数据通过无线模块发送至上位机进行处理。本系统中使用Nordic公司电流消耗极低的RF24L01模块。模块与STM32单片机采用SPI方式连接,初始化主要对通信通道,通信频率,数据宽度和收发模式进行设置。
3 软件设计
本系统中是选择穿戴式传感器的方法设计跌倒探测器。由于腰部活动范围和频率都较小,一般都保持竖直位置,有利于检测且舒适度高,因此将装置佩戴在腰部。下面我们应用三轴加速度和角速度信号对人体的跌倒检测技术进行研究,并详细论述跌倒检测算法。
3.1 算法设计
人体加速度向量幅值SVM判断法是研究人体跌倒的常见方法。SVM通过计算加速度幅度反应人体运动的剧烈程度,其值越大说明运动越剧烈,其定义如式(1)。
式中,αx、αy、αz分别为加速度传感器的X、Y、Z三轴输出,单位为g。
采用该特征值的优点在于其将空间的加速度合为一矢量,在跌倒判断中忽略跌倒的方向。因为发生跌倒时,无论朝哪个方向,SVM都会超过某一阚值。而本系统使用的加速度阈值判断法的的核心就是检测人体的SVM的大小,从而判断加速度是否超过正常范围。下面对加速度阀值确定进行研究。
图2是经过试验得到的人体跌倒过程中的合加速度曲线。在跌倒过程中产生2个极值分别是图2中第75个采样点和第85个采样点。第85个采样点合加速度约为5.3g,这是由于人体跌倒时与地面碰撞产生的加速度,其幅值要比绝大多数日常活动产生的加速度幅值都要大,因此,许多人体跌倒检测的算法都是根据这个幅值来判断。
但是此幅值来判断的跌倒检测算法人体已经着地,跌倒伤害已经产生了,而本系统需要对人体进行保护,即必须在人体跌倒着地之前进行检测,因此不符合本系统的设计要求。经过多次试验找到符合本系统要求的过程(图2中从第50到第75个采样点左右),该过程一直呈下降趋势直到合加速约为零,且该过程也明显区别于日常动作。本系统中把合加速度的阈值设为0.88 g,当合加速度小于0.88 g时,系统进入预警状态,初步判定有可能发生跌倒,但是也有可能是突然站起或转身等正常动作引起的。由于该过程一直呈下降趋势,因此设计中将本次加速度的值与上一次的加速度值做差如果差值小于零计数,当计数值达到一定值的时候就可以判断人体发生跌倒。
图3是经过试验得到的人体跌倒过程中的合角速度曲线(与图2同一时刻)。通过试验得到当合加速度值小于0.88 g至刚好着地的这段过程时(图2中第55至第75个采样点),陀螺仪检测的角速度却是增大的。但是实际观察多次跌倒的角速度波形,发现跌倒时角速度并不是线性增加的,它有时候也会减小,但是总体是增加的。根据M.N.Nyan,Francis E.H.Tay,E.Murugasu等人的研究,在这一时段角速度的变化很小只有10°/s。于是在算法判断加速度减少并计数的同时加入角速度做差值且是否变化在10°/s内。实验中我们发现通过同时满足加速度减小和角速度增加并计数能明显减少单一运用加速度计的误判。
3.2 软件整体设计
结合跌倒判断算法后,系统的整体软件框图如图4所示。
4 实验测试
测试时为避免测试者在实验过程中摔伤,所有跌倒实验都在一张双人床上完成,跌倒在双人床上与跌倒在地面唯一不同的是,跌倒在地面产生的加速度冲击会更大。因此,对本系统而言,跌倒在地面的情况会更容易检测出来。
系统测试分为两部分,第一部分是通过模拟老年人几种典型的跌倒方式来检验跌倒判断的识别率,在将要发生跌倒事件时,能够准确无误的触发报警。测试内容包括向前跌倒,向后跌倒,向左侧跌倒,向右侧跌倒这4种典型类型的跌倒,每类跌倒各试验50次。
第二部分通过正常的日常活动来检测本系统的误报率,实验的日常活动包括步行、弯腰、下蹲和慢跑等日常行为,同样每类实验也进行50次。测试结果如表1所示。
由表1试验数据,可以看到在实验条件下,每种跌倒的跌倒识别率都在95%以上。在捧除老年人做剧烈运动的情况下(如表中的慢跑),日常事件的误报率约为0%,所设计的跌倒检测系统能检测出绝大多数的跌倒事件并准确报警,对日常行为的误报较低。
为了提高系统的可靠性,本次还研究了从防跌倒装置开始报警到老年人完全跌倒在地上之间的时间,我们根据采集到的数据和算法,得到装置开始报警到老年人完全跌倒在地上之间采样点个数,再根据采样时间求得时间。此时间越长表示后续的防护措施可进行更复杂的保护,老年人跌倒受伤的几率就越低。防护措施可用时间如表2所示。
5 结束语
本系统使用了三轴加速度传感器ADXL345,三轴角速度传感器L3G4200D、nRF24L01无线传输模块和STM32F103RBT6嵌入式处理器,实时采集人体跌倒的加速度和角速度数据,并运用了以特征量阈值判断的跌倒检测算法为主的解决方案,完成了老人跌倒检测系统的设计。通过试验分析,排除老年人做剧烈运动的情况下,系统能准确地检测跌倒并能在老年人未着地之前报警并实施后续防护措施,其准确率高。且本系统可靠性高、简单,易于穿戴。
- STM32单片机中文官网
- STM32单片机官方开发工具
- STM32单片机参考设计
上一篇:高功放高压联锁电路改进与测试
下一篇:密封容器漏水监测和无线报警系统