何愛(ài)睿
(蘭州博文科技學(xué)院機(jī)電工程學(xué)院,甘肅 蘭州 730101)
當(dāng)今社會(huì)對(duì)生產(chǎn)廠商生產(chǎn)產(chǎn)品的質(zhì)量要求越來(lái)越嚴(yán)格,精度要求也越來(lái)越高。有些生產(chǎn)環(huán)境中涉及一些危害人體健康的因素,例如在有毒、有害、易燃、易爆和高壓等環(huán)境下從事生產(chǎn)會(huì)對(duì)人體造成巨大的傷害。因此急需找到能代替人工生產(chǎn)的機(jī)械,減輕對(duì)勞動(dòng)者健康的危害。但目前生產(chǎn)的一些大型機(jī)械不適用于生產(chǎn)小件類(lèi)產(chǎn)品,并且價(jià)格昂貴。因此,設(shè)計(jì)一款能夠解放人工勞動(dòng)的機(jī)械臂是十分迫切和有必要的。
該文設(shè)計(jì)的基于Arduino單片機(jī)同步機(jī)械臂是通過(guò)人為操作操控臂使動(dòng)作在受控臂上得以復(fù)制和實(shí)現(xiàn)來(lái)完成人們的預(yù)期要求的,尤其是可以完成流水作業(yè)及危險(xiǎn)環(huán)境下的工作[1]。而且該機(jī)械臂操作簡(jiǎn)單、應(yīng)用范圍廣、維護(hù)維修方便且成本較低,因此具有較大的研究意義和應(yīng)用價(jià)值。
機(jī)器臂在空間位移和姿態(tài)變化時(shí)所需的獨(dú)立運(yùn)動(dòng)參數(shù)的總量叫作機(jī)器臂的移動(dòng)自由。自由個(gè)數(shù)越多,適應(yīng)性就更強(qiáng),動(dòng)作靈活多樣,而機(jī)器的構(gòu)造也就更復(fù)雜。一般的機(jī)械臂有6個(gè)自由度,能夠完成各種復(fù)雜的運(yùn)動(dòng)形式[2]。
該文所設(shè)計(jì)的機(jī)械臂主要用于流水線生產(chǎn)、較輕物體的搬運(yùn)等。因此,最終采用4個(gè)自由度的機(jī)械手臂[3],可以實(shí)現(xiàn)夾持器的開(kāi)合、左右旋轉(zhuǎn)、前后移動(dòng)、上升和下降等運(yùn)動(dòng)。機(jī)械臂在工作過(guò)程中,夾持器和機(jī)械臂上關(guān)節(jié)的運(yùn)動(dòng)為2個(gè)自由度,底座的旋轉(zhuǎn)和下關(guān)節(jié)的移動(dòng)為2個(gè)自由度。自由度這樣分配有利于機(jī)械臂在工作中能夠有序、準(zhǔn)確地執(zhí)行任務(wù),提高其工作效率。
該文所設(shè)計(jì)的基于Arduino單片機(jī)同步機(jī)械臂,由操控機(jī)械臂和受控機(jī)械臂2個(gè)部分構(gòu)成[4]。由人為控制操控臂將其動(dòng)作復(fù)制到受控臂上,實(shí)現(xiàn)動(dòng)作的同步進(jìn)行。主要結(jié)構(gòu)包括3個(gè)部分,即基座、臂身和夾持器。除此之外還有控制部分、驅(qū)動(dòng)部分等。在操控臂上一共安裝有4個(gè)電位器和若干連桿,受控臂上裝有4個(gè)舵機(jī),操控臂的4個(gè)電位器分別對(duì)應(yīng)受控臂上的4個(gè)舵機(jī),通過(guò)導(dǎo)線將電位器和舵機(jī)連接在同一個(gè)控制板上。
工作原理如下:操控臂上安裝的電位器與受控臂上安裝的舵機(jī)通過(guò)Arduino開(kāi)發(fā)板進(jìn)行連接,通過(guò)人為控制操控臂,使操控臂做升降、旋轉(zhuǎn)和伸縮等動(dòng)作,引起電位器電位的變化,進(jìn)而控制受控臂上的舵機(jī)的驅(qū)動(dòng),使受控臂能夠做出和操控臂同樣的動(dòng)作。如此實(shí)現(xiàn)代替人工在一些危險(xiǎn)環(huán)境中進(jìn)行工作。
該文所設(shè)計(jì)的同步機(jī)械臂由3個(gè)部分組成,分別是操控臂部分、受控臂部分以及Arduino開(kāi)發(fā)板連接部分[5]??傮w設(shè)計(jì)框圖如圖1所示。
圖1 設(shè)計(jì)框圖
1.3.1 受控機(jī)械臂結(jié)構(gòu)設(shè)計(jì)
受控臂由鋁合金支架和4個(gè)MG996R舵機(jī)組成,如圖2所示。1號(hào)舵機(jī)位于機(jī)械臂手腕處,控制機(jī)械臂夾持器的開(kāi)合。2號(hào)舵機(jī)位于1號(hào)舵機(jī)與3號(hào)舵機(jī)之間,用來(lái)控制機(jī)械手臂上關(guān)節(jié)的升降。3號(hào)舵機(jī)位于機(jī)械臂的基座之上,用于操縱機(jī)械臂下關(guān)節(jié)上升和下降的動(dòng)作。4號(hào)舵機(jī)安裝在機(jī)械手的基座上,用于控制機(jī)械臂的左右轉(zhuǎn)動(dòng)。然后通過(guò)導(dǎo)線連接電位器與Arduino開(kāi)發(fā)板,并連接受控臂上的舵機(jī)與Arduino開(kāi)發(fā)板,再使用USB數(shù)據(jù)線連接控制主板與電腦,打開(kāi)Arduino IDE程序,將代碼上傳。
圖2 受控臂結(jié)構(gòu)
1.3.2 控制臂結(jié)構(gòu)設(shè)計(jì)
控制臂由鋁合金材料制成上關(guān)節(jié)、下關(guān)節(jié)和基座,由3D材料打印夾持器導(dǎo)軌底座、夾持器連動(dòng)桿、夾持器電位器舵盤(pán)、夾持器滑動(dòng)塊、機(jī)械臂底部轉(zhuǎn)軸連動(dòng)桿和底部電位器舵盤(pán)。在控制臂的夾持器、上關(guān)節(jié)、下關(guān)節(jié)和基座部分分別安裝電位器,用于動(dòng)作信息的捕捉。其中夾持器上的電位器用于檢測(cè)夾持器的開(kāi)、合,上關(guān)節(jié)的電位器檢測(cè)上半臂的上升與下降,下關(guān)節(jié)的電位器監(jiān)測(cè)下半臂的前、后運(yùn)動(dòng),基座的電位器監(jiān)測(cè)操控臂的左、右旋轉(zhuǎn)。
1.3.3 機(jī)械臂驅(qū)動(dòng)方式
該設(shè)計(jì)采用的傳動(dòng)形式是由舵機(jī)構(gòu)傳動(dòng)。舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,由閉環(huán)控制系統(tǒng)的機(jī)電結(jié)構(gòu)、可調(diào)電位器、控制板、傳感器和變速齒輪組等部件組成。它的工作原理是控制裝置從一個(gè)收發(fā)器接受一個(gè)信號(hào),驅(qū)動(dòng)一個(gè)電路板上的電機(jī),用一個(gè)減速器驅(qū)動(dòng)一個(gè)搖臂,一個(gè)位置探測(cè)器就會(huì)把一個(gè)信號(hào)反饋給它,以確定它是否達(dá)到。
該設(shè)計(jì)研究的同步機(jī)械臂主要用于較輕物體的搬運(yùn)和流水線的作業(yè),因此要充分考慮夾持器與具體物體的接觸。由于工作的對(duì)象多為小物件,為了確保其在工作中的通用性,該設(shè)計(jì)采用的末端執(zhí)行部件為夾持器。夾持器在工作中有一定的約束力和形狀約束,能夠在工作中靈活地適應(yīng)各種形狀物體的搬運(yùn),具有較好的適應(yīng)性。對(duì)夾持器各個(gè)部件的圖形繪制如圖3和圖4所示。最終將打印完成的各個(gè)部件組裝成操控臂前段的夾持器。夾持器由人為控制,安裝在電位器舵盤(pán)上的電位器轉(zhuǎn)動(dòng)時(shí)引起電位變化,并將此信號(hào)傳送給與控制板相連接的舵機(jī),使舵機(jī)轉(zhuǎn)動(dòng),進(jìn)而將動(dòng)作同步到受控機(jī)械臂上的夾持器。
圖3 夾持器電位器舵盤(pán)
圖4 夾持器導(dǎo)軌底座
Arduino開(kāi)發(fā)板由硬件和軟件兩部分組成[1],硬件部分既可以單獨(dú)進(jìn)行工作,也可以與其他硬件設(shè)備組合工作,例如與LED燈、發(fā)光二極管、舵機(jī)和各種傳感器等,功能豐富多樣。Arduino的開(kāi)發(fā)語(yǔ)言基于C/C++,所以能大大降低匯編的難度,使用的函數(shù)難度較低,指令的可讀性也比較強(qiáng)。除此之外,與其他開(kāi)發(fā)板相比價(jià)格也較低廉,成本較低,因此受到電子愛(ài)好者的普遍歡迎。軟件部分程序如下。
#include
Servo myservo;// 定義Servo對(duì)象來(lái)控制
int pos = 0; // 角度存儲(chǔ)變量
void setup () {
myservo.attach(9); // 控制線連接數(shù)字9
}
void loop () {
for (pos = 0; pos <= 90; pos ++) { // 0o]90o
// in steps of 1 degree
myservo.write (pos) ;// 舵機(jī)角度寫(xiě)入
delay (10) ; // 等待轉(zhuǎn)動(dòng)到指定角度
}
for (pos = 90; pos >= 0; pos -- ) { // 90o510o
myservo.write (pos) ;// 舵機(jī)角度寫(xiě)入
delay (10) ; // 等待轉(zhuǎn)動(dòng)到指定角度
}
}
該文設(shè)計(jì)的是由人為控制操控機(jī)械臂,引起操控機(jī)械臂上電位器的電位變化,進(jìn)而通過(guò)控制板引起舵機(jī)轉(zhuǎn)動(dòng)角度的變化,并將操控機(jī)械臂上的動(dòng)作遠(yuǎn)程復(fù)制到受控機(jī)械臂上。電位儀由可移動(dòng)的手刷和電阻體組成,可令一個(gè)活動(dòng)觸點(diǎn)在電阻體上移動(dòng),進(jìn)而獲得電位的變化,電位器的原理相當(dāng)于滑動(dòng)變阻器。該文設(shè)計(jì)的是4自由度機(jī)械臂,以上程序是單個(gè)舵機(jī)的控制,不能滿(mǎn)足設(shè)計(jì)需要。因此,需要連接4個(gè)舵機(jī),并連接外接電源,舵機(jī)紅線處需要安裝阻值適宜的固定電阻。
為了讓電位器阻值-電壓的關(guān)系趨近于線性,固定電阻的合適阻值如公式(1)所示。參數(shù)名稱(chēng)如下:固定電阻的阻值為R,電位器的阻值為r,固定信號(hào)電壓為V,固定電阻兩端的電壓為v。把分壓電路的電壓公式v=V×(r/(r+R))帶入曲率公式,并以固定阻值電阻大、小為變量對(duì)其求導(dǎo),可得出曲率變化和阻值的關(guān)系。
式中:x為r;y為V×(r/(r+R))。
使公式(1)等于0,所得出的R能讓電位器阻值-電壓的關(guān)系最接近于線性。
操控臂在安裝時(shí)需要先將滑塊套入夾持器導(dǎo)軌底座中,然后用連桿將電位器的轉(zhuǎn)動(dòng)軸和滑動(dòng)塊連接,在2個(gè)滑塊之間安裝一根套有小彈簧的圓珠筆筆芯,使2個(gè)滑塊合起來(lái)時(shí)自動(dòng)彈開(kāi)。上關(guān)節(jié)的連桿與臂身連接時(shí),要先使用細(xì)鐵絲在連桿孔處安裝一根固定桿,然后用熱熔膠將電位器固定在臂身上關(guān)節(jié)處。將電位器的轉(zhuǎn)動(dòng)軸和連桿的孔對(duì)應(yīng)安裝,使連桿孔上的固定桿與電位器的卡槽對(duì)應(yīng)。底部基座在安裝時(shí)要先將電位器固定好,然后將舵盤(pán)分別固定在操控臂的基座處和電位器上,使用廢棄的信號(hào)線將舵盤(pán)的兩端分別連接,以使機(jī)械臂在轉(zhuǎn)動(dòng)過(guò)程中保持左、右均衡。電位器連接好之后,在4個(gè)電位器的針腳處連接上信號(hào)線。為了使信號(hào)線容易區(qū)分,不同位置的電位器可以使用不同顏色的信號(hào)線連接。最后用膠帶將信號(hào)線固定在不影響臂身關(guān)節(jié)運(yùn)動(dòng)的地方。受控臂的舵機(jī)分別安裝在夾持器以及臂身的上關(guān)節(jié)、下關(guān)節(jié)和基座處。操控臂上的4個(gè)電位器分別對(duì)應(yīng)受控臂的4個(gè)舵機(jī)。將舵機(jī)引出的導(dǎo)線和電位器的信號(hào)線依次插入控制板的接口處。
3.2.1 調(diào)試的方法
先連接好電路,使用USB數(shù)據(jù)線連接控制主板與電腦。打開(kāi)Arduino IDE程序,將程序輸入至窗口,然后從操控臂的夾持器開(kāi)始從上往下依次測(cè)試每個(gè)電位器與對(duì)應(yīng)的舵機(jī)的連接是否完好,當(dāng)電位器發(fā)生旋轉(zhuǎn)時(shí),是否會(huì)引起舵機(jī)的轉(zhuǎn)動(dòng)。再進(jìn)行整體的機(jī)械臂調(diào)試,測(cè)試整個(gè)機(jī)械臂的自由度是否能夠達(dá)到預(yù)定的要求。
3.2.2 調(diào)試結(jié)果的分析與改進(jìn)
檢測(cè)電路連接時(shí)無(wú)異常,各個(gè)線路連接完好。逐一檢測(cè)電位器與舵機(jī)的對(duì)接時(shí),手動(dòng)控制夾持器的開(kāi)、合使電位器的轉(zhuǎn)動(dòng)軸發(fā)生轉(zhuǎn)動(dòng),發(fā)現(xiàn)受控臂的夾持器能夠做出相應(yīng)的動(dòng)作,說(shuō)明夾持器部分的連接控制良好。檢測(cè)臂身部分的連接時(shí),將連桿拉至端點(diǎn)時(shí),發(fā)現(xiàn)工作角度受到一定的限制,不能很好地控制臂身運(yùn)動(dòng),導(dǎo)線的捆綁也限制了機(jī)械臂的運(yùn)動(dòng)。
連桿與臂身的連接不能很好地滑動(dòng)是因?yàn)檫B桿臂身連接得太緊,可以擴(kuò)大連桿的內(nèi)側(cè)尺寸,便可解決問(wèn)題。如果舵機(jī)的轉(zhuǎn)動(dòng)角度不能達(dá)到輸入?yún)?shù)對(duì)應(yīng)的角度,可以對(duì)舵機(jī)的方向進(jìn)行重新調(diào)整。
該文設(shè)計(jì)的機(jī)械臂基于Arduino單片機(jī)同步機(jī)械臂,采集真人手臂動(dòng)作在操控臂上的電位器引起的電位變化,通過(guò)控制板和舵機(jī)將其直接轉(zhuǎn)化為機(jī)械臂動(dòng)作。通過(guò)確定行為狀態(tài)和進(jìn)行動(dòng)作的坐標(biāo)轉(zhuǎn)換,實(shí)現(xiàn)基于姿態(tài)同步的主、從同步機(jī)械臂。該設(shè)計(jì)的最大特點(diǎn)是利用Arduino單片機(jī)實(shí)現(xiàn)機(jī)械臂控制,與其他單片機(jī)相比,該設(shè)計(jì)更簡(jiǎn)單、易操作。機(jī)械手臂采用舵機(jī)驅(qū)動(dòng)方式,具有傳動(dòng)精度高、體積小、速度快及運(yùn)動(dòng)平穩(wěn)的優(yōu)點(diǎn),從動(dòng)機(jī)械臂可以自動(dòng)同步或者重復(fù)主動(dòng)機(jī)械臂的動(dòng)作,使用方便,效率高。
中國(guó)新技術(shù)新產(chǎn)品2022年19期