顧頔 韓鑫
摘 要:使用Arduino Uno開(kāi)發(fā)板、6個(gè)步進(jìn)電機(jī)、HC-05藍(lán)牙模塊等部件設(shè)計(jì)了用于教學(xué)的機(jī)械手及其控制系統(tǒng)。該機(jī)械手能接收藍(lán)牙遙控器和PC機(jī)的命令,控制步進(jìn)電機(jī)實(shí)現(xiàn)6個(gè)自由度的運(yùn)動(dòng)。旨在為相關(guān)專(zhuān)業(yè)學(xué)生創(chuàng)造一多功能演示教具,可提高學(xué)生對(duì)機(jī)械手結(jié)構(gòu)的了解并增強(qiáng)單片機(jī)運(yùn)用方面的能力。同時(shí)該機(jī)械手的高度模塊化與柔性化也鼓勵(lì)學(xué)生進(jìn)行自主創(chuàng)新。
關(guān)鍵詞:機(jī)械手 步進(jìn)電機(jī) Arduino 藍(lán)牙
中圖分類(lèi)號(hào):TP241 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2019)02(b)-0090-02
Abstract:Robots and control systems for teaching were designed using components such as the Arduino Uno development board, six stepper motors, and the HC-05 Bluetooth module. The robot can receive commands from the Bluetooth remote control and the PC, then control the stepper motor to achieve 6 degrees of freedom of motion.We aim to create a multi-functional presentation aid for relevant students, which can improve students' understanding of the structure of the robot and enhance the ability of the microcontroller.At the same time, the robot's high degree of modularity and flexibility also encourages students to innovate independently.
Key Words: Robot; Step motor; Arduino; Bluetooth
隨著社會(huì)的不斷進(jìn)步,尤其是機(jī)械技術(shù)和自動(dòng)控制技術(shù)的發(fā)展,現(xiàn)代工業(yè)機(jī)器人逐漸取代了傳統(tǒng)的手工勞作,把我們從一些機(jī)械化的、重復(fù)性的勞動(dòng)中解脫出來(lái)[1]。工業(yè)機(jī)器人可以直接接受人們的指令,也可以按照程序方程式自動(dòng)運(yùn)行,實(shí)現(xiàn)生產(chǎn)過(guò)程的自動(dòng)化,大大提高了我們的生產(chǎn)效率。同時(shí),Arduino作為開(kāi)源系統(tǒng),具有很多優(yōu)點(diǎn):源代碼和電路原理圖開(kāi)放,程序接口可以免費(fèi)下載;易于與其他電子元件、傳感器、擴(kuò)展板或機(jī)械結(jié)構(gòu)等結(jié)合起來(lái),組成智能設(shè)備等,適合初學(xué)者使用。綜上所述,我們?cè)O(shè)計(jì)的這一演示教具希望能夠同時(shí)促進(jìn)學(xué)生對(duì)于機(jī)械手和單片機(jī)的學(xué)習(xí)和掌握。
1 功能結(jié)構(gòu)
該機(jī)械手主要用于教學(xué)示范用具,如圖1所示,意在向?qū)W生展示機(jī)械手的運(yùn)動(dòng)方式、控制方式、電路結(jié)構(gòu)、軟件程序等。此次設(shè)計(jì)機(jī)械手具有以下功能。
(1)可以實(shí)現(xiàn)實(shí)現(xiàn)手爪的張開(kāi)、合并、抓取物體、捏和握等基本動(dòng)作,達(dá)到基本的要求。
(2)結(jié)構(gòu)可以充分體現(xiàn)出機(jī)械領(lǐng)域的專(zhuān)業(yè)知識(shí)。
(3)作品美觀大方。在具有相應(yīng)功能的同時(shí)還具有一定的觀賞價(jià)值和娛樂(lè)價(jià)值。
模型選擇3D打印制造,既方便快捷,也便于同學(xué)們DIY各式零部件進(jìn)行替換。一根機(jī)械手爪可視作三連桿機(jī)構(gòu),主要由3個(gè)轉(zhuǎn)動(dòng)副組成,每個(gè)轉(zhuǎn)動(dòng)副轉(zhuǎn)動(dòng)范圍約為90°。為了保證機(jī)械手運(yùn)行流暢,能夠保證工作在各個(gè)位置時(shí)的穩(wěn)定性,并且提供一定的力矩,故在各轉(zhuǎn)動(dòng)副中加入一扭簧。采用的傳動(dòng)方式是機(jī)械傳動(dòng)中的繩索傳動(dòng)。繩索傳動(dòng)最大的特點(diǎn)是在給對(duì)象施加拉力的同時(shí),可以給一個(gè)固定的位置一個(gè)相應(yīng)的推力,使得機(jī)械手指的力矩就作用在自身的轉(zhuǎn)動(dòng)副上,而不是相鄰的指節(jié)或者根部的指節(jié)。繩索傳動(dòng)依靠動(dòng)力裝置牽引內(nèi)部繩索的抽動(dòng),用繩索的抽動(dòng)帶動(dòng)指節(jié)的運(yùn)動(dòng),可以在較為狹窄的地方提供較大的力。在各指關(guān)節(jié)中布置通孔,傳動(dòng)繩索通過(guò)其中并固定,與動(dòng)力元件相連,從而帶中各關(guān)節(jié)的運(yùn)動(dòng)。為了保證傳動(dòng)部分不受干擾,故繩索布置在機(jī)械手內(nèi)部,同時(shí)動(dòng)力裝置適當(dāng)遠(yuǎn)離機(jī)械手,從而保證可靠性[2]。
由于機(jī)械手承受載荷較小,轉(zhuǎn)速小時(shí)穩(wěn)定性較好,為了滿足此次設(shè)計(jì)的要求,采用電機(jī)驅(qū)動(dòng)當(dāng)中的步進(jìn)電機(jī)驅(qū)動(dòng)。步進(jìn)電機(jī)是一種常用的控制電機(jī),又稱(chēng)為階躍電動(dòng)機(jī)或者是脈沖電動(dòng)機(jī)。它的基本工作原理是,根據(jù)輸入的脈沖信號(hào)確定內(nèi)部勵(lì)磁線圈的狀態(tài),使得轉(zhuǎn)子固定在與通電勵(lì)磁線圈相同的方向上,當(dāng)輸入信號(hào)的狀態(tài)發(fā)生改變,則內(nèi)部勵(lì)磁線圈的狀態(tài)亦發(fā)生改變轉(zhuǎn)子也轉(zhuǎn)到相應(yīng)的方向,使得步進(jìn)電機(jī)的輸出軸發(fā)生轉(zhuǎn)動(dòng),同時(shí),若步進(jìn)電機(jī)的輸入信號(hào)有規(guī)律的改變,則輸出軸也會(huì)按照預(yù)定的方向發(fā)生轉(zhuǎn)動(dòng),是一種較為理想的控制電機(jī)[3]。通過(guò)控制步進(jìn)電機(jī)輸入脈沖,可以實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)輸出角度的精準(zhǔn)控制。
2 電路系統(tǒng)
為控制步進(jìn)電機(jī)按要求進(jìn)行轉(zhuǎn)動(dòng),此次實(shí)驗(yàn)選擇將步進(jìn)電機(jī)位置的模擬量轉(zhuǎn)化為數(shù)字量,通過(guò)加減控制字,從而控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng),最終達(dá)到預(yù)定位置。每次得電時(shí)電機(jī)的位置初值設(shè)為4096,轉(zhuǎn)動(dòng)時(shí)控制字改變量為16,電機(jī)轉(zhuǎn)動(dòng)。計(jì)算過(guò)程如下。
由于電機(jī)采用四相四拍驅(qū)動(dòng),步距角為5.625°/64,控制字每改變1,電機(jī)得到整個(gè)周期4個(gè)脈沖。
由于機(jī)械手呈完全對(duì)稱(chēng)性,研究人員本打算設(shè)計(jì)成相對(duì)的兩爪指節(jié)的驅(qū)動(dòng)電機(jī)由同一輸出口控制,這樣既能保證機(jī)械手工作時(shí)的一致性,也減少了對(duì)輸出口數(shù)量的要求,簡(jiǎn)化了設(shè)計(jì)要求。但是實(shí)際操作后發(fā)現(xiàn),由于誤差累積,很難保證機(jī)械手的對(duì)稱(chēng)性,故此最終還是選擇分別控制6個(gè)關(guān)節(jié)。由于每個(gè)關(guān)節(jié)由步進(jìn)電機(jī)驅(qū)動(dòng),需4個(gè)輸入端口,共計(jì)24個(gè)輸入端口,而Arduino板IO端口不足,故需通過(guò)74hc238譯碼器進(jìn)行IO端擴(kuò)展。
此次實(shí)驗(yàn)采用的步進(jìn)電機(jī)為四相電機(jī),由于端口電壓不足需通過(guò)ULN 2003芯片驅(qū)動(dòng)。將電機(jī)與芯片相連后,芯片的4個(gè)輸入端就相對(duì)應(yīng)于電機(jī)四相定子,只需按通電順序依次給通電,即可實(shí)現(xiàn)電機(jī)的轉(zhuǎn)動(dòng)。
3 程序設(shè)計(jì)
Arduino語(yǔ)言是用C開(kāi)發(fā)環(huán)境編寫(xiě)的,從根本上來(lái)講,它就是一些基本的C語(yǔ)言。Arduino語(yǔ)言之所以受歡迎的原因在于它通過(guò)函數(shù)把一些相關(guān)的功能封存了起來(lái),使得我們不需要去學(xué)習(xí)最基本的理論,而是直接使用它,大大降低了它的使用門(mén)檻,這樣一來(lái),即使是非電學(xué)專(zhuān)業(yè)的學(xué)生,只要經(jīng)過(guò)短暫的學(xué)習(xí),也可以利用它制作一些有趣的小玩意。
總體的功能分為3部分:數(shù)據(jù)接收、數(shù)據(jù)處理和脈沖輸出。
數(shù)據(jù)接受部分:利用手機(jī)藍(lán)牙發(fā)送控制信號(hào)。使用Serial.available()指令可接收和判斷手機(jī)發(fā)送的信號(hào),因此需要首先規(guī)定輸出的各種信號(hào)對(duì)應(yīng)的功能。在此,選擇十六進(jìn)制數(shù)0-B分別對(duì)應(yīng)6個(gè)電機(jī)的正反轉(zhuǎn),以此為依據(jù)編寫(xiě)控制程序,并在手機(jī)端預(yù)先設(shè)置開(kāi)關(guān)和備注名稱(chēng)。
數(shù)據(jù)處理部分:根據(jù)接收到的信號(hào)進(jìn)行運(yùn)算,按運(yùn)算結(jié)果調(diào)用正反轉(zhuǎn)程序,實(shí)現(xiàn)電機(jī)功能。
脈沖輸出部分:按照四相八拍通電方式按序設(shè)置對(duì)應(yīng)引腳為高或低電平,每個(gè)脈沖輸出時(shí)間為2ms[4-6]。
4 控制軟件
由于藍(lán)牙通訊在短距離交換是較為穩(wěn)定,同時(shí)擁有較為成熟的接收模塊,所以控制部分主要選擇依靠藍(lán)牙遙控實(shí)現(xiàn),具體如下。
在使用該模塊前,需按要求先進(jìn)入AT模式對(duì)其進(jìn)行初始化設(shè)置。全部設(shè)置完畢后再次通斷電,藍(lán)牙模塊指示燈快速閃爍,表示模塊進(jìn)入正常工作狀態(tài)。
藍(lán)牙模塊設(shè)置完畢口,在手機(jī)端下載藍(lán)牙串口APP與其聯(lián)接。這樣就可以通過(guò)手機(jī)發(fā)送各種數(shù)據(jù)給藍(lán)牙模塊,達(dá)到通信控制功能。在后續(xù)實(shí)驗(yàn)中,為避免占用電機(jī)IO口,藍(lán)牙模塊TXD,RXD接腳分別接Arduino板0,1口;需要注意的是,上傳程序時(shí),需先將此接線斷開(kāi),避免占用導(dǎo)致上傳失敗。程序上傳完畢后,再將此接線連上藍(lán)牙才能正常工作。在藍(lán)牙部分,我們還加入更多模塊化功能,同時(shí)預(yù)留一定的修改、自由改動(dòng)空間,有利于學(xué)生自主學(xué)習(xí)發(fā)揮[7-9]。
5 結(jié)語(yǔ)
該文主要描述了一種基于Arduino的演示教學(xué)機(jī)械手設(shè)計(jì)方案。該機(jī)械手主要優(yōu)點(diǎn)在于模塊化、柔性程度較高,便于學(xué)生在掌握基礎(chǔ)的情況下自主進(jìn)行多樣化設(shè)計(jì)。該文基于科研訓(xùn)練項(xiàng)目,在創(chuàng)作過(guò)程中我們本身也受益匪淺。
參考文獻(xiàn)
[1] 劉廣明.PRRR機(jī)械手機(jī)構(gòu)分析及運(yùn)動(dòng)實(shí)現(xiàn)的研究[D].沈陽(yáng)工業(yè)大學(xué),2013.
[2] 許洪基.現(xiàn)代機(jī)械傳動(dòng)手冊(cè)[D].北京:中國(guó)標(biāo)準(zhǔn)出版社,1997.
[3] 楊繼志,郭敬.Arduino的互動(dòng)產(chǎn)品平臺(tái)創(chuàng)新設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,12(4):39-41.
[4] 孫宏偉,肖正洪.開(kāi)源硬件Arduino UNO的原理與應(yīng)用[J].新校園,2013(9):45.
[5] 付久強(qiáng).基于Arduino平臺(tái)的智能硬件設(shè)計(jì)研究[J].包裝工程,2015(10):76-79.
[6] 李明亮.Arduino項(xiàng)目DIY[M].北京:清華大學(xué)出版社,2014.
[7] 蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程,2012,20(16):155-157.
[8] Oxer, Jonathan. Practical Arduino [M].Berkeley, CA : Apress,2010.
[9] Evans,Brian.Beginning Arduino Programming[M].Berkeley, CA:Apress,2011.