基于单片机的上肢康复训练仪交互力采集系统设计
2020-12-04张好杰吴钟鸣
张好杰,郭 语,吴钟鸣
(金陵科技学院 机电工程学院,江苏 南京 211169)
0 引言
据世界卫生组织数据中心的统计,我国中风患者中接近80%的中风患者因未能及时进行康复治疗,导致肌肉萎缩、偏瘫等,严重影响患者的生活质量[1]。传统的康复治疗不仅消耗大量的人力、物力,且训练效果不佳[2],而康复训练仪器可以给患者提供合理的训练任务,满足患者在不同康复阶段的需求。
近年来,国内外的大学均开展了对于上肢康复训练仪的研究,例如,美国麻省理工学院研制的MIT-Manus机器人,能够用于肘关节的康复训练;卡内基梅隆大学基于WAM机器人进行了相关康复医疗的研究[3]。华中科技大学设计了针对腕关节的康复训练机构[4];哈尔滨工业大学、东北大学等也在上肢康复训练仪理论和控制方面进行了研究[5-6]。
然而,市场上存在的上肢康复训练仪,大多存在一些不足,例如自由度较少、集成度不高、不够智能化等。针对这些问题,本文设计了一种基于单片机的上肢康复训练仪交互力采集系统,并对结构工作原理、系统软硬件设计、数据处理等方面进行阐述。
1 结构工作原理
1.1 结构组成
文章的研究对象为一种球铰式上肢康复训练仪,其结构如图1所示。其工作原理为:训练手柄与球转子相连,3个定子支架上安装有牛眼轮,用于定位球转子,底座中含有盘丝-小伞齿轮结构,该结构与摩擦定子底部的螺纹连接,用于调节摩擦定子的径向移动,以调节球转子的受力大小。文章针对该上肢康复训练仪设计力采集装置,将薄膜力传感器布置在力采集仓中,其内部结构如图2所示,由于该装置工作时涉及3个自由度的训练,训练手柄中布置活动轴,活动轴上有4个突起,在活动轴与力采集仓外壳之间布置有4个薄膜力传感器,用以检测力值。
图1 上肢康复训练仪结构示意
图2 力传感器布置示意
1.2 力测量原理
力传感器的布置方式确定之后,需确定力传感器测量值与手柄受力之间的关系。通过模拟训练者在训练过程中的状况,绘制出力传递关系如图3所示。
图3 力传递关系
假设训练者对手柄施加的力为主动力F,第i个力传感器所测量的力FNi,选取O点为简化中心,则主动力F对O点的作用可简化为主动力F′和主动力矩MO(F)。根据静力学原理可知:4个力传感器所测得的力FNi的矢量和与简化后的主动力F′相平衡,其静力平衡方程可表示为:
(1)
(2)
2 力采集系统硬件设计
2.1 系统结构组成
文章设计的上肢康复训练仪力采集系统由力采集模块、信号采集处理模块、数据显示模块3个部分组成,如图4所示。其中力采集模块由薄膜力敏力传感器与电压转换模块组成。当康复者进行康复训练时,施加在力传感器薄膜区域的力会发生改变,导致力传感器中电阻值的变化,进而获取力信息,并将其发送给电压转换模块进行转换。信号采集处理模块的核心是Arduino单片机,单片机与电压转换模块与液晶显示模块相连,用于接收经电压转换模块转换后的力信息,并将力信息进行计算、校核,最后,将处理后的信息发送给数据显示模块,以显示由单片机发送过来的实时交互力信息。
图4 力采集系统组成框架
2.2 系统硬件选型
在系统结构搭建完成后,需确定系统硬件的具体型号,其中,Arduino单片机作为整个系统的核心,需配合系统的硬件进行选取。由于系统中力传感器的数量为4个,即需要3个对应的IO接口,据此确定单片机型号为具有54路数字输入输出的Arduino Mega2560,用于接收、计算、校核数据。由于力传感器布置于活动轴与力采集仓外壳之间,要求其尺寸小、质量轻、同时得满足测量要求,据此确定力传感器型号为薄膜力敏力传感器FSR402,用于检测力值。显示模块硬件的选取需兼顾到与系统的适配性,据此选取与 Arduino单片机适配性较好的FYLCD1602A字符型液晶显示屏,用于力值的输出。
3 力采集系统软件设计
系统硬件设计完成后,需要根据系统工作流程进行软件设计,系统的工作流程如图5所示。当训练者进行康复训练时,首先,力采集模块采集力信息;其次,经电压转换模块将信息进行转换并发送给Arduino单片机进行接收、计算、处理;最后,单片机将处理后的信息发送给数据显示模块,实现数据的输出。
图5 系统工作流程
根据上述系统工作流程,文章使用Arduino IDE作为开发环境编译程序,对数据接收、计算、校核最终输出到显示模块上。
3.1 数据处理
为直观地得到康复训练者在康复训练时强度的大小,必须对现有数据进行处理。对数据处理的过程主要分为两个方面:(1)采取固定力测试实验,以找到力传感器采集到的信息与具体力值的关系。(2)根据上述关系编写数据处理代码。力传感器测量电路原理如图6所示,力传感器与固定电阻R0串联,当压力作用于力传感器时,其电阻Rs的阻值发生变化,则固定电阻R0输出电压由式(3)确定。
Vout=Vcc×R0/(R0+Rs)
(3)
图6 力传感器电路原理
在交互力采集之前,需对力传感器进行标定,以确定不同力值对应的电压数值。首先,在实验电路中接入10 kΩ的保护电阻,将连接好的电路通过USB与电脑相接,并且使用0.2~6.0 kg的重物分别放到传感器待测面上,经多次实验获得去程和回程数据;其次,借助Matlab进行数据处理[7],数据与拟合结果如图7所示。
图7 力值-电压值曲线
3.2 数据显示
为在康复者训练时直观地将训练数据信息输出到液晶显示模块上,需在Arduino IDE中进行数据处理代码的编译。编译时将固定力实验中得到的数据分割成区间,在每个区间上使用Arduino IDE中的map映射函数,将两个端点的数值映射到区间内,以获得任意电压值下对应的力值。类似的,能够得到力传感器整个量程内某一电压值下对应的力值,其代码框架如下所示。
代码框架:
void loop(void) {
fsrReading = analogRead(fsrPin);//读取电压值数据
......
if(fsrReading>X.&&fsrReading<=Y)
{
force=map(fsrReading, X,Y, M,N);//将电压值分别为X、Y对应的压力值映射到[M,N]区间上;
}
......
同时,将液晶显示模块与Arduino单片机对应引脚相连,在Arduino IDE中调用LiquidCrystal I2C库即可对液晶显示模块进行编译,通过编译输出程序即可将具体的训练数据信息输出。
4 结语
设计的球铰式上肢康复训练仪交互力采集系统具有集成度高、成本低、智能化等优点,利用Arduino单片机实现了对分布式薄膜力传感器的检测、处理和显示。经实验证实,本系统能够良好稳定地工作,具有很好的应用前景。