王亚伟,薛建彬,任汉能
(1.南京航空航天大学机电学院,江苏 南京 210016;2.中国航天科工集团8511研究所,江苏 南京 210007)
我国已经进入老龄化社会,调查数据表明,大量老年人患有神经系统、脑卒中和心血管疾病,这些疾病会导致偏瘫或运动功能丧失,给患者的生活造成不便。研究表明,及时、科学的康复训练运动有助于恢复肢体功能。但是康复训练需要在专业人士的指导下进行,否则由于训练方法不正确、训练量过少或过多,容易错过最佳的康复时机或者造成二次损伤[1]。目前的训练方式主要是医生和患者面对面训练,但是老龄化比例和医疗设施出现城乡倒置,因此大部分老年人需要异地康复训练。康复训练是循序渐进的过程,持续时间久,康复期间需要家人陪同,这些因素增加开销和时间,使得一部分人放弃康复训练。基于此现状,提出远程康复训练系统,使患者在家中进行康复训练,与医生通过系统进行线上交流。
2005年,芝加哥康复研究中心和斯坦福大学联合研制了一套低成本便携式的远程康复训练系统,患者通过患者端的康复设备做康复训练,治疗师通过实物模型远程监测康复运动[2]。2007年东南大学研究基于Internet的远程控制康复训练系统[3],病人端康复训练系统由康复训练机械臂、外部测控电路、控制计算机和摄像头组成。摄像头获取病人训练的视频信息,通过Internet发往医生端的计算机。医生根据病人端反馈的视频图像和力信号,判断病人的康复情况。2013年,东南大学宋爱国等人研究远程康复系统[4],同样是将视频通过Wi-Fi/3G通信技术传到医疗中心的服务器中,医疗师远程监测康复训练。
本文搭建远程康复平台,通过STM32控制模块采集传感器数据,并将姿态、表面肌电信号EMG通过Wi-Fi模块使用MQTT协议发送至云平台,经姿态解算、滤波、特征提取等数据处理后,将有用信息显示在网页端,为医生的康复诊断提供参考。
本文的物联网系统主要功能为数据采集、传输、存储、分析和应用,与物联网[5]的三层结构相映射。基于对系统终端控制模块、通信技术、通用协议,以及与服务器的选择,设计的系统整体架构如图1所示。
图1 系统整体架构
在所设计的系统中,各层的功能如下所述。
a.设备层。指患者或患者使用的康复设备。
b.采集层。利用姿态传感器和表面肌电传感器,采集患者康复运动时需要的关节数据和表面肌电信号。
c.传输层。采用Wi-Fi通信技术,通过ESP8266模组与云服务器通信,采集的数据通过MQTT协议传输,采集层和传输层的控制模块为STM32。
d.应用层。采集的数据存储在云端数据库中,经数据分析后通过网页查询、显示。
本节主要介绍数据采集、上传和网页设计,属于物联网系统的采集、传输和应用层。在康复系统中,首先根据功能需求选择合适的传感器,然后通过程序采集传感器的AD数据,在STM32上进行姿态传感器的姿态解算和表面肌电传感器的电压模拟量的转换,将转换后的数据上传至云平台,进行进一步的处理和分析。
上肢康复运动时需要采集姿态信息和运动时的肌电信息,姿态信息用于评价康复的关节活动度,肌电信号用于评价肌力。基于实验需求,选择MPU-9250模块和MyoWare肌肉电传感器。MPU-9250模块是一个复合芯片,由2部分组成,其中一部分是三轴加速度计和三轴陀螺仪,另外一部分是三轴磁力计。九轴数据经过融合可得到欧拉角,用欧拉角表示运动过程中的姿态信息,其中加速度计和陀螺仪会补偿角度偏移,从而使测量的角度精确。MyoWare肌肉电传感器是通过电位测量肌肉的活动,传感器由3部分组成,即肌肉中端电极、肌肉末梢电极和参考电极。在采集肌电信号时,中端电极放在要采集肌肉的中间,尽可能远离其他肌肉,肌肉末梢电极顺势放在下面,参考电极放在没有肌肉的位置上。
采集MPU-9250模块数据时采用IIC协议,将STM32作为IIC通信主机,MPU-9250作为IIC通信从机,并通过I/O口模拟IIC协议,使用PB6和PB7作为通信的时钟线和数据线,读取传感器数据。姿态数据读取流程如图2a所示。MPU-9250初始化包括STM32的I/O口设置,MPU-9250传感器的陀螺仪、加速度计、磁力计量程的设置,以及采样频率的设置等。初始化设置成功后可读取传感器的数据,原始数据是AD值,AD值会有跳动,因此采用去极值平均滑动窗口滤波,同时将初始状态的传感器读数记录下来,去零偏。然后根据设置的量程将AD值转换为具有意义的物理值。姿态解算时,参数是转换之后的值。姿态解算过程如图2b所示。姿态求解用互补滤波算法[6],互补滤波算法的原理就是将三轴角速度、三轴加速度、三轴磁力计数据融合成四元素,然后用四元素求欧拉角[7],每一次解算完成后,用新的四元素的值代替上一次四元素的值。经预处理和姿态解算的关节角度信号以曲线的形式显示在网页上,如图3所示,可清楚地看到病人在康复时的关节活动度。
图2 传感器数据采集和预处理
图3 关节角度信号
表面肌电传感器使用STM32的ADC采集,ADC是12位逐次逼近的模拟数字转换器。肌电信号读取流程如图2c所示。ADC初始化包括设置STM32的I/O口、采样频率、ADC通道等;因为AD值会有一定的波动,因此使用去极值平均滑动窗口滤波,同时去零偏;最后将得到的AD值根据基准电压转换成肌电电位值。由于肌电信号的频率主要分布在 10~500 Hz,并且采集的原始肌电信号含有工频干扰等各种噪声,所以通过 10~500 Hz 带通滤波器和50 Hz 陷波滤波器,分别去除原始肌电信号的杂波信号和工频干扰,并将肌电信号以曲线的形式在网页上显示。图4是做4个曲肘动作时肱二头肌的原始肌电信号和滤波之后的信号曲线,从图中看出,带通滤波和陷波处理很好地滤除干扰噪声,为进一步求肌电信号的特征值做准备。
图4 肌电信号
数据采集和预处理之后,需要上传到云平台,本文采用Wi-Fi模块ESP8266将数据通过MQTT协议发送至服务器。ESP8266通过AT指令与服务器建立TCP连接,并实现数据上传,主要流程如图5所示。首先是ESP8266模块、串口3和相关定时器的初始化,这部分主要是初始化相关I/O口、ESP8266模块复位、设置TCP客户端模式等操作,定时器的作用是判断接收信号是否完成,完成则产生中断进行处理;然后开始发送AT指令,连接路由器并进行相关设置;最后连接服务器。从模块复位开始,对发送指令后的返回值进行判断,只有返回值正确才会进行下一步,否则返回到“模块复位”那一步重新开始。
图5 ESP8266连接服务器流程
物联网终端和服务器建立了TCP链接之后,通过搭建MQTT协议环境[8],实现向服务器发送数据。首先在云服务器上搭建MQTT的服务器EMQ,EMQ是基于Erlang/OTP平台开发的开源物联网MQTT消息服务器。EMQ搭建好之后,在物联网终端移植开源的Paho-mqtt.c库,并向EMQ发送请求连接消息,连接消息包括协议名称、协议版本、心跳包发送时间间隔、保活时间、服务器用户名、客户端ID和密码等信息。当收到服务器返回的字符串“20020000”,表示物联网终端与EMQ建立稳定的连接,调用其封装函数即可实现基于MQTT协议的发布和订阅功能,此时物联网终端可以订阅服务器的主题、接收服务器发送的消息和发布数据。发送数据时,将传感器数据编码成JSON格式,然后封装到MQTT的数据报文中,并发送到EMQ对应的topic中,然后再由服务器进行下一步处理。传感器数据的JSON格式如下:
{
“ClientID”:xxxxxxx, //设备ID
“Pose”:xxxxxxx, //姿态数据
“Myo1”:xxxxxxx, //肌电信号
}
经过预处理的传感器数据上传到云端后,通过emqx_auth_mysql 插件将数据保存到数据库中,实现数据持久化,并通过云服务器对数据进行进一步的处理,包括肌电信号的时域和频域的特征提取等,处理之后将结果通过网页显示,医生和患者可通过网页查看康复数据。
网页是为医生和患者使用开发的,主要实现数据存储、查看和分析等功能,该网页可以远程制定康复计划、查看康复训练,并做出康复评价,还有医生患者的个人信息管理和登录注册等辅助功能。网页分为医生端和患者端2个部分,其功能如图6所示。医生端的功能包括个人信息注册、远程开处方、查看病人信息、观看病人康复训练和写评估报告等功能;患者端的功能包括填写病例、查看医生信息及处方、训练计时和查看评估报告等功能。
图6 网页功能
网页整体框架选用JavaEE的三层框架,包括View展示层、Service业务逻辑层和DAO数据访问层。展示层主要负责和用户层交互的页面显示;业务逻辑层负责页面中具体功能的实现;数据访问层负责与数据库交互,实现对数据库中数据的增删改查操作。各层功能清晰,相互依赖,可以降低功能模块之间的耦合度,便于阅读和维护。网页的三层架构如图7所示,展示层包括登录、注册等页面;业务逻辑层实现页面功能,包括登录、注册、病例填写、病例查看、查看康复训练等功能;数据访问层包括个人信息实体类、康复信息实体类等。
图7 网页架构
物联网终端实物如图8所示,包括传感器、触摸屏、传输模块和控制模块STM32。传感器包括姿态传感器MPU-9250和MyoWare肌电传感器,分别采集康复运动时的姿态信号和肌电信号,用于关节活动度和肌力的评价;触摸屏是TFT触摸屏,可通过触摸开始或停止数据采集,记录训练时间等功能。
图8 物联网终端实物
网页能够实现医生和患者的注册和登录。登录成功后,进入个人页面,可通过页面上的功能链接查看对应的内容,包括病例填写、病例查看、查看康复训练等功能。医生、患者可通过网页看到康复训练时的肌电信号图和姿态曲线图,查看康复过程中肌电信号的时域和频域的特征,以及康复结束时的平均肌力和关节活动度的数值;同时,页面显示是否处于肌肉疲劳状态以及开始肌肉疲劳的时间,并显示上次康复训练、第1次康复训练时,患肢的平均肌肉和关节活动度的值以及肌肉疲劳的情况,可对比数据评价康复训练效果。
本文提出上肢远程康复系统,以STM32为控制模块,通过Wi-Fi通信技术,使用MQTT协议,将康复数据上传云平台,并保存到数据库中对应的表中,同时开发医生、患者端的网页,包括开处方、查看康复训练等主要功能和注册、登录等辅助功能,方便医生和患者的使用。后续会设计实验,确定有效上肢康复运动,采集上肢康复运动过程中的各关节和相关肌肉的数据,驱动Unity中的模型运动,并将处理数据的程序以插件的形式上传至云平台,对康复数据做出初步的评估,为医生康复评价提供参考。