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