基于MSP430F149 单片机的腕带式摔倒检测系统的设计
2014-12-04仲小英ZHONGXiaoying
仲小英ZHONG Xiao-ying
(苏州健雄职业技术学院电气工程学院,太仓 215400)
(School of Electrical Engineering,Suzhou Chien-Shiung Institute of Technology,Taicang 215400,China)
0 引言
目前,中国正经历史上规模最大、速度最快的老龄化进程,独居老人的数量也越来越多。随着老人自身保护能力的下降,经常会发生独居老人意外跌倒而未能及时救助从而造成严重后果的现象,这也成为了很多子女的顾虑。据统计显示,其实多数严重后果并非源自摔倒本身,而是在于摔倒后未能及时救助处理,如果在摔倒后第一时间通知到救护人员救助,则可大大降低摔倒后的危险程度。
为使老人在摔倒后能得到及时救助,减少意外发生,本文设计了一个基于MSP430F149 单片机的腕带式摔倒检测系统,老人平时将其带在手腕上,自动识别老人是否摔倒,避免误判、误报警,通过系统分析,做出正确的判断,第一时间通过短信通知家人,为老人摔倒后提供必要的帮助。
1 系统硬件设计
本系统采用三轴加速度传感器ADXL345 和MSP430F149 单片机连接完成居家老人的摔倒检测,通过ADXL345 加速度传感器来实时检测老人行动时三个轴向的加速度,然后由MSP430F149 单片机对采集到的数据进行判断老人是否发生摔倒情况,一旦发生摔倒现象,则第一时间通过GSM 短信告知家人。系统硬件结构框图如图1 所示。
图1 系统硬件结构框图
1.1 系统控制模块 本系统的核心控制模块采用了美国德州仪器(TI)公司的MSP430F149 单片机。考虑到设备使用的方便性,此产品结构采取腕带式设计,方便老人日常携带,但对于终端设计的空间上来讲会却会受到一定的限制,由于MSP430 单片机内部集成了许多高性能模块,高集成度使芯片体积很小,而且生产成本低价格便宜,故采用其作为本系统的核心控制模块。通过该模块完成对ADXL345 加速度传感器所采集的信号综合处理分析来判断摔倒状态并决定是否发出求助报警信号。
在MSP430F149 单片机最小系统电路设计中,由于其自身已集成了数字控制振荡器,故在时钟电路的设计上外围只需设计高低频晶体振荡器两部分电路,其中低频晶体振荡器采用了32.768kHz 贴片晶振,使低频晶体振荡器默认工作在低频模式;高频晶体振荡电路为系统的第二振荡器,采用了8MHz 的高频晶振,主要为系统在高频模式下工作时提供时钟。
复位电路的设计,其性能决定了系统运行过程中若出现“死机”或“程序跑飞”等现象时,通过复位是否能及时使单片机从错误中恢复到正常的工作状态。在本系统中采用了上电复位,通过100k 的上拉电阻和0.1uf 的电容来保证上电时RST 管脚的高电平。但是由于MSP430F149 单片机的超低功耗的特点,其在断电后马上上电会出现系统中电容存储的电荷来不及完全释放从而导致复位失败的现象,故在设计中通过在电阻两端增加了一个二极管IN4008 来快速放电,从而提高复位电路的可靠性。
1.2 三轴加速度传感器ADXL345 模块 ADXL345 是目前运用较广的一种MEMS 三轴加速度传感计。其内置的运动状态检测功能和中断系统,几乎无需具体加速度数值,从而最大限度地降低了算法的复杂程度。由于老年人的动作相对较慢,在正常步行动作中,加速度变化并不是很明显(如图2 中4 的区域变化曲线所示)。而在老人发生摔倒现象时,其X、Y、Z 三轴的加速度变化波动较为厉害,会经历失重、撞击、静止三个过程(变化曲线如图2 中1、2、3 区域所示)。
图2 跌倒状态
本系统中手腕式摔倒检测仪则利用这四个关键特性作为摔倒检测的标准,从而来构成整个摔倒检测的算法。首先利用ADXL345 的失重中断的发生来作为判断老人是否摔倒的第一个依据。其次在失重中断之后出现的撞击中断作为判断老人是否摔倒的第二个依据。之后再将撞击中断之后是否发生静止判断作为老人摔倒的第三个判断依据。而老人在摔倒之后,人体会发生翻转,x、y、z 这三轴加速度与跌倒前的初始状态是不相同的,通过所采集的数据与初始状态进行分析,若超过一定的范围,则可判断老人发生摔倒现象。本系统电路的设计中,ADXL345 加速度传感器与MSP430 之间采用的是4 线SPI 的通信方式。通过在电源引脚连接上0.1uf 的电容和1uf 的电容来对加速度传感器ADXL345 进行充分的去耦,如图3 所示。
图3 加速度传感器摔倒检测模块
1.3 GSM 模块 该模块设计的作用是将老人摔倒这个信息发送给自己的亲人,便于亲人在第一时间得知突发情况,采取措施及时救助,本设计选用了西门子公司研发的MC35 GSM/GPRS 无线通信模块。在电路设计中,通过在电源输入端并联一个100uf 的旁路电容和一个0.1uf 的电容来保证电源电压不低于3.3V,从而确保MCS 模块能以最大功率工作;在SIM 卡的接口电路中,在MC35 模块和SIM 卡之间通过串联一个22Ω 的电阻来抑制杂散的电磁干扰。
1.4 电源模块 考虑到系统使用的便捷性,本系统的电源供电采用了3.7V 的锂电池。GSM 模块的供电则通过在3.7V 的电源上外加滤波以及退耦电容而实现;另外,由于MSP430F149 单片机、ADXL345 加速度传感器供电需要3.3V 的电压,故本设计中采用AME8827-3.3 稳压模块来完成3.3V 电压的输出。AME8827-3.3 是一种低压差线性稳压器,它的输入电压范围为2.5-5.5V,可以固定输出3.3V 的电压,其外围电路比较简单,只需要在输入端并联一个1uf 的电容来抑制噪声,提高电路瞬态响应,输出端并联一个4.7uf 的电容来减少输出噪声和电路的负瞬态响应。
2 软件设计
图4 主控程序流程图
本系统的工作流程是控制系统将ADXL345 模块采集到的数据进行处理,然后将处理结果通过GSM 模块发送到家人的手机上。MSP430F149 单片机在上电之后,各模块终端初始化,单片机通过中断的方式对各模块进行不断的扫描,当ADXL345 模块通过四个依据判断老人摔倒后,将此信息发送给MSP430F149单片机,单片机通过分析,开启GSM模块,将此信息发送到家人的手机上。主控程序流程如图4 所示。
ADXL345 摔倒检测算法流程图如图5 所示。通过单片机根据摔倒过程中四个关键条件来判断是否摔倒报警。需要注意的是ADXL345 模块中的中断之间的时间间隔必须在一定范围之内。在一般的情况下,特别是FREE_FALL 中断(失重产生的)与Activity 中断(跌倒撞击产生的)之间的时间间隔不能够特别的长,除非从非常高的地方跌倒。类似地,Activity 中断(冲击)与Inactivity 中断(静止)之间的时间间隔也不应过长,相关的中断检测阈值和时间参数可根据需要灵活设置。另外,如果跌倒导致昏迷等严重后果,人体保持静止的时间会更长。这种状态仍然可以通过Inactivity 中断检测到。因此,如果跌倒后检测到Inactivity 状态持续一定长的时间,则可发出紧急报警。
图5 ADXL345 算法流程图
3 结语
随着“智慧养老”逐步走入人们的生活,摔倒检测系统也将是推动智能化养老进程中一个重要的部分。摔倒检测系统是一种个人远程监护系统,保护了老年人群的健康与安全,它可以有效检测老年人是否发生跌倒并及时报警[6]。所以,摔倒检测技术愈发地受到社会各界科研院所的重视。本系统解决方案通过ADXL345 硬件中断实现,具有算法复杂度底、检测准确率高的特点;同时将超低功耗单片机芯片MSP430F149 作为主控芯片实现摔倒检测,价格低廉方便实用,可在生产上广泛推广应用。
[1]石婷,贺志楠.基于Android 平台的老人摔倒检测系统设计[J].电子科技,2014,27(9):82-84.
[2]陈迪荣,李文钧.可用于智能养老院系统终端的电路设计[J].电子器件,2012,35(3):358-360.
[3]郭稳涛,何怡刚.智能家居远程监控系统的研究与设计[J].计算机测量与控制,2011,19(9):109-112.
[4]李兵水,孙兆辉.城市社区居家养老服务存在的问题和对策研究[J].保定学院学报,2013,26(1):29-32.
[5]沈建华,杨艳琴,翟晓曙.MSP430 系列16 位超低功耗单片机原理与应用[M].北京:清华大学出版社,2004.
[6]臧楠.老人跌倒检测系统的设计与实现[D].西安电子科技大学,2013,12.