趙麗麗
(東北石油大學(xué)電氣信息工程學(xué)院)
Arduino平臺(tái)在機(jī)械手臂控制系統(tǒng)中的應(yīng)用
趙麗麗
(東北石油大學(xué)電氣信息工程學(xué)院)
為了提高機(jī)械手臂的可控程度,設(shè)計(jì)了應(yīng)用Arduino平臺(tái)的六自由度機(jī)械手臂可控系統(tǒng),分別介紹了硬件系統(tǒng)和軟件系統(tǒng)。測(cè)試結(jié)果表明該設(shè)計(jì)在實(shí)驗(yàn)室環(huán)境下可正常工作。
機(jī)械手臂 六自由度 Arduino平臺(tái)
機(jī)械手型機(jī)器人作為現(xiàn)代機(jī)器人領(lǐng)域的重要構(gòu)成部分,在現(xiàn)代社會(huì)的多個(gè)領(lǐng)域占主導(dǎo)地位。它由數(shù)學(xué)、機(jī)械工程、電氣與電子工程、控制工程、計(jì)算機(jī)科學(xué)及認(rèn)知科學(xué)等學(xué)科交叉產(chǎn)生,其系統(tǒng)及其設(shè)計(jì)代表著工程意義和理論意義。
Arduino平臺(tái)是一款廣泛應(yīng)用的硬件開(kāi)放平臺(tái)[1],其相對(duì)簡(jiǎn)單的開(kāi)放方式讓設(shè)計(jì)者更專(zhuān)注設(shè)計(jì)的創(chuàng)新和應(yīng)用,可更快地實(shí)現(xiàn)項(xiàng)目開(kāi)發(fā),節(jié)省了時(shí)間成本,減少了開(kāi)發(fā)周期。
筆者綜合機(jī)械手臂和Arduino平臺(tái)的理論與技術(shù),通過(guò)對(duì)機(jī)械手臂各個(gè)關(guān)節(jié)精確控制,實(shí)現(xiàn)了機(jī)械手臂對(duì)6個(gè)自由度關(guān)節(jié)的調(diào)整控制,繼而進(jìn)行簡(jiǎn)單的動(dòng)作。筆者為了增強(qiáng)機(jī)械手臂的通用性,便于在不同應(yīng)用環(huán)境下的使用,設(shè)計(jì)了多種不同控制指令的方式,包括聲控、光控、手勢(shì)識(shí)別、顏色識(shí)別、智能手柄及手機(jī)藍(lán)牙等對(duì)機(jī)械手臂進(jìn)行操控。
機(jī)械手臂是一種同時(shí)兼具高度能動(dòng)性和高度靈活性的自動(dòng)化機(jī)器,它是機(jī)電一體化設(shè)備的典型代表之一。機(jī)械手臂控制系統(tǒng)(圖1)的主要部分由Arduino主控制板、舵機(jī)控制板、舵機(jī)系統(tǒng)和外接傳感器構(gòu)成[2]。
圖1 六自由度機(jī)械手臂構(gòu)成框圖
Arduino控制板負(fù)責(zé)搭載外接傳感器,接收外接傳感器發(fā)送的信號(hào),并對(duì)這些信號(hào)進(jìn)行處理[3]。再通過(guò)串口將信號(hào)上傳至舵機(jī)控制器,即以多種不同的控制模式控制機(jī)械手臂。舵機(jī)控制板負(fù)責(zé)接收機(jī)械手臂的控制指令,并將信號(hào)放大以驅(qū)動(dòng)各個(gè)舵機(jī)[4]。
舵機(jī)系統(tǒng)主要包括底座舵機(jī)、臂部關(guān)節(jié)舵機(jī)、腕部關(guān)節(jié)舵機(jī)及手部關(guān)節(jié)舵機(jī)等,分別用于模擬執(zhí)行機(jī)械手臂的動(dòng)作。也可以對(duì)6個(gè)舵機(jī)單獨(dú)控制,從而實(shí)現(xiàn)對(duì)機(jī)械手臂6個(gè)自由度的調(diào)整控制。
外接傳感器主要由聲音傳感器、光敏電阻傳感器、紅外避障傳感器、三軸加速度傳感器、超聲波測(cè)距傳感器、OLED液晶顯示模塊、手勢(shì)感應(yīng)傳感器、藍(lán)牙模塊以及PS2無(wú)線遙控模塊等部分組成。
機(jī)械手臂控制系統(tǒng)主要由主控制器系統(tǒng)、舵機(jī)控制板、舵機(jī)系統(tǒng)及各種傳感器等構(gòu)成[5]。舵機(jī)驅(qū)動(dòng)板類(lèi)似于人體小腦,里面存有已經(jīng)下載好的動(dòng)作指令代碼,會(huì)根據(jù)接收到的指令驅(qū)動(dòng)舵機(jī)做出相應(yīng)的動(dòng)作。Arduino相當(dāng)于人體大腦,用于接收外界信息,感知環(huán)境,進(jìn)行控制指令操作。
2.1主控制器系統(tǒng)
Arduino主控制器系統(tǒng)硬件部分包括ATmega328單片機(jī)、供電系統(tǒng)模塊、6路傳感器接口、通信模塊、CH340下載調(diào)試模塊、藍(lán)牙電路模塊和擴(kuò)展板。此單片機(jī)是一種基于AVR架構(gòu)體系的單片機(jī)。在電源電路中選擇XL4015降壓型DC-DC轉(zhuǎn)換芯片。將外接鋰電池36V電壓降壓為5V,為控制板提供穩(wěn)定的電源,電源供電電路如圖2所示。
圖2 電源供電電路
2.2舵機(jī)控制板
舵機(jī)控制板的核心主要是STM32F103C8T6型單片機(jī),用于系統(tǒng)發(fā)出的指令,并控制指令放大編碼后控制舵機(jī)。主要包括STM32F103C8T6單片機(jī)、供電系統(tǒng)模塊、6路PWM舵機(jī)接口、通信模塊、CH340下載調(diào)試模塊和Flash存儲(chǔ)模塊。供電系統(tǒng)電路與主控制器系統(tǒng)模塊基本相同,有6路PWM舵機(jī)接口,將6個(gè)舵機(jī)分別與各引腳相連接,完成指定動(dòng)作。
2.3舵機(jī)系統(tǒng)
舵機(jī)系統(tǒng)共由6個(gè)舵機(jī)構(gòu)成,對(duì)應(yīng)控制機(jī)械手臂的6個(gè)自由度。為了夾持器有更強(qiáng)的扭矩,選擇TBSN-K15型耐燒數(shù)字舵機(jī),其余舵機(jī)選擇TBS2701型。它們的工作電壓為直流4.8~7.2V,工作角度為0~270°??芍С謾C(jī)械手臂進(jìn)行相應(yīng)動(dòng)作所需的扭矩。
2.4傳感器
2.4.1聲音傳感器
聲音傳感器型號(hào)為CNZ-15E,可檢測(cè)到周?chē)h(huán)境中非特定頻率或強(qiáng)度的聲音信號(hào),并以數(shù)字形式輸出,且靈敏度可調(diào),其電路如圖3所示。工作原理:傳感器內(nèi)部設(shè)置一個(gè)對(duì)聲音極敏感的電容式駐極體話筒[6]。聲波使話筒內(nèi)的駐極體薄膜振動(dòng),通過(guò)電容的變化會(huì)產(chǎn)生相應(yīng)的微小電壓。這一電壓隨后被轉(zhuǎn)換成0~5V的電壓,經(jīng)過(guò)A/D轉(zhuǎn)換被數(shù)據(jù)采集器接收,并傳送給主控制器。
2.4.2三軸加速度傳感器模塊
ADXL335是一款小尺寸、薄型、低功耗、完整的三軸加速度計(jì),提供經(jīng)過(guò)信號(hào)調(diào)理的電壓輸出,再以最小±3g的滿量程范圍計(jì)算加速度,其電路如圖4所示。
它可以測(cè)量?jī)A斜檢測(cè)應(yīng)用中的靜態(tài)重力加速
圖3 聲音傳感器電路
度和運(yùn)動(dòng)、沖擊或振動(dòng)導(dǎo)致的動(dòng)態(tài)加速度。本設(shè)計(jì)中,只用到x軸和y軸兩個(gè)方向上的加速度,并分別將x、y兩軸的輸出引腳與Arduino上的5、6端口相連接。
圖4 三軸加速度傳感器模塊電路
2.4.3姿態(tài)感應(yīng)模塊
APDS-9960芯片是一款集成紅外LED、接近檢測(cè)器的光學(xué)模塊和環(huán)境亮度感測(cè)的傳感器,使用雙光二極管來(lái)近似0.01lux照度近似人眼的視覺(jué)反應(yīng)。
本設(shè)計(jì)采用內(nèi)置APDS-9960傳感器的小接口板,它是一個(gè)RGB和手勢(shì)傳感器,內(nèi)置紫外線和紅外線阻隔濾鏡,有4個(gè)單獨(dú)的二極管分別對(duì)不同方向進(jìn)行檢測(cè),還有一個(gè)I2C兼容接口。用來(lái)實(shí)現(xiàn)顏色識(shí)別和非接觸手勢(shì)檢測(cè),姿態(tài)感應(yīng)模塊的電路如圖5所示,SCL、SDA引腳連接至Arduino上的5端口和4端口。
圖5 姿態(tài)感應(yīng)模塊電路
3.1舵機(jī)控制板代碼設(shè)計(jì)
舵機(jī)控制軟件是用來(lái)進(jìn)行動(dòng)作調(diào)試,下載動(dòng)作組或其他擴(kuò)展功能的PC機(jī)控制軟件。本設(shè)計(jì)中使用的PC控制軟件界面如圖6所示,共設(shè)計(jì)了12組動(dòng)作組以進(jìn)行12個(gè)指定的動(dòng)作任務(wù)。編輯動(dòng)作組中的單個(gè)動(dòng)作時(shí),需要給出各路舵機(jī)的位置和到達(dá)該位置的時(shí)間,進(jìn)而得到動(dòng)作指令代碼命令。代碼命令格式如下:
#
圖6 舵機(jī)控制界面
其中
編寫(xiě)好所有的12個(gè)動(dòng)作任務(wù)對(duì)應(yīng)的動(dòng)作組之后,將動(dòng)作組下載到驅(qū)動(dòng)板內(nèi),為之后的工作做準(zhǔn)備。
3.2系統(tǒng)主程序
本軟件設(shè)計(jì)程序主要實(shí)現(xiàn)的是利用各種傳感器模塊操縱機(jī)械臂完成指定動(dòng)作。程序設(shè)計(jì)在于利用Arduino UNO讀取相應(yīng)數(shù)據(jù)并發(fā)送相應(yīng)的指令,通過(guò)串口通信將指令傳遞給驅(qū)動(dòng)板。因?yàn)樵隍?qū)動(dòng)板內(nèi)已經(jīng)下載好動(dòng)作組,驅(qū)動(dòng)板可根據(jù)接收到的指令驅(qū)動(dòng)舵機(jī)執(zhí)行相應(yīng)的動(dòng)作。當(dāng)動(dòng)作執(zhí)行完后,LED和蜂鳴器進(jìn)行聲光報(bào)警。程序流程如圖7所示。
實(shí)驗(yàn)室測(cè)試結(jié)果表明:基于Arduino平臺(tái)的機(jī)械手臂控制系統(tǒng),采用六自由度機(jī)械手臂,可以完成指定任務(wù)和規(guī)定動(dòng)作,關(guān)節(jié)操作更靈活;通過(guò)外接多種傳感器,為機(jī)械手臂添加了“聽(tīng)覺(jué)”、“視覺(jué)”及“觸覺(jué)”等感知功能,使得它可以感知多種不同環(huán)境下發(fā)出的指令信號(hào);系統(tǒng)采用雙電源供電(鋰電池和市電供能),便于使用。
圖7 主程序流程
[1] 張濤,王炎.基于單片機(jī)和Arduino平臺(tái)的六自由度可控機(jī)械手臂[J].電氣自動(dòng)化,2016,38(6):97~99.
[2] 謝杰騰,顏曉文.基于Android手機(jī)語(yǔ)音和Arduino控制板的機(jī)器人控制系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2015,(3):101~102.
[3] 劉俊暢,蘆利斌,譚力寧.基于Arduino的自動(dòng)避障技術(shù)實(shí)現(xiàn)[J].信息技術(shù),2014,(12):170~172.
[4] 孟浩,王妍瑋.基于Arduino的雙足仿人機(jī)器人設(shè)計(jì)[J].林業(yè)機(jī)械與木工設(shè)備,2014,(2):38~40.
[5] 楊志鵬.導(dǎo)游機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2010.
[6] 李超.聲音識(shí)別傳感器設(shè)計(jì)與應(yīng)用[J].傳感器與微系統(tǒng),2014,33(12):51~53.
TheApplicationofArduinoPlatform
ZHAO Li-li
(CollegeofElectricalEngineeringandInformation,NortheastPetroleumUniversity)
In order to improve the controllability of mechanical arm, an Arduino platform-based controllable system for the manipulator with six degrees of freedom was designed and its hardware and software system were introduced respectively. The test results show that this design can work well in the laboratory environment.
manipulator, six degrees of freedom, Arduino
趙麗麗(1992-),碩士研究生,從事檢測(cè)技術(shù)與自動(dòng)裝置的研究,18545772186@163.com。
TP241
A
1000-3932(2017)11-1073-05
2017-07-06,
2017-09-09)