刘宇栋 李允同 刘清扬
当今社会老龄化形势日益严峻,许多老人及行动不便群体备受社会关注,他们因力量不足、需长期卧床等问题造成日常生活的诸多不便,所以有必要为他们设计一款轻松便捷的操作平台。
手势控制作为一种蓬勃发展的现代控制方式,具有操作简单、灵活性高等特点。通过移动端捕捉手势的变化来执行命令,人们利用简单的手套就可以完成他们想要执行的动作。
通过查阅相关资料,我们设计了解决行动受限问题的手势控制移动平台。该平台由智能手套和搭载了机械手的无人车组成。
一、智能手套
1.硬件设计
智能手套的主体模块由开源硬件单片机、弯曲度传感器、六轴陀螺仪(MPU6050)和无线射频模块(XBee)组成。通过弯曲度传感器感知五根手指的动作,由六轴陀螺仪捕捉手部的空间位置及移动情况,以无线射频作为通信工具,并将这些功能用单片机结合,达到远程手势控制的目的。
智能手套选取弯曲度传感器识别手指姿态。弯曲度传感器可随着其弯曲连续地改变阻值,能与手指弯曲度保持一致。阻值由单片机的模拟串口接收,同时将其转化为1024个高、低电平信号。与单片机连接的电脑可检测出其中的高、低电平信号数量(以下简称“pwm”值),并将其转化为预设变量的值。
由传感器输出的pwm高、低电平值转化成的串口数据经过算法放大和除颤后转化为角度发送给单片机,进一步处理后再发送至无线通信串口。
智能手套采用空间运动传感器芯片-六轴陀螺仪(MPU6050)获取器件当前的三个加速度分量和三个旋转角速度,从而确定手部空间姿态及运动状态。
XBee模块是采用ZigBee技术的无线模块,通过串口与单片机等进行通信,能快速将设备接入ZigBee网络,具有信号传输距离远、速度快的特点。
将XBee连入开发底板后接入电脑,配套X-CTU程序对XBee模块进行设置。在点对点的通信中,设置其中一个a模块为协调器,另一个b模块为路由器,进行相应操作后,b模块加入a模块的网络中,实现点对点的信号传输。
2.软件设计
智能手套软件使用四元数法通过六轴陀螺仪进行姿态解算得出手部位置及运动准确状态,然后结合弯曲传感器数据得到整个手部的姿态及移动状态,最后将数据打包,通过无线模块发送给与手套进行无线连接的移动平台。智能手套软件流程图如图1所示。
二、手势控制设计
1.手势控制盒子与手势控制机械手
模型是一个基于压力传感器的手势控制盒子,由五指附有压力传感器及单片机的手套和用舵机控制开合的盒子组成。佩戴者以一定力度按压特定的、分别固定在五个指尖的压力传感电阻,使单片机芯片接收到pwm值模拟信号,再由单片机进行判断。
如果检测到特定组合的几个传感器的pwm值,则盒子开启或关闭。
为通过捕捉手势的变化来执行较复杂的连续指令,我们制作了手势控制机械手模型。机械手可实时模拟操作者的手部动作,这要求手部传感器必须输出连续并且较稳定的pwm值。
由于FSR压力传感器属于半导体电阻式传感器,金属丝受外力作用时,长度和横截面积发生变化,其电阻值即发生改变,输出的电阻值再转化为电信号。其输出的值虽然具有连续性,但变化过快,无法满足需求,因此我们选用可随弯曲而连续改变阻值的弯曲度传感器(见图3)。
通过对手部肌肉的研究制作作为执行端的机械手,手部屈肌可通过接收的神经信号伸缩实现手指的屈伸。因此,基于仿生的思路,设计用绳子代替手部屈肌,伺服舵机代替其伸长或缩短机制,以实现机械手手指的屈伸。
伺服舵机是一种可以驱动转轮旋转的驱动器,舵机的旋转角度为0°到180°,由整形变量的0到180转化而来,运用了舵机驱动语句,数据来源于串口收到的数据。然而由于传感器本身的性质,串口数据并非处在0到180的区间内,变化区间却比180小得多,例如flex4.5的串口数据val通常在450到550之间。这时就需要简单算法将val适当转化为旋转角度Pos:
Pos=(val-400)*3.6
从而得到在正确区间范围内的Pos值。
Flex4.5传感器电阻变化虽然稳定,但肉眼看不见的弯曲度变化仍会导致val值细微的波动。这种波动在通过上述算法转化为Pos值时放大了3.6倍,可使舵机发生可见的颤动。
利用分段函数除颤和方差除颤两种方法通过相关代码消除颤动,我们成功实现了通过智能手套控制机械手。未来该模型可运用到在危险环境内工作的机器人中。
在该部分的制作与研究中,我们测试了FSR402压力传感器、flex2.2弯曲度传感器、flex4.5弯曲度传感器三种不同的半导体电阻传感器,并最终选用flex4.5弯曲度传感器作为智能手套上感知手势的传感器之一。
2.手势控制车
为使智能手套对手势变化的捕捉更完整,并测试手套与执行端间的无线通信,我们制作了手势控制智能车模型。
该模型主体由Arduino单片机、MPU6050空间运动传感器(简称“陀螺仪”)、MBot智能车及Xbee无线射频模块组成。手势的姿态判断由陀螺仪实现,陀螺仪模块将感知的姿态信息传输至控制端Arduino单片机,控制端Arduino单片机处理后通过通信串口实时传输至执行端的Arduino单片机。
项目通过2个Arduino單片机将所有模块进行编程并集成为一体,让模块之间可以互相通信,实现全部设计的功能。模型主要运行流程见图5。实际模型如图6所示。
三、应用
1.行动不便的人可通过该移动平台上的机械手进行需要的操作,采用手势控制也使操作更加直接而灵活。
2.在特殊环境下如有毒气体或核污染的环境、生化实验等可能发生危险的场所作为人工操作的代替。
3.记录运动姿态。如可以记录医生手术时的手部移动状态,提供可以分析和学习的数据。(指导老师:谭洪政)