宦 婧 周伟祝 赵 媛
(海军航空工程学院 烟台 264001)
机械臂系统可以在军事及工业生产中提高设备自动化、改善作业条件,提高作业效率,尤其在高温、高压以及放射性危险场合[1]。传统的机械臂主要分为两类:一类是通过事先编程来完成各种预期的作业任务[2];另一类是通过复杂的操作台来控制。以上两类机械臂在使用中,操作方式复杂,应变能力较差。基于对当前国内外机械臂结构和控制装置情况的研究,综合运用智能传感原理以及无线传输技术等技术,本文设计实现了一套智能感应机械臂系统,通过对距离信息的感应实现对机械臂多自由度的准确作业控制。
智能感应机械臂基于便捷化操作的基本思路和感应控制的基本原理,其硬件部分由智能感应系统和机械执行系统构成,如图1所示。智能感应系统由Arduino UNO控制板、Arduino IDE开发环境、超声波传感器以及电源组成,机械执行系统由数字舵机、底座、支架、手爪和电源构成。
图1 机械臂系统总体硬件结构
智能感应多自由度机械手臂由超声波智能感应模块、基于Arduino控制板的控制模块、电机驱动模块(机械臂机械主体)以及电源模块组成,其控制系统的总体设计如图2所示,智能机械臂以Ardui⁃no控制板为核心控制器,连接感应元器件和舵机,通过Arduino IDE集成开发环境开发控制程序作用于电机驱动模块,电机驱动模块驱动机械臂各个舵机的准确运动,以此构成闭合的控制系统,最后通过系统调试,实现对机械臂多自由度准确的作业控制。
1)控制模块:该中心控制模块包含硬件和软件开发环境,它以Arduino UNO控制板为硬件,Ar⁃duino IDE基于processing IDE开发,具有很强的灵活性,Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈和影响环境[3]。
图2 智能机械臂控制系统总体设计
2)超声波智能感应模块:通过超声波传感模块检测与物体的距离信息,并将接受到的信息通过智能转化,发送给控制中心模块。
3)电机驱动模块:驱动通过16路舵机控制器实现,首先通过上位机监控软件界面的设计,实现机械臂多自由度协调运动规划和存储动能,同时接受控制中心发送的驱动信息,调动不同的舵机运动。
1)工作原理及连线
本系统采用的SRF-04超声波传感器有四个脚:5V电源脚(Vcc),触发控制端(Trig),接收端(Echo),地端(GND),如图3所示为传感器模块电路连接方法。将超声波传感器的输入输出端连接到Arduino的端口2和端口3,电源输入端连接到Arduino的高电平输出端,接地端连接到Arduino的接地端。
传感器模块采用I/O触发测距,给至少10μs的高电平信号[4];模块自动发送8个40KHz的方波,自动检测是否有信号返回;有信号返回,通过I/O输出一高电平,高电平持续的时间就是超声波从发射到返回的时间[5]。
测试距离=(高电平时间*声速(340m/s))/2;
图3 传感器模块线路连接方法
2)Arduino程序设计
通过Arduino程序读出超声波传感器发射超声波到接受反射回来的波所经过的时间差[6~7],然后将这个时间差发送出去,让电脑接收。这里列出部分Arduino程序,首先定义触发控制端(TrigPin),接收端(EchoPin)变量,将变量与对应针脚相连:
const int TrigPin=2;
const int EchoPin=3;
接着设置TrigPin为输出端,EchoPin为输入端:
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
接着使用低高低电平发一个短时间脉冲去TrigPin:
digitalWrite(TrigPin,LOW);
delayMicroseconds(2);
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
最后将回波时间换算成厘米(cm)。
cm=pulseIn(EchoPin,HIGH)/58.0;
将程序烧录到Arduino板后,串口实时显示的传感器所测距离数据如图4所示。
图4 串口通信实时效果
电机驱动模块可以控制机械臂肘部、腕部和手爪的上下左右转动,首先定义6个舵机对象,分别控制机械臂肩部转动、肘部上下摆动、腕部上下摆动、腕部左右旋转以及手爪的开合,将引脚1,2,3,4,5,6上的舵机与声明的舵机对象链接起来,并且写入舵机角度,最后根据感应到的感应数据给不同的舵机写入不同的角度,实现对舵机的控制,从而实现机械臂的运动作业。如图5所示为舵机的线路图,舵机三路控制,其中GND(黑色线)、VCC(红色线)、Signal(黄色线)。
图5 舵机连线图
如下给出了舵机模块简要设计代码,其中使用的serve类函数[8]如表1所示。#include<Servo.h>
Servo myservo;//建立一个舵机对象
int pos=0; //pos存储舵机角度
void setup()
{myservo.attach(9);//将舵机与9号接口相连
}
void loop()
{for(pos=0;pos< 180;pos+=1)//从0°到180°,步长为1
{myservo.write(pos); //改写舵机角度
delay(15); //延时15ms
}
for(pos=180;pos>=1;pos-=1)//从180°到0°
{myservo.write(pos); //改写舵机角度
delay(15); //延时 15ms
}
}
表1 使用serve类函数
图6 智能机械臂机械结构
智能感应机械臂可以完成三维空间的各种动作[9~10],该机械臂由六个舵机作为动力输出,通过六个舵机对六个关节的直观操作,实现肩部、腕部、肘部的转动以及抓取器的闭合等动作,实现准确的作业控制。
机械臂的主体结构包括肩关节、肘关节和腕关节。如图6所示,它的肩关节由1、2号舵机组成,可以实现垂直方向的转动,肘关节由3号舵机组成,可以实现水平方向的转动,腕关节由4,5号舵机组成,可实现轴向的转动。机械爪由6号舵机控制,可实现90°的抓取动作。
智能感应机械臂的软件执行流程如图7所示:电源为16路舵机控制板、舵机、Arduino控制面板在内的所有元器件提供所需的电能。接通电源后,机械臂的高度智能化通过超声波传感器得以体现:通过超声波传感器接收到不同的距离信息,将信号传至Arduino控制面板,当接收到的距离信息在有效范围内,控制板通过烧录程序判断检测距离所在的范围区间,根据区间向16路舵机控制板发出不同的命令,调用储存在其中的相应的动作组,从而控制不同部位的舵机旋转不同角度,使机械臂做出各种动作。这里的电机驱动模块采用PWM信号来控制直流电机的速度和正反转,从而实现六个舵机在六个自由度方向的运动。
图7 智能机械臂系统实现流程
智能机械臂系统的创意在于使用超声波传感模块对于机械臂的智能控制,自主编程实现机械臂的智能运行。本系统的设计实现综合应用了两大知识模块,传感系统和微机控制系统,实践证明,创新机械臂的控制系统,达到机械系统与数据信息的实时交互传输,实现了人与机械臂的有效交互操控,为未来实现智能系统人与物的相容互动提供新的方法。
[1]马如奇,郝双晖,郑伟峰,等.基于MATLAB与ADAMS的机械臂联合仿真研究[J].机械设计与制造,2010(4):93-95.
MA Ruqi,HAO Shuanghui,ZHENG Weifeng,et al.Re⁃search on coordinated simulation of robot arm based on MATLAB and ADAMS[J].Machinery Design&Manufac⁃ture,2010(4):93-95.
[2]余炽业,宋跃,雷瑞庭.基于STC12C5A60S2的智能循迹小车[J].实验室研究与探索,2014,33(11):46-49.
YU Chiye,SONG Yue,LEI Ruiting.Intelligent Tracking Car Based on STC12C5A60S2[J].Research and Explora⁃tioin in Labortory,2014,33(11):46-49
[3]尹杰,杨宗帅,聂海,等.基于红外反射式智能循迹遥控小车系统设计[J].电子设计工程,2013(23):178-184.
YIN Jie,YANG Zongshuai,NIE Hai,et al.Intelligent tracking based on infrared reflection type telecontrol car system design[J].Electronic Design Engineering,2013(23):178-184.
[4]陈凤东,洪炳熔.基于特征地图的移动机器人全局定位与 自 主 泊 位 方 法[J].电 子 学 报 ,2010,38(6) :1256-1261.
CHEN Fengdong,HONG Bingrong.A global localization and selfdocking method for mobile robot based on feature map[J].ActaElectronica Sinica,2010,38(6) :1256-1261.
[5]吕云芳,陈帅帅,郝兴森,等.基于C51高级语言程序控制的智能循迹小车设计与实现[J].实验室研究与探索,2015(3):142-145.
LV Yunfang,CHEN Shuaishuai,HAO Xingsen,et al.De⁃sign and Implementation of Intelligent Tracking Car Based on C51 Advanced Language Program Control[J].Re⁃search and Exploration in Labortory,2015,34(3):142-145.
[6]陈华伟,熊慧.智能循迹小车硬件设计及路径识别算法[J].单片机与嵌入式系统应用,2010(12):26-31.
CHEN Huawei,XIONG Hui.Hardware Design and Path Identification Algorithm for Smart Track-keeping Car[J].Microcontrollers&Embedded Systems,2010(12):26-31.
[7]黄丽雯,韩荣荣,宋江敏.基于Arduino/Android的语音控制小车设计[J].实验室研究与探索,2015,34(12):53-56.
HUANG Liwen,HAN Rongrong,SONG Jiangmin.A De⁃sign of Voice Control Car Based on Arduino/Android[J].Research and Exploratioin in Labortory,2015,34(12):53-56.
[8]杨小峰,陈劲杰,易灵君.四自由度机械臂运动控制系
统的研究[J].计算机测量与控制,2013,21(4):959-962.
YANG Xiaofeng,CHEN Jinjie,YI Lingjun.Research Movement Control System of 4-DOF Mechanical Arm[J].Computer Measurement&Control,2013,21(4):959-961.
[9]张蓬,王晓冲,陈建义.多自由度机械臂的虚拟现实仿真实现[J].机械设计与制造,2015,1(1):128-131.
ZHANG Peng,WANG Xiaochong,CHEN Jianyi.Virtual Reality Simulation of Multi-Degrees of Freedom Mechani⁃cal Arm[J].Machinery Design&Manufacture,2015,1(1):128-131.
[10]左敏,曾广平,涂序彦.无人变电站智能机器人的视觉导航研究[J].电子学报,2011(10):2464-2468.
ZUO Min,ZENG Guangping,TU Xuyan.Research on Vi⁃sual Navigation of Untended Substation Patrol Robot[J].Acta Electronica Sinica,2011(10):2464-2468.