APP下载

可穿戴式跌倒检测与预警系统研究

2015-01-02曲凤娟

科技视界 2015年4期
关键词:误报陀螺仪蓝牙

曲凤娟

(北华航天工业学院,河北 廊坊065000)

0 引言

人口老龄化己成为一个世界性的问题。我国早在1999年就已经进入老龄化社会。老年人占总人口的比重在持续攀升之中,空巢老年人家庭也占了相当大的比例。如何更好的赡养老人已成为社会难题。除了可能的各种疾病外,老年人在日常生活中跌倒的发生率也非常高,是老年人伤残和死亡的主要原因之一。当老年人跌倒时,若能够得到及时的救助,那么可以减少伤痛带来的痛苦,甚至可以避免死亡。可穿戴式跌倒检测与预警设备能够在佩戴者发生跌倒后及时报警,接到报警的救助人员可采取相应措施尽快实施救助,即使身边无人的情况下也能得到及时救助。

1 可穿戴式跌倒检测与预警系统结构设计

1.1 系统结构

本系统主要分两部分:一部分是人体运动采集和分析模块,包括主处理器、三轴加速传感器、陀螺仪和蓝牙通信模块,这部分佩戴在人体的腰部;第二部分是报警和定位模块,此部分基于android的智能手机,手机通过蓝牙接收到报警信号后,启动GPS定位,通过短信或电话形式向家人报警。本系统结构如图1所示。

图1 系统结构图

1.2 模块功能

系统采用STM32作为主处理器,接收来自陀螺仪、三轴加速度计的数据和信号,执行算法进行数据处理,并在必要时通过蓝牙模块向手机1发送报警信号,手机1接到报警信号后继续向手机2发出报警短信或电话,同时给出警报所在的位置信息。

三轴加速度计是测量载体x轴、y轴以及z轴方向上线加速度的仪表,通过3个轴向的加速度判断跌倒动作。当然,仅通过三轴加速度计是测不到转动的动作的,难以测量出完整的3D动作,所以进行跌倒动作的判断还需要结合陀螺仪。陀螺仪可以对转动、偏转的动作做很好的测量,这样就可以精确分析判断出使用者的实际动作。

本系统采用手机端作为服务器端,STM32端则作为客户端。STM32通过发送AT命令与手机端进行连接。

手机端执行采用Eclipse编程技术开发的应用程序,除了要开发必要的界面还要长期监测是否有跌倒信号出现,因此收发蓝牙传输数据功能需要定义为Service服务,保证系统能够在后台监听。Service的启动流程为:context.startService()-ffgt;onCreate()-ffgt;onStart()-ffgt;Service running-ffgt;context.stopService()-ffgt;onDestroy()-ffgt;Service stop。与Service通信的设备或Activity有:(1)通过蓝牙无线通信的跌倒检测装置(FD):Stm32当检测到有跌倒可能时,向手机发送报警信号;(2)启动Service的Activity(StaAct):用于启动;(3)StopActivity(StpAct):用于误报时用户停止报警界面;(4)FeedBackActivity(FBAct):用于反馈用户对误报原因的界面。

为实现定位需要使用百度地图。百度地图提供多种定位方法,考虑到各种定位方法的精度,优先GPS定位,然后是wifi定位和基站定位。首先需要下载相关最新的库文件并导入:将liblocSDK4.so文件拷贝到libs/armeabi目录下,将locSDK4.1.jar文件拷贝到工程的libs目录下,并在工程属性-ffgt;Java Build Path-ffgt;Libraries中选择“Add JARs”,选定locSDK4.1.jar,确定后返回;其次,设置AndroidManifest.xml:在application标签中声明service组件,每个app拥有自己单独的定位service,并且声明使用权限进行网络定位。还需import类com.baidu.location.BDLocation、com.baidu.location.BDLocationListener、com.baidu.location.LocationClient及com.baidu.location.LocationClientOption。

在发出报警短信或拨打电话时,给出定位的地址信息。百度地图提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,通过向服务器发送包括经纬度信息在内的HTTP请求,服务器返回JSON数据,再通过JSON解析获得地址信息。

图2

图3

另外,手机端需要先开启服务。当检测到跌倒后,跌倒检测装置会通过蓝牙向手机发送数据,表示检测到跌倒。同时,跌倒检测装置也会发出蜂鸣声,手机端会进入误报停止界面,界面如图2所示。如果是误报,需要点击stop按钮,进入反馈界面,反馈界面如图3所示。反馈的误报问题有:跑步、坐、躺、上下楼梯、跳及什么都没有做。需要用户选择产生误报的原因,从而根据报警自适应修改阈值。如果是真的跌倒,stop界面会等待1分钟,手机端会将跌倒的信息发送给预设置的手机。

2.2.2 算法

STM32微控制器在加电后,首先初始化中断向量表,设置栈空间,调用System_init初始化系统时钟后再跳入main函数。在main函数中执行卡尔曼滤波算法:采用信号与噪声的状态空间模型,利用前一时

2 可穿戴式跌倒检测与预警设备实现

2.1 系统硬件集成

跌倒检测模块采用野火STM32 V3开发板;关于陀螺仪和加速度计,本文选用了MPU-6050;跌倒检测模块与手机的通信采用蓝牙串口模块FBT-06;手机1为基于Android的智能手机,其需要运行相应的应用程序;手机2则可以是任意的可用手机。

MPU-6050整合了3轴陀螺仪、3轴加速度计。MPU-6050通过主I2C端口以单一数据流的形式,向STM32输出数据。因此,只需把STM32的引脚PB6(SDA)和PB7(SCL)分别连接到MPU-6050的24号引脚(SDA)和23号引脚(SCL)上即可。

蓝牙模块FBT-06的TXD和RXD与STM32的RXD和TXD连接即可。

2.2 软件实现

2.2.1 手机端刻的估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。

本文只对单轴陀螺仪的信号进行软件滤波,因此维数为1,将其中表示矩阵行数和列数的入口参数用宏定义参数ONE代替,该值设为1。卡尔曼滤波算法函数C语言实现如下:和测量值计算当前最优值;

3 结束语

本文设计开发了可穿戴式跌倒检测与预警系统。该系统可检测佩戴者产生的跌倒动作,在给出短信报警或电话报警的同时能够对跌倒者进行定位。本系统手机端的应用程序运行于Android系统;跌倒检测模块以STM32为主处理器,接收来自MPU-6050的数据采用卡曼尔滤波算法判断是否发生跌倒,若跌倒则通过蓝牙模块FBT-06向运行Android系统的手机发出报警信号。本系统已经过测试,测试的手机1型号为HTC 528t。

[1]卓炜.基于Android操作系统的软件开发及应用的探讨[J].电子技术与软件工程,2013(23).

[2]吴赫.Service与Android系统实现(1):应用程序里的Service[OL].http://blog.csdn.net/21cnbao/article/details/8086487

[3]张爱国,邬群勇,李法礼.基于GPS与移动网络的自适应定位[C]//第二届中国卫星导航学术年会电子文集.2011.

[4]薛源.基于多传感器的老人跌倒检测系统的研究与应用[D].武汉:武汉理工大学,2011.

猜你喜欢

误报陀螺仪蓝牙
基于EMD的MEMS陀螺仪随机漂移分析方法
家用燃气报警器误报原因及降低误报率的方法
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
我国著名陀螺仪专家——林士谔
安全监控系统误报警故障的排除思路与方法
紧急:蓝牙指尖陀螺自燃!安全隐患频出
微机械陀螺仪概述和发展
MEMS三轴陀螺仪中不匹配干扰抑制方法
各类气体报警器防误报漏报管理系统的应用