基于智能型老人摔倒检测定位系统设计

2021-12-31 05:07王思奇王致杰
新一代信息技术 2021年21期
关键词:子程序串口报警

王思奇,王致杰

(上海电机学院,电气学院,上海 201306)

0 引言

人口老龄化已经被认为是一个极其严重的社会问题,因为我国的人口老龄化是存在惰性的,虽然每对夫妇的子女数量一直很少,但由于育龄夫妇的人口老龄化程度仍然非常高,我国人口将在15年后快速达到30亿保持不变。根据国家的人口普查技术,截至2014年为止,我国老年人口已经占总人口的14%,已经成为世界上老人人口最多的国家。

老人由于机体退化骨质疏松非常容易摔倒,摔倒会带来一系列的疾病甚至会导致死亡。除了可能导致人体死亡外,跌倒受到撞击或物体坠落等还可能会给人带来更多的其他严重后果,如重度残疾、机体活动功能严重损坏、身体活动持续时间受限。因此降低老年人摔倒带来的伤害或及时救助是目前国内外最新的研究热点。在不影响老年人的正常活动的情况下,摔倒时及时发出预警告知监护人,这样老年人能够第一时间被救治,减少了老年人摔倒时产生的医疗费用和死亡率。

国内外主要有三个研究方向分别为老人自主启动报警设备、视频监控设备、易携带式老人摔倒检测定位系统。第一种装置局限性较大,因为它不能自己报警,必须摔倒后老人自己按报警健,可是大多数时候老人摔倒以后都是处在昏迷状态,无法自主报警,所以这种设备的实用性非常差,而且设备过于简单,不具备本文的参考性。第二种设备局限性也很大,这种设备一般装在家中和病房中,这样可控范围就很小,而且需要大量的人力和物力。第三种就是本文研究的这种,由于上述产品的限制,出现了一些可穿产品。这个装置不是由老年人自己操作的,地域也很广,不仅可以在室内,也可以在室外,不需要人员去监控,只要老人一摔倒就会马上判断并且发出警报,成本低,实用性非常高。

针对上述问题,本文提出了基于STM32单片机老人摔倒检测定位系统设计。首先,对各硬件做出简单的介绍,对实物电路原理图做出描述。其次,用模拟摔倒实验得出加速度值和角速度值再运用SVM得出判断摔倒阀值。再次,运用KEIL程序开发编写程序以及用FlyMcu程序烧录软件。最后,实物功能展示。

1 硬件设计

1.1 摔倒检测定位系统的功能设计

(1)硬件系统在通常情况下垂直放置在腹部口袋里(ADXL 345垂直站立),倾斜角传感器比较数据和用 SVM算法设计的阀门值进行比较来判断摔倒,如果判断摔跤、蜂鸣器警报、倒地的时间超过15 s就会向监护人发短信(15 s是用来让老人反应是否严重,能不能自己站起来报警,或者是不是误报警,可以自己按取消键)。

(2)启动GSM800发送短信给监护人,发送的内容有help me!包括经度信息和纬度信息。

(3)当要发短信时状态指示灯就会不断闪烁。

1.2 硬件的电路设计

如果硬件太大就不适合老年人日常活动携带,所以本文采用了集成化思想来设计硬件。硬件系统主要可以分为五个模块:STM32主板模块,ADXL345加速度传感器信号采集器模块,定位GPS模块,报警器模块,SIM800发短信模块。五大模块互相结合组成了硬件系统。将GPS模块的TXD串口接在单片机的TXD串口就可以传送数据,RXD模块串口发送脚接单片机串口 RXD接收数据;GSM模块RXD串口和单片机的PA9串口相连就可以接收数据,TXD串口发送端与单片机的PA10串口相连就可以发送数据;采用的报警模块为5 V 有源蜂鸣器模块,采用三极管 8050来驱动,只要单片机控制引脚为高电平,蜂鸣器就会鸣叫报警,反之则不鸣叫。图1为电路原理图。

2 基于SVM的判断摔倒阈值设计

2.1 摔倒过程的运动特征

要检测摔倒就要把摔倒和非摔倒时的运动特征区别开来。非摔倒时人的某一方向上的加速度和角加速度都不会有很大的变化,而摔倒情况下,人在某一方向上的加速度和角加速度都会有短时间的极快变化。人在摔倒时身体的各部位受力情况都会不同,加速度也不同。摔倒主要分为三个状态:不稳定状态,倒地状态,躺倒状态。

图2为人体运动的抽象图,将人的运动方向分为 xyz三个方向。人在平常运动时 xoy面与地面平行,xyz三方向上的加速度也不会短时间改变。但由于老人和年轻人不一样,大部分老人都会驼背,所以一开始的 xoy面与地面就有一个倾角。从而加速度和 xoy与地面就可以明显反应出老人的运动情况。当老人摔倒时腰部会有明显的受力变化,假设腰部质量为m,xyz轴合并的加速度为a,腰部受力F为:

图3根据笛卡尔系建立的 xyz轴坐标系能很好的反应出加速度和角度变化,设x方向的加速度为ax,y方向的加速度为ay,z方向的加速度为az,这可以得到合加速度a为:

根据笛卡尔坐标系也可以很容易观察到老人在摔倒时的角度变化,如图 3,当老人摔倒是侧倒下时,y轴偏转角度为θy,当老人摔倒是前倒,则z轴与竖直方向上形成角度θz,当老人摔倒时是后仰,则x轴偏转角度为θx,当老人摔倒时旋转也会形成一个偏转角度θ。这些偏转角度有时是单独出现,但绝大多数情况下都同时出现。

2.2 摔倒过程信息提取

要想判断老人是否摔跤就必须把摔跤和非摔跤区分开来,根据第二章的笛卡图坐标系来采集人体的运动学信息样本。

如图3我们可以知道xyz各方向上的加速度ax,ay,az,现在就要根据各方向的加速度求出合加速度a=(ax,ay,az):

设角速度w1为x轴的偏转角速度,w2为y轴的角度变化速度,定义w=(w1,w2)为合角速度:

实际采用的传感器采集到的角加速度都是离散分量,所以要求出x轴的角度变化θ1,y轴的角度变化θ2不能用积分计算而用累加计算:

由上文我们就得到了合加速度和合偏转角,但是这只是角度传感器所测得的初步数据不够准确还需要STM32的预处理。

2.3 基于SVM的阈值确定

由上文我们得到了合加速度和合偏转角,此时我们就要确定一个阈值来判断摔跤与否。本文的阈值确定运用的是机械学习中的SVM算法。

SVM(代码全名:矢量机支持)支持矢量机,SVM最基本的应用就是对矢量机进行分类,解决最佳的分类表面,然后将其应用到各种矢量机中。对于SVM,有一个被称为分类表面,两个点组被设置为到该平面的最低距离,以及从两个点组的边缘点到该平面的最高距离。SVM使用轴心损失功能计算经验风险,向解决方案提供系统添加监督条款,优化系统的结构风险。SVM可以通过核训练法进行非线性分类,这也是核训练的一般方法之一。

2.4 样本集选取

用SVM来求阈值,就要对老人的日常生活过程中的信息进行分类,需要创造出训练样本集和实验样本集:

y1:训练样本集,获得最优分类界面。则要完成40次模拟摔跤实验获得摔跤数据样本,完成40次行走过程摔跤,40次行走转身模拟,40次坐下起立模拟,40次蹲下模拟。共获得200组模拟数据样本。

y2:实验样本集,用来检验所设阀值的准确性:完成 10次模拟摔跤,10次行走过程摔跤,10次行走过程蹲下模拟,10次转身模拟,10次自立坐下模拟。运用上面的训练样本集来测试检测系统的准确性。

2.5 数据样本获取

部分转身数据获取,见表1。

表1 转身数据Tab.1 turn round and data

部分蹲下数据获取,见表2。

表2 蹲下数据Tab.2 squat down data

部分坐下数据获取,见表3。

表3 坐下数据Tab.3 sit down and data

部分摔倒数据获取,见表4。

表4 摔倒数据Tab.4 fall data

2.6 阈值的确定

此时我们运用libsvm程序来得出我们想要的阈值。将上文中的数据以 libsvm的格式输入到libsvm中,在python中将下文的程序输入就可以调用libsvm,从而得到最优分类面和想要的阀值。

最后得出我们合加速度的阈值和合偏转角的阈值,X=650,y=490。

由此可以得出比较阀值。

3 软件开发和实物功能展示

3.1 程序开发流程

程序部分主要开发了一个主程序和七个子程序,子程序分别是:按键初始化子程序 key;通用定时器子程序 timer;ADXL345检测角度加速度变化;延时子程序 delay;led驱动子程序;系统中断设置化子程序sys;收发经纬度日期信息子程序usart。图4为程序流程图。

3.2 具体功能实物演示

当老人摔倒时首先蜂鸣器会报警,当15 s以后没有按下暂停键就会发短信给家人,短信内容包含经纬度。因为硬件并未安装电池但是外接USB,只需要将数据线插在一般的充电宝上就可以实现功能,但是因为GPS的局限性,定位功能并不能完全准确,且在高楼多的地方和阴雨天不太灵敏,在室内是无法定位的。图5和图6为功能演示图,板子直立模拟老人未摔倒时,平躺模拟老人摔倒时。

4 结论

随着老龄化社会的不断加剧,我国空巢老人日益增多。每年因为摔倒而死亡的老人也日益增多,如果能研究出老人摔倒检测定位系统,会减少因为摔倒而产生的医疗费和死亡率,对老人看护和健康管理有重要作用。研究的主要结论如下:

(1)获取数据的过程,区分出老人摔倒和老人正常运动特征的区别,从而得到两者加速度和角速度的区别。其后设计采集加速度和角速度的易携带设备。实验中采集了200组数据,旋转、蹲下、坐下各40组,跌倒80组包括步行跌倒和直立跌倒在内,共获得200组数据。

(2)大部分的老人摔倒检测定位大多是使用三轴加护速度传感器去检测,也有用6050去检测的。本系统用加速度和角加速度变化来和SVM算法设计的阀值进行比较。用 SVM取得最优分类界面,选择最优分类界面上的值来区别老人是否摔倒,这就大大降低了误判可能。

(3)运用STM32硬件去开发传感器检测到的加速度和角速度与阀值比较来判断摔倒,再通过SIM800发短信给手机。

(4)该装置通过物联网技术实现远程监控,具有实时性强,使用简单,效率高的特点,市场前景广阔。

猜你喜欢
子程序串口报警
浅谈AB PLC串口跟RFID传感器的通讯应用
LKD2-HS型列控中心驱采不一致报警处理
2015款奔驰E180车安全气囊报警
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
浅谈子程序在数控车编程中的应用
死于密室的租住者
奔驰E260车安全气囊报警
子程序在数控车加工槽中的应用探索