1. 引言
第七次全国人口普查结果显示,我国60岁及以上人口为26,402万人,占18.70%,与2010年相比,60岁及以上人口的比重增加了5.44% [1]。数据表明,人口老龄化程度进一步加深,未来一段时期将持续面临老年人口长期均衡发展的压力。随着中国老龄化进程加快,每个家庭都有一两个甚至更多的老人,同时也受到上个世纪独生子女政策的影响,中青年逐渐兼顾不了照顾老年人的重担,因此智能轮椅的需求量越来越大 [2]。将目前常见的普通轮椅改为智能轮椅可以方便老年人的生活,有利于伤残病人的治疗与康复,满足病人的各种需求。除了年老体弱不方便走动的,还有受伤的残疾人、孕妇等行动不便的人群也可以使用智能轮椅 [3]。
为了让轮椅智能化 [4]、便携化、可移植化以及低成本化,保障老年人以及其他轮椅使用者的安全和良好体验感,本文设计了这款智能轮椅系统,相比之前的智能轮椅具有轻量化、模块化的特点,这也是未来轮椅发展的趋势。轻量化的设计可以极大降低内部的驱动结构以及其他受力结构的重量,这样可以给予用户更加优越的操控体验和更加稳定的续航体验。模块化的流程设计也可以使智能椅便于定制化生产。本设计的创新点是加入了云端存储功能来进行数据的保存,这有利于后期为使用者的健康分析提供数据支持。
2. 总体方案设计
目前市面上出现的智能轮椅价格都偏高,是普通轮椅价格的十几倍。本设计以医疗辅助为目的,为了帮助普通轮椅改造升级实现智能化,我们设计了一款智能轮椅系统结合了健康监测和运动辅助控制功能,能够在已有的轮椅的基础上进行功能的添加,具有较高的可移植性和便携性,以较低的成本增加了轮椅的安全性和使用体验。
本设计主控选用ST公司的STM32F103C8T6,完成了对系统的硬件和软件设计,实现了高性能且价格低廉的设计目标,功能相对于51单片机来说更为全面。
图1展示了系统的整体框架,分为九个模块。本设计主控模块选用了STM32F103C8T6。系统工作时,首先获取超声波模块 [5]、红外温度模块 [6]、心跳检测模块 [7]、GSM模块 [8]、GPS模块 [9] 的数据,再通过单片机接收各个模块的数据并发送指令,实现体温和心率的实时监测显示。同时通过GPRS模块 [10] 将温度信息显示在云端,当出现指标异常或者轮椅侧翻的时候,使用蜂鸣器模块的报警功能,然后通过GPS模块定位获取轮椅的经纬度,再启动SIM800C模块的发送短信预警功能,在指标出现异常的时候用于提醒使用者及其家人。
3. 系统硬件设计与实现
3.1. STM32处理模块
主控模块是硬件部分的核心,方便系统功能的拓展。本设计采用的主控MCU是STM32F103C8T6型号的单片机。其原理如图2所示,其存储器容量是64KB,工作时的温度为−40℃~85℃。主控的供电电压选用3.3 V,其最大的输出电流为150 mA。此MCU具有超前的体系结构,极高的性能。相比常用的51单片机来说,它的功能更强大。

Figure 2. Circuit diagram of STM32F103C8T6
图2. STM32F103C8T6电路图
3.2. 身体健康检测模块
选用MLX90615传感器用以检测环境与目标温度,电路图如图3所示,其为非接触式温度模块,且成本与功耗较低。使用串口通信即可获取到真实环境温度以及真实体温,拥有连续输出与询问输出两种模式。对比传统的DS1820传感器测温,程序编写更加的便捷。

Figure 3. Circuit diagram of temperature sensor
图3. 温度传感器电路图
心跳检测的实现采用Pulse Sensor用于检测心率电路图如图4所示。由于主控所使用的是32单片机,有固定用来模数转换的引脚,不像51单片机中还需要另外扩展模数转换器,因此使用十分方便。将手指安放在传感器上,将采集到的关于心跳的模拟信号通过单片机的模数转换功能转化为数字信号,并且每隔五秒钟便执行一次心跳检测,找出模数转换的值得最大值与最小值,将平均值作为中间阈值。当前一次心跳数据小于阈值并且后一次心跳数据大于阈值的时候,通过单片机的简单编程读取即可得到心率数值。

Figure 4. Circuit diagram of heartbeat monitoring module
图4. 心跳监测模块电路图
3.3. 轮椅姿态检测模块
本设计选用了MPU6050传感器用于实现检测倾角的功能,电路图如图5所示。MPU6050模块由三轴加速度器和三轴陀螺仪组成。陀螺仪直接输出的是角速度,加速度器输出的是倾斜角。其通信方式为IIC通信。本设计需要对轮椅是否侧翻进行检测,当轮椅侧翻时,通过DMP解算出来的翻滚角将会发生急剧的变化,由此可以判断轮椅侧翻,从而即时的发送短信报警,达到设计需求。
超声波测距模块是用来检测距离的一种产品,本设计中选择了HC-SR04,电路图如图6所示。它具备较为稳定的k性能,能够实现较为精确的距离检测,最大检测距离可以达到450 cm,并且检测的盲区仅有2 cm。模块通过发送和接收超声波,利用声音传播的速度和时间差,可以较为精准的计算出模块到前方障碍物的距离。当轮椅运行时,若前方存在障碍物,可以有效防止碰撞。在碰撞前可以即时让蜂鸣器报警,达到预警作用 [11]。模块四个引脚为触发信号Trig,回声信号Echo,供电VCC和GND,测量周期60 ms以上。通过单片机给TRIG引脚触发信号来使得模块启动,当产生回波时,ECHO引脚会产生一段与声速,距离有关的高电平时间,计算即可得出真实距离。

Figure 5. Circuit diagram of posture detection module
图5. 姿态检测模块电路图

Figure 6. Circuit diagram of ultrasonic ranging module
图6. 超声波测距模块电路图
3.4. 互联互通模块
SIM800C是性能较好的GSM模块,电路图如图7所示。此模块通过AT指令能实现拨打电话,发送短信等功能。其具有5~18 V宽电压供电,可上电自动开机,自动读取SIM卡信息,操作方便简单。本设计运用此模块进行发送短信报警功能。

Figure 7. Circuit diagram of GSM module
图7. GSM模块电路图
上传数据至云端的物联网模块采用的是E16为核心模块开发,可以实现串口与互联网通过GPRS网络相互传输数据的功能,可以通过MQTT协议实时将数据传输至云端。同时使用OLED模块做显示功能,电路图如图8所示。

Figure 8. Circuit diagram of OLED display module
图8. OLED显示模块电路图
3.5. 安全模块
为了程序简便,本设计在蜂鸣器选择上选择了有源蜂鸣器,电路图如图9所示与无源蜂鸣器相比,有源蜂鸣器操作更方便,仅需控制高低电平就可使蜂鸣器响或停。蜂鸣器发声是根据压电效应实现的,当电磁线圈中有电流通过时,振动膜被电磁圈产生的磁场驱动,进而产生声音。由于单片机引脚输出电流较小,故选择采用NPN型三极管构建电流放大电路来驱动蜂鸣器,因此这里的三极管也可以当作是蜂鸣器的开关。
ATGM336H模块支持北斗/GPS/GLONASS卫星系统,电路图如图10所示。支持3.3 V~5 V可以方便接3.3v或者5v单片机系统,板载可充电电子,可以加速热启动的捕获过程。默认波特率9600,波特率可设置。TTL电平UART接口,用户连接单片机的串口TTL电平串口或者USB-TTL模块测试。带有SMA和IPEX两种天线接口,方便选择自己需要的外置天线。带有PPS引脚,可以精确的进行授时输出,方便做时钟同步等应用。具有高灵敏度、低功耗、低成本等优势,适用于车载定位与导航和手持或可穿戴设备,用于本设计的轮椅辅助模块非常实用。

Figure 10. Circuit diagram of positioning module
图10. 定位模块电路图
4. 系统软件设计
软件设计是智能轮椅系统的重要组成部分,只有对硬件进行合理有效编程,才干实现智能轮椅系统的功能和应用。软件编制的好坏对系统可靠性和稳定性等性能也有很大影响 [12]。本文在智能轮椅系统软件设计中使用模块化编程,各模块相对独立,为日后软件更新和后续升级提供了便利。同时在编写程序的时候对例程有较多的参考来保证系统软件设计的稳定性和可靠性。
如图11所示,系统初始化后,会读取所有传感器测量的值,将获取到的数据显示在OLED屏幕上。随后判断超声波获取的距离信息有没有到达临界阈值,若到达报警阈值50 CM,单片机发送指令给蜂鸣器,蜂鸣器实现报警功能。倾角检测模块判断翻滚角信息反馈至单片机,判断翻滚角度有无异常,若存在异常,翻滚角大于250或小于0则发送报警短信。最后判断身体指标参数,如果心跳指数不在正常区间并且距离小于10则代表不正常或者体温不在正常区间,立即由GSM模块向使用者家属发送短信。
4.1. 身体健康检测模块
心跳检测模块初始化后,使用STM32内部自带的模数转化对输入的电压信号进行转化,将模拟信号变为数字信号。每10毫秒进行一次模数转化,并将此时的值用数组保存起来。本设计用于判断每一次心跳所使用的判决规则是,每五秒钟执行一次心跳检测算法,首先遍历模数转化的值,找出其最大值,最小值。此时即可利用最大值和最小值即可求出中间阈值。当前一次心跳数据小于阈值,后一次心跳数据大于阈值时,即可认定为产生一次中断。将五秒内的数据乘以12即可大致模拟出1分钟的心跳数据。红外温度传感器使用串口通信。通过串口输出温度数据给到单片机。通过创建数组将温度数据帧保存,数组帧共9位,最后一位校验位为前面数据累加和,第5,6位与第7,8位分别为目标温度与环境温度数据,经位运算得出真实温度数据,由此可以得到真实的体温值以及真实的室温值,随后通过OLED屏幕显示出来。
4.2. 轮椅姿态检测
倾角检测模块初始化后,然后运用MPU6050自带的数字运动处理(DMP)对获得的数据进行融合演算。在实际应用中,使用DMP来实现传感器融合算法可以减少用户编程的压力,不需要复杂的姿态解算过程就可以得到期望的数据。在DMP解算完成后,即可读取姿态解算所得出的姿态角数据。获取到四元数后,通过四元数解算读取到姿态角,提取出翻滚角,随后判断角度数据,当角度偏离过大时,则判定为侧翻。超声波检测系统初始化后,主控会向超声波的TRIG引脚发送触发方波,超声波模块会自行启动,发出检测的超声波,当其检测到障碍物时,会将超声波反射回来。当超声波模块接收到回波的时候,会有一段持续的高电平时间在ECHO引脚上产生,此时利用单片机的定时器开始计数,高电平时间与检测距离成正比。在高电平转变为低电平后,关闭计数。将所计得的数进行转化,即可得到对应的探测距离。
4.3. 互联互通模块
当接收到需要发送短信的信号时,单片机通过串口通信,发送AT指令给SIM800C模块,模块会自动解析命令,将命令中的短信内容发送至对应的SIM卡用户,即可实现报警功能 [13]。具体操作如下:首先单片机向模块发送“AT + CPIN?”,模块终端将返回一串字符串代表是否需要密码操作,返回“READY”代表不需要任何密码;随后发送“AT + CMGF = 1”代表选择短消息格式为文本模式,模块终端返回“OK”代表配置成功;再发送“AT + CSCS = \“GSM\””代表选择GSM7位缺省字符集,模块终端返回“OK”代表配置成功;最后通过发送信息子程序发送短信接收的电话号码以及短信内容,返回“OK”代表发送成功。GPS模块首先设置NVIC中断分组2:2位抢占优先级,2位响应优先级,然后进行串口初始化位9600,获取UTC时间、获取纬度信息、获取N/S,获取经度信息、获取E/N,后进行数据解析,计算后输出位置信息。E16V通过发送AT指令来发布和订阅主题,并在调试GPRS模块的时候配置好腾讯云信息,包括服务器信息,clientID用户名,密码等,通过MQTT协议实现了传感器数据到腾讯云的上传。
5. 系统测试
5.1. 互联互通模块
通过GSM通信模块,如图12所示手机可以通过短信正常接收到使用者的求助信息。
通过GSM模块,使用者家属可以实时查看使用者的位置信息如图13所示:
5.2. 显示模块
使用者的体温信息可以成功显示在云端,使用者家属可以对智能轮椅使用者信息进行实时监控。显示部分采用了OLED显示屏用于距离,心率,体温等数据的显示液晶显示模块上可以正确显示使用者的心率、体温、与前方障碍物距离以及轮椅倾角,如图14所示。当发生侧翻或者遇到障碍物时,蜂鸣器会马上报警,并且将求助信息发送给使用者家属课和医生的手机上。下图是显示的患者身体以及轮椅状态信息。

Figure 14. User and wheelchair status information
图14. 使用者与轮椅状态信息
6. 结束语
本文成功设计了一个智能轮椅系统,可以让使用者对健康状况进行实时地了解。同时可以将使用者温度信息发送到云端并进行显示并存储,在使用者轮椅发生侧翻或者前方遇到障碍物时可以及时发出警报,并将求助信息发送到使用者家人或者医生的手机上,本设计还增加了GSM定位系统,可以让使用者家人以及医生及时知道使用者位置信息,从而实现了对使用者各方面信息的实时监控。
基金项目
2021年学位点引导布局与建设培育项目(项目编号:XWDB20211105)。