APP下载

手臂运动检测器的设计与实现

2014-04-17唐泽俊王冬林黄晓成

科技视界 2014年29期
关键词:功能测试摇杆舵机

蔡 燕 唐泽俊 王冬林 黄晓成 许 鹏

(南通大学电子信息学院,江苏 南通 226019)

0 引言

机械臂是一种自动化设备,它可以模仿人类手臂执行各种的动作[1]。随着机械臂技术的不断发展,如今机械臂早已被用在各个行业。机械臂最初的成功应用是八十年代的汽车工业[2]。如今,除了主要用于工业制造上,机械臂还被广泛应用在商业农业、医疗救援、娱乐服务、军事保全甚至在太空探索等领域[3]。

本文介绍的手臂运动检测是一种全新的机械臂控制方法。在设计中,将使用开源的Arduino微控制器对安装在手臂上的传感器采集的数据进行分析,并控制机械臂做出和手臂一样的动作。设计中使用的传感器包括了安装在肘关节和手指上,用来检测肘关节和手指运动的弯曲度传感器;安装在手掌根部,用来检测腕关节旋转和翻转的三轴加速度传感器;安装在机械臂指部,用来反馈夹持力的压力传感器。肩关节的运动则通过摇杆来控制。

1 系统的整体结构设计

本文介绍的基于Arduino的手臂运动检测器通过USB和PC机进行通信,获得电力和程序[3]。各种传感器检测的模拟量信息送入微控制器内,微控制器通过RS232接口和舵机控制器进行串行通信,控制机械臂工作。该系统的总体结构框图如图1所示。

图1 手臂运动检测器的硬件电路总体机构框图

对于弯曲度传感器和压力传感器,其基本部分可等效为可变电阻[4]。利用Arduino提供的10bit精度的模数转换器和图2所示的电压检测电路图,使Arduino采样到模拟电压值;再依据传感器采集的物理量和自身电阻值的函数关系式,经过转换运算,最终把Arduino所采集到的电压值转换为传感器实际采集的物理量。

图2 变阻式传感器与Arduino连接原理图

2 系统的具体功能实现

在获得传感器传出的原始数据后,处理器将对数据进行处理。在本设计中,模拟-数字转换器(ADC)的参考电压使用5V,可以通过analogRead()函数返回ADC得到的原始数据[5]。对于摇杆,在其自由竖直时,对应的是手臂向前伸直的姿态。此时其对应的底座舵机应该转过90度。当转动摇杆,其输出电压在0V到5V之间变化,对应的底座舵机转动角度从0度到180度之间变化。图3显示了整套系统对原始数据的处理流程。

图3 控制系统核心结构

弯曲度传感器选用了Spectrasymbol公司的Flex22S传感器,在手臂或手指伸直的情况下,此时的传感器阻值为9KΩ。在定值电阻R的值为10 KΩ,Vcc取5V的情况下,Arduino检测到的电压值应该为2.63V。此时关节舵机应该处于0度的位置。同理,在电压值为2.08V左右时,舵机应当处于90度位置;在1.56V时,对应的位置是180度处[6]。

压力传感器选用了Interlink Electronics公司生产的FSR400传感器,可以把压力-电压函数图像当成分段函数来处理,每两个采样点之间认为是线性变化的,从而得出相应的压力-电压函数表达式。压力传感器的压力-电压关系如图4所示。

图4 压力传感器压力-电压关系

图5 加速度传感器受力分析

图6 舵机执行模块流程图

至于加速度传感器MMA7361L,将其安装在手掌处。当手腕转动时,对其进行受力分析,如图5所示。本设计中,加速度传感器的gselect设置在了1.5g,对应的精确度就是800mV/g,对应的角度θ为

舵机控制器的命令格式为D

设计中,为使舵机控制器能够正常连续执行指令,Arduino在发送指令的时候遵循如下要求:设置一个全局角度变量last_A。当新指令(转动到新的角度A)过来后,系统首先判断新角度和上次的角度last_A的相对位置,如果比last_A小,则舵机在上次的位置上慢慢回转,直到到达新角度A为止,反之亦然。流程图如图6所示。

3 系统的运行测试效果

本次设计的系统有如下功能:压力传感器安装在机械臂指部,能感测手指捏合压力大小,并且在1602液晶显示器上显示出来;弯曲传感器安装在手背手指处和肘关节处,感测手指弯曲和肘关节弯曲程度,控制舵机02和舵机05执行相应动作;加速度传感器安装在手掌根部,使用x和y两个维度来感测手腕旋转,控制舵机03和舵机04执行相应动作;摇杆控制舵机00,模拟肩关节的旋转和翻转。这样可以控制机械臂的五台舵机。本设计所用的机械臂具有6个自由度(6台舵机),从下到上,舵机编号依次为00-05。

图7为腕关节运动检测功能测试图。按图中示意固定好加速度传感器之后,使用x和y这两个方向上的输出值就能够感测出手腕的运动。当手腕左右旋转,加速度传感器的y轴方向感测出加速度变化,软件会将该加速度的变化转化为角度的变化,控制舵机工作;同理当手腕上下翻动,加速度传感器的x轴方向感测出加速度变化,软件将其转化为角度的变化,控制舵机工作。

图7 腕关节运动检测功能测试

图8为肘关节运动检测功能测试图。当手臂弯曲时,安装在肘关节处的弯曲度传感器会发生弯曲,控制相应的舵机转动到相应角度;当手臂伸直时,弯曲度传感器不弯曲,舵机运转,机械臂也随之伸直。

图8 肘关节运动检测功能测试

图9①为压力显示功能的测试图。压力传感器被粘贴在了机械臂手夹的一根手指上。当机械臂手夹钳住一盒订书钉后,1602液晶显示器能够正确显示压力值。随着夹持力大小的变化,显示器上显示的压力值也会随之变化,如图9②所示。

图9 压力显示功能测试图

图10为手指关节运动检测功能测试图。手指张开时,弯曲度传感器不弯曲,机械臂手夹张开;当手握拳,弯曲度传感器弯曲,机械臂手夹夹紧。

图10 手指关节运动检测功能测试

图11为摇杆模拟肩关节功能测试图。本设计中,使用摇杆一个方向上的输出来控制机械臂肩关节的旋转。当把摇杆往左扳动时,机械臂转向右边;当把摇杆扳向右边时,机械臂会转向左边;摇杆自由竖直时,机械臂则会回到中间位置。

图11 摇杆模拟肩关节功能测试

4 结论

本论文通过传感器和Arduino平台对一种常见的六自由度关节型机械臂进行了控制实验,使其达到了检测手臂运动的目的。根据要求,首先分析了手臂运动、机械臂、传感器等的原理。在深入了解了原理的基础上,通过分析各种资料,逐渐构建出了整套系统的硬件平台,并完成了软件设计,使该套机械臂控制系统可以根据检测到的手臂运动,控制机械臂执行精准的操作。

[1]唐和业.一种两自由度并联机械手教学演示平台数控系统的研究与开发[D].天津:天津大学,2007.

[2]汤勇.机械手臂在汽车玻璃企业的运用[J].上海建材,2012:22-24.

[3]孙骏荣,吴明展,卢聪勇.Arduino 一试就上手[M].北京:科学出版社,2013.

[4]于欣龙,郭浩赟.爱上 Arduino[M].北京:人民邮电出版社,2012.

[5]侯忠坤.六自由度教学机器人手臂系统研究[D].成都:西南交通大学,2011.

[6]Harold Timmis.Practical Arduino Engineering[M].CA:APress,2011.

[7]Oxer Jonathan.Practical Arduino Cool Projects for Open Source Hardware[M].CA:APress,2010.

猜你喜欢

功能测试摇杆舵机
某内花键等速传动轴八功能测试夹具设计
曲柄摇杆机构的急回程度分析与探讨*
曲柄与摇杆摆角的关系
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
曲柄摇杆行星系取苗机构参数匹配与优化
基于云模型的舵机同步控制