宦 婧 周偉祝 趙 媛
(海軍航空工程學(xué)院 煙臺(tái) 264001)
機(jī)械臂系統(tǒng)可以在軍事及工業(yè)生產(chǎn)中提高設(shè)備自動(dòng)化、改善作業(yè)條件,提高作業(yè)效率,尤其在高溫、高壓以及放射性危險(xiǎn)場(chǎng)合[1]。傳統(tǒng)的機(jī)械臂主要分為兩類:一類是通過(guò)事先編程來(lái)完成各種預(yù)期的作業(yè)任務(wù)[2];另一類是通過(guò)復(fù)雜的操作臺(tái)來(lái)控制。以上兩類機(jī)械臂在使用中,操作方式復(fù)雜,應(yīng)變能力較差。基于對(duì)當(dāng)前國(guó)內(nèi)外機(jī)械臂結(jié)構(gòu)和控制裝置情況的研究,綜合運(yùn)用智能傳感原理以及無(wú)線傳輸技術(shù)等技術(shù),本文設(shè)計(jì)實(shí)現(xiàn)了一套智能感應(yīng)機(jī)械臂系統(tǒng),通過(guò)對(duì)距離信息的感應(yīng)實(shí)現(xiàn)對(duì)機(jī)械臂多自由度的準(zhǔn)確作業(yè)控制。
智能感應(yīng)機(jī)械臂基于便捷化操作的基本思路和感應(yīng)控制的基本原理,其硬件部分由智能感應(yīng)系統(tǒng)和機(jī)械執(zhí)行系統(tǒng)構(gòu)成,如圖1所示。智能感應(yīng)系統(tǒng)由Arduino UNO控制板、Arduino IDE開(kāi)發(fā)環(huán)境、超聲波傳感器以及電源組成,機(jī)械執(zhí)行系統(tǒng)由數(shù)字舵機(jī)、底座、支架、手爪和電源構(gòu)成。
圖1 機(jī)械臂系統(tǒng)總體硬件結(jié)構(gòu)
智能感應(yīng)多自由度機(jī)械手臂由超聲波智能感應(yīng)模塊、基于Arduino控制板的控制模塊、電機(jī)驅(qū)動(dòng)模塊(機(jī)械臂機(jī)械主體)以及電源模塊組成,其控制系統(tǒng)的總體設(shè)計(jì)如圖2所示,智能機(jī)械臂以Ardui?no控制板為核心控制器,連接感應(yīng)元器件和舵機(jī),通過(guò)Arduino IDE集成開(kāi)發(fā)環(huán)境開(kāi)發(fā)控制程序作用于電機(jī)驅(qū)動(dòng)模塊,電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)機(jī)械臂各個(gè)舵機(jī)的準(zhǔn)確運(yùn)動(dòng),以此構(gòu)成閉合的控制系統(tǒng),最后通過(guò)系統(tǒng)調(diào)試,實(shí)現(xiàn)對(duì)機(jī)械臂多自由度準(zhǔn)確的作業(yè)控制。
1)控制模塊:該中心控制模塊包含硬件和軟件開(kāi)發(fā)環(huán)境,它以Arduino UNO控制板為硬件,Ar?duino IDE基于processing IDE開(kāi)發(fā),具有很強(qiáng)的靈活性,Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋和影響環(huán)境[3]。
圖2 智能機(jī)械臂控制系統(tǒng)總體設(shè)計(jì)
2)超聲波智能感應(yīng)模塊:通過(guò)超聲波傳感模塊檢測(cè)與物體的距離信息,并將接受到的信息通過(guò)智能轉(zhuǎn)化,發(fā)送給控制中心模塊。
3)電機(jī)驅(qū)動(dòng)模塊:驅(qū)動(dòng)通過(guò)16路舵機(jī)控制器實(shí)現(xiàn),首先通過(guò)上位機(jī)監(jiān)控軟件界面的設(shè)計(jì),實(shí)現(xiàn)機(jī)械臂多自由度協(xié)調(diào)運(yùn)動(dòng)規(guī)劃和存儲(chǔ)動(dòng)能,同時(shí)接受控制中心發(fā)送的驅(qū)動(dòng)信息,調(diào)動(dòng)不同的舵機(jī)運(yùn)動(dòng)。
1)工作原理及連線
本系統(tǒng)采用的SRF-04超聲波傳感器有四個(gè)腳:5V電源腳(Vcc),觸發(fā)控制端(Trig),接收端(Echo),地端(GND),如圖3所示為傳感器模塊電路連接方法。將超聲波傳感器的輸入輸出端連接到Arduino的端口2和端口3,電源輸入端連接到Arduino的高電平輸出端,接地端連接到Arduino的接地端。
傳感器模塊采用I/O觸發(fā)測(cè)距,給至少10μs的高電平信號(hào)[4];模塊自動(dòng)發(fā)送8個(gè)40KHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;有信號(hào)返回,通過(guò)I/O輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間[5]。
測(cè)試距離=(高電平時(shí)間*聲速(340m/s))/2;
圖3 傳感器模塊線路連接方法
2)Arduino程序設(shè)計(jì)
通過(guò)Arduino程序讀出超聲波傳感器發(fā)射超聲波到接受反射回來(lái)的波所經(jīng)過(guò)的時(shí)間差[6~7],然后將這個(gè)時(shí)間差發(fā)送出去,讓電腦接收。這里列出部分Arduino程序,首先定義觸發(fā)控制端(TrigPin),接收端(EchoPin)變量,將變量與對(duì)應(yīng)針腳相連:
const int TrigPin=2;
const int EchoPin=3;
接著設(shè)置TrigPin為輸出端,EchoPin為輸入端:
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
接著使用低高低電平發(fā)一個(gè)短時(shí)間脈沖去TrigPin:
digitalWrite(TrigPin,LOW);
delayMicroseconds(2);
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
最后將回波時(shí)間換算成厘米(cm)。
cm=pulseIn(EchoPin,HIGH)/58.0;
將程序燒錄到Arduino板后,串口實(shí)時(shí)顯示的傳感器所測(cè)距離數(shù)據(jù)如圖4所示。
圖4 串口通信實(shí)時(shí)效果
電機(jī)驅(qū)動(dòng)模塊可以控制機(jī)械臂肘部、腕部和手爪的上下左右轉(zhuǎn)動(dòng),首先定義6個(gè)舵機(jī)對(duì)象,分別控制機(jī)械臂肩部轉(zhuǎn)動(dòng)、肘部上下擺動(dòng)、腕部上下擺動(dòng)、腕部左右旋轉(zhuǎn)以及手爪的開(kāi)合,將引腳1,2,3,4,5,6上的舵機(jī)與聲明的舵機(jī)對(duì)象鏈接起來(lái),并且寫入舵機(jī)角度,最后根據(jù)感應(yīng)到的感應(yīng)數(shù)據(jù)給不同的舵機(jī)寫入不同的角度,實(shí)現(xiàn)對(duì)舵機(jī)的控制,從而實(shí)現(xiàn)機(jī)械臂的運(yùn)動(dòng)作業(yè)。如圖5所示為舵機(jī)的線路圖,舵機(jī)三路控制,其中GND(黑色線)、VCC(紅色線)、Signal(黃色線)。
圖5 舵機(jī)連線圖
如下給出了舵機(jī)模塊簡(jiǎn)要設(shè)計(jì)代碼,其中使用的serve類函數(shù)[8]如表1所示。#include<Servo.h>
Servo myservo;//建立一個(gè)舵機(jī)對(duì)象
int pos=0; //pos存儲(chǔ)舵機(jī)角度
void setup()
{myservo.attach(9);//將舵機(jī)與9號(hào)接口相連
}
void loop()
{for(pos=0;pos< 180;pos+=1)//從0°到180°,步長(zhǎng)為1
{myservo.write(pos); //改寫舵機(jī)角度
delay(15); //延時(shí)15ms
}
for(pos=180;pos>=1;pos-=1)//從180°到0°
{myservo.write(pos); //改寫舵機(jī)角度
delay(15); //延時(shí) 15ms
}
}
表1 使用serve類函數(shù)
圖6 智能機(jī)械臂機(jī)械結(jié)構(gòu)
智能感應(yīng)機(jī)械臂可以完成三維空間的各種動(dòng)作[9~10],該機(jī)械臂由六個(gè)舵機(jī)作為動(dòng)力輸出,通過(guò)六個(gè)舵機(jī)對(duì)六個(gè)關(guān)節(jié)的直觀操作,實(shí)現(xiàn)肩部、腕部、肘部的轉(zhuǎn)動(dòng)以及抓取器的閉合等動(dòng)作,實(shí)現(xiàn)準(zhǔn)確的作業(yè)控制。
機(jī)械臂的主體結(jié)構(gòu)包括肩關(guān)節(jié)、肘關(guān)節(jié)和腕關(guān)節(jié)。如圖6所示,它的肩關(guān)節(jié)由1、2號(hào)舵機(jī)組成,可以實(shí)現(xiàn)垂直方向的轉(zhuǎn)動(dòng),肘關(guān)節(jié)由3號(hào)舵機(jī)組成,可以實(shí)現(xiàn)水平方向的轉(zhuǎn)動(dòng),腕關(guān)節(jié)由4,5號(hào)舵機(jī)組成,可實(shí)現(xiàn)軸向的轉(zhuǎn)動(dòng)。機(jī)械爪由6號(hào)舵機(jī)控制,可實(shí)現(xiàn)90°的抓取動(dòng)作。
智能感應(yīng)機(jī)械臂的軟件執(zhí)行流程如圖7所示:電源為16路舵機(jī)控制板、舵機(jī)、Arduino控制面板在內(nèi)的所有元器件提供所需的電能。接通電源后,機(jī)械臂的高度智能化通過(guò)超聲波傳感器得以體現(xiàn):通過(guò)超聲波傳感器接收到不同的距離信息,將信號(hào)傳至Arduino控制面板,當(dāng)接收到的距離信息在有效范圍內(nèi),控制板通過(guò)燒錄程序判斷檢測(cè)距離所在的范圍區(qū)間,根據(jù)區(qū)間向16路舵機(jī)控制板發(fā)出不同的命令,調(diào)用儲(chǔ)存在其中的相應(yīng)的動(dòng)作組,從而控制不同部位的舵機(jī)旋轉(zhuǎn)不同角度,使機(jī)械臂做出各種動(dòng)作。這里的電機(jī)驅(qū)動(dòng)模塊采用PWM信號(hào)來(lái)控制直流電機(jī)的速度和正反轉(zhuǎn),從而實(shí)現(xiàn)六個(gè)舵機(jī)在六個(gè)自由度方向的運(yùn)動(dòng)。
圖7 智能機(jī)械臂系統(tǒng)實(shí)現(xiàn)流程
智能機(jī)械臂系統(tǒng)的創(chuàng)意在于使用超聲波傳感模塊對(duì)于機(jī)械臂的智能控制,自主編程實(shí)現(xiàn)機(jī)械臂的智能運(yùn)行。本系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)綜合應(yīng)用了兩大知識(shí)模塊,傳感系統(tǒng)和微機(jī)控制系統(tǒng),實(shí)踐證明,創(chuàng)新機(jī)械臂的控制系統(tǒng),達(dá)到機(jī)械系統(tǒng)與數(shù)據(jù)信息的實(shí)時(shí)交互傳輸,實(shí)現(xiàn)了人與機(jī)械臂的有效交互操控,為未來(lái)實(shí)現(xiàn)智能系統(tǒng)人與物的相容互動(dòng)提供新的方法。
[1]馬如奇,郝雙暉,鄭偉峰,等.基于MATLAB與ADAMS的機(jī)械臂聯(lián)合仿真研究[J].機(jī)械設(shè)計(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]余熾業(yè),宋躍,雷瑞庭.基于STC12C5A60S2的智能循跡小車[J].實(shí)驗(yàn)室研究與探索,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]尹杰,楊宗帥,聶海,等.基于紅外反射式智能循跡遙控小車系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(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]陳鳳東,洪炳熔.基于特征地圖的移動(dòng)機(jī)器人全局定位與 自 主 泊 位 方 法[J].電 子 學(xué) 報(bào) ,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í)語(yǔ)言程序控制的智能循跡小車設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,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]陳華偉,熊慧.智能循跡小車硬件設(shè)計(jì)及路徑識(shí)別算法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,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的語(yǔ)音控制小車設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,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ī)械臂運(yùn)動(dòng)控制系
統(tǒng)的研究[J].計(jì)算機(jī)測(cè)量與控制,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ī)械臂的虛擬現(xiàn)實(shí)仿真實(shí)現(xiàn)[J].機(jī)械設(shè)計(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]左敏,曾廣平,涂序彥.無(wú)人變電站智能機(jī)器人的視覺(jué)導(dǎo)航研究[J].電子學(xué)報(bào),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.