秦侨,王南兰
(湖南文理学院 计算机与电气工程学院,湖南 常德,415000)
随着社会经济的快速发展,我国社会人口的年龄结构也逐步出现老年化的态势[1]。由于老年人行动不便,所以如今越来越多的子女给老年人准备了轮椅,但因此也出现了一些新的问题,如老年人遗失轮椅、轮椅被盗、乘坐轮椅上下坡时易发生摔倒而无人照看等情况[2],国内外对于此类问题也设计有相应的解决方案,比如避障、机械式上楼梯、防盗功能等等功能的轮椅,但此类轮椅一般是一体式轮椅,普遍成本价较高且不易改装升级。针对上述问题,本文设计了一种基于STM32F103的智能轮椅辅助装置。该装置结合物联网技术[3],能够实现GPS 定位、轮椅摔倒报警通知、轮椅被盗警报、心率检测,并通过GPRS 将信息上传,可在手机APP 及PC 端后台实时从地图上查看轮椅位置及老年人的安全状况。本设计装置能够方便的搭载于各类现有的普通轮椅上,既方便携带,成本也较低。装置的定位精度为8 m,性能稳定,可靠性高。
本装置由穿戴部分与载体部分组成。穿戴部分主要由STM32F103 主控板、蓝牙模块、心率传感器组成,可实现通过蓝牙控制轮椅警报功能的启停、通过心率传感器实时测量老年人的心率[4]并通过蓝牙传输信息给;载体部分主要由STM32F103 主控板、姿态检测器、GPS 模块、GPRS 模块,可实现对轮椅位置的实时精确定位以及对轮椅摔倒后的自动报警通知的功能,并能通过GPRS 上传信息至云服务器。此外设计了APP 及PC 端后台,监护人可实时方便快捷地查看位置及安全信息。
图1 整体设计图
主控制器采用的是STM32F103ZET6 单片机,其内核为ARM 公司Cortex-M3,最高时钟频率为72 MHz,ARM 内核拥有高速的运算能力及丰富的串口及控制功能,方便外接各类模块,还可利用FLASH来存储系统的一些参数,包括GPS 定位经纬度、心率数据、云端下发命令数据等。与传统的通用DSP+单片机+A/D芯片的设计方案相比,STM32F103弥补DSP芯片在资源和控制方面的不足,不仅简单可靠,而且成本低廉。本设计采用的是STM32F103ZET6 主控制器,具有2 个12 位的us 级的AD 转换器、11个定时器,还有丰富的串口资源,这正是本设计所需要的。
ATK-S1216F8-BDGPS/北斗模块是一款具备高性能、高精度GPS/北斗定位功能的模块。它的体积很小,能够便于安装,同时它具有极好的性能,定位精度能够达到8 m。该模块能够通过串口通讯对其进行设置,包括数据刷新间隔、获取的数据种类、获取的数据来源等等。在获取数据后,该模块能够将信息保存在内部的FLASH 中,可以做到随时取用。该模块带有IPX 口,能够方便地连接有源天线,工作电压为3.3 V/5 V,能够方便连接单片机进行供电,其电路连接图如图2 所示。
图2 GPS 模块电路连接图
本设计采用MPU6050 芯片作为姿态检测器用来检测轮椅的六轴加速度,通过一定算法得到用户在三轴上的偏移角度从而知道用户的倾斜角度。该芯片具有抗冲击能力强、体积小、集成度高、成本低等优点。它包含三轴的加速度计和三轴的角速度计,精度为16 bit,内置有DMP(数字运动处理器)可用以姿态解算,能够检测获取空间内三轴的角速度及加速度,通过姿态解算的方法转换为欧拉角(航向角、横滚角、俯仰角),本设计采用的姿态解算方法便是DMP 方式,通过DMP 得到四元数转换为欧拉角,其电路连接图如图3 所示。
图3 MPU6050 电路连接图
ATK-SIM800C 模块是一款工业级的GPRS 模块,该模块功能强大,常用于短语发送、GPRS 信息传输、蓝牙通讯等无线通讯服务的领域,模块采用SMT 封装形式,其抗干扰能力强、体积较小,成本比较低,数据上行/下行传输的最大速率为85.6 kbps,需要通过AT 指令的方式配置其参数。数据传输方式采用的是内置的TCP/IP 协议[7]。其应用原理图如图4 所示。
图4 GPRS 模块电路连接图
本设计采用的是市场上常见的开源的脉搏心率传感器Pluse Sensor,该模块的心率检测原理是光电容积法,利用透光率不同而产生不同反射光,从而检测心率跳动频率,模块内置滤波放大电路,最终输出模拟电压给单片机,单片机通过AD 转换得到数字量后再经过数学换算可得到心率值。其实物图如图5 所示。
图5 PluseSensor 心率传感器实物图
GPS 模块通过天线收取到用户的经纬度信息,将信息传输给单片机,姿态检测模块时刻检测轮椅的姿态角度,心率传感器时刻检测用户的心率值,当两者同时超过设定的阈值时,会将警报信息传输给单片机,单片机将各种信息通过GPRS 模块传输给云服务器,应用软件可以联网查询到对应的信息。主程序流程图如图6 所示。
图6 主程序流程图
SIM800C GPRS 模块的操作是通过串口发送AT 指令进行的,首先进行开机检测,检查SIM800C 模块是否在线,然后测试模块是否在正常工作状态,如果状态正常则尝试附着GPRS 网络,附着成功后设置接入点名称,最后建立TCP 连接,当串口返回CONNECT OK 时表示联网完成,便可以通过AT+CIPSEND 指令发送数据。SIM800C的软件程序流程图如图7 所示。
图7 SIM800C 程序流程图
PluseSensor 心率传感器的使用较为简单,通过一个IO 口即可直接获取信息,只需要将此模拟量转换为数字量,简单滤除突变噪声,再通过公式换算即可获取实际心率值。其程序流程图如图8 所示。
图8 PluseSensor 心率传感器程序流程图
PC 端后台利用Visual Studio 平台基于C#语言开发;手机APP 利用Android Studio 平台基于java语言开发。云服务器将来自底层硬件发送过来的数据进行初次处理,再将数据发送至软件端,软件接收后对数据信息解码,获取经纬度后将其转化为百度地图经纬度,借用百度地图API 及Browser 控件将定位坐标显示在具体地图上。软件设计如图9 所示。
图9 PC 端后台软件设计图
本智能轮椅辅助装置基于STM32F103 控制器,能够实现GPS 定位、轮椅摔倒报警通知、轮椅被盗找回、心率检测,手机APP 及PC 端后台查询用户状态等功能。对老年人乘坐轮椅时存在的安全隐患与轮椅被盗问题实现了良好解决。