彭威
摘要:文章設計實現(xiàn)了一個基于51單片機的機械臂控制系統(tǒng)。該控制系統(tǒng)主要采用STM32f407最小系統(tǒng)開發(fā)板、機械臂和JDY-31藍牙進行組裝。其分為8大模塊,分別是:PCA9685控制多路舵機模塊、矩陣按鍵模塊、LCD1702顯示模塊、DS18B20溫度檢測模塊、獨立按鍵模塊、步進電機、ULN2003步進電機控制模和DS1302時鐘模塊。各模塊協(xié)調工作,可顯示當前年月日時分秒和步進電機開關狀態(tài),可通過矩陣按鍵模塊調整時間,控制步進電機的開關。此機械臂由紅外遙控器控制,LCD1702顯示舵機狀態(tài)。
關鍵詞:單片機;機械臂;藍牙;紅外遙控
中圖分類號:TP241文獻標志碼:A
1 背景及意義
隨著科學技術的發(fā)展,機器人技術被廣泛應用到各種結構化的場景,比如,3C消費電子和汽車工廠等標準化制造業(yè)流程[1]。這類場景,一般不需要復雜的規(guī)劃算法,借助簡單的正逆解計算工具,機器人可以一遍又一遍地執(zhí)行相同的動作。但與這些標準化的加工制造行業(yè)不同,非結構化環(huán)境,如:家庭、醫(yī)院和超市等,給機器人規(guī)劃帶來了更多挑戰(zhàn)[2]。在這種情況下,機器人技術還沒有準備好處理不同種類的任務無限數(shù)量的組合,甚至與人類合作。機械臂在近70年的發(fā)展中,從粗糙的工業(yè)生產用具變?yōu)槎鄬W科交叉融合的工業(yè)藝術,進入社會的各個角落。其應用領域遍及科研教育、機器視覺、醫(yī)療手術、智能輪椅和服務機器人等。機械臂的亮點強調支持ROS、嵌入式視覺、無限關節(jié)旋轉、自由度冗余控制和全關節(jié)內置扭矩傳感等[3]。
單片機集成CPU、程序儲存器ROM、數(shù)據(jù)儲存器RAM和輸入輸出接口,有的單片機內還集成了電機驅動電路、視頻解碼電路、AD轉換器、無線傳輸電路等,使得單片機功能變得非常強大。單片機的特長在于可用單個芯片和簡單外部電路去實現(xiàn)復雜的控制操作,因此非常適合機器人控制。在絕大多數(shù)機器人中都由單片機控制。簡單的和中等復雜的機器人可用單片機直接控制,高度復雜的機器人用“個人電腦”或者“超級計算機”指揮許多單片機來完成機器人控制。本文實現(xiàn)的機械手臂使用51單片機進行控制,采用電源、晶振、LED和ISP接口組建單片機最小系統(tǒng)[4]。
2 分析與設計
2.1 需求分析與總體框架
本文設計的機械臂控制系統(tǒng)的軟硬件部分由電源及調理模塊、單片機控制系統(tǒng)、自由度機械臂機械結構、姿態(tài)控制藍牙手柄、舵機組成,主控芯片為STM32單片機。首先,上位機使得用戶在其界面拖動滑條,可以通過串口發(fā)送指令到單片機控制板;其次,單片機控制板中的固件程序,接收上位機發(fā)過來的串口指令并解析,根據(jù)指令控制機械臂的舵機運動;最后,單片機控制板采用一塊Arduino板。機械臂的控制主要是通過控制父節(jié)點的旋轉,帶動子節(jié)點移動,子節(jié)點的旋轉再帶動自己的子節(jié)點移動以此類推。每個節(jié)點的旋轉單一,通常是水平方向和垂直方向,即x軸旋轉和y軸旋轉,也有可能出現(xiàn)z軸旋轉。本文系統(tǒng)的總體框架如圖1所示。
2.2 機械臂的相關技術分析
2.2.1 單片機控制多個舵機
本文設計的硬件使用的是STC89C52,P30-P31 IO口對應控制的6個按鍵,一個舵機由兩個按鍵控制,P24-P27對應舵機的控制端(SG90的橙色線)。按鍵可焊接,從IO口接出到按鍵再到GND。有關占空比的工作原理是利用定時器的分時復用。51的T0定時器50ms溢出一次,每溢出一次產生一次中斷。本文利用這個概念給它加上一個標志flag,每一個flag對一個舵機進行控制,每當一個flag=1時,即產生中斷,對應的舵機就會啟動。算法流程闡述如下:首先,標定機械臂各關節(jié),從KinectV2獲取圖像,經(jīng)過處理得到關節(jié)點在空間中的坐標,通過幾何運動學解算出此時各關節(jié)角的角度;其次,從KinectV2獲取圖像,經(jīng)過處理得到目標物體位置,通過幾何運動學解算出機械臂要抓到物體所要的角度(目標角度);再次,計算目標角度與當前角度的誤差,使用反饋控制減少誤差;最后,循環(huán)前3步,當誤差足夠小時即可命令機械臂抓起物體。
2.2.2 大臂和小臂設計技術
大臂設計在中座的右側,由一個SG90的舵機驅動,帶動大臂連桿進行旋轉,大臂左右有兩個連桿,兩個連桿之間由一個連接板進行連接。大臂和連接板連接時,采用緊固方式,將凹槽設計的與螺栓長度相同,使螺栓擰緊時,螺母和螺栓都能恰巧頂?shù)竭B板。為了使連接可靠,同時設計2個緊固結構和4個插槽,保證連接的穩(wěn)定性。
小臂則將SG90驅動舵機放置在中座的左側,電機軸通過花鍵與小臂曲柄連接,然后通過曲柄搖桿結構帶動從動搖臂旋轉,實現(xiàn)小臂的旋轉,這樣的設計可以減輕小臂的承重,對于亞克力板以及SG90這樣小驅動力的電機非常合適。同時,在左右兩條小臂之間,加一個鷹鉤連接凹槽的連板,并且在小臂上加一塊三角連板,三角連板連接兩條從動桿,這樣可以保證小臂連桿的穩(wěn)定性,也可保證在小臂與鉗子連接的穩(wěn)定性。
2.2.3 組裝技術分析
在組裝過程中,為了減少螺母的使用或防止螺母對運動的阻礙,本文設計將大部分孔設計為M3的孔,并將某些終止孔設計為略小于M3,這樣在擰螺栓時,可通過這樣的預緊力緊固,而不需要使用螺母。
同時,在整個組裝過程中不能用力過大,防止將零件撐壞。在組裝中座時,原件是將中座分為4個部分,中間還有一個“小豬”,但是在中座與底座電機連接時,要用一個小螺栓連接擰緊,這時不要按裝配說明上的順序裝,可先擰緊螺母,再安裝中座。在擰小臂曲柄連桿結構的螺栓時,不要擰得太近,摩擦力過大的話,可能會導致電機帶不動。
2.2.4 軌跡優(yōu)化技術
從控制角度看,軌跡優(yōu)化本質上是最優(yōu)控制論的應用,即通過計算出一連串合適的系統(tǒng)狀態(tài)和控制,在實現(xiàn)任務的同時盡可能降低完成任務需要付出的代價。在機械臂的運動規(guī)劃中,優(yōu)化類算法扮演了兩個重要的角色:一是作為后處理算法,將其他運動規(guī)劃器的輸出路徑(比如采樣類算法輸出的折線軌跡)做平滑處理或者細節(jié)簡化。二是作為軌跡重規(guī)劃算法,可以將一條直觀但是存在碰撞(比如簡單的點到點直線路徑)的運動軌跡,轉變成無碰撞且任務代價盡可能低的局部最優(yōu)路徑。軌跡優(yōu)化類規(guī)劃算法最大的特點是利用了實際生產(或者設計)場景中物理環(huán)境的變化往往是連續(xù)的這一特質。
使用軌跡優(yōu)化算法的代價是其背后復雜的物理建模和數(shù)值求解技巧。實現(xiàn)這類基于優(yōu)化的算法通常需要將機械臂、環(huán)境碰撞、目標工藝等工程問題通過高保真的方式翻譯成由矩陣描述的優(yōu)化問題并通過合適的數(shù)值方法進行求解。首先,建立層級凸包碰撞模型,即描述物理世界和機械臂之間的準靜態(tài)關系;其次,優(yōu)化問題的運動學近似,描述物理世界和機械臂之間的動態(tài)關系及工藝任務;最后,逐步二次規(guī)劃求解器,調整機械臂狀態(tài)來滿足動/靜態(tài)關系和工藝任務。
3 機械臂控制系統(tǒng)的實現(xiàn)
3.1 電機的控制實現(xiàn)
使用can等通信協(xié)議方式控制機械臂步進電機,可周期性同步位置到驅動器,實現(xiàn)位置的自由控制。脈沖加方向方式也可抽象為使用通信協(xié)議在與驅動器通信,只不過是使用增量方式在通信,通過對脈沖的累計得到目標位置。
程序使用兩個定時器,一個中斷頻率為1k,用于周期采樣目標位置,并計算當前速度。當前速度值用于修改另一個定時器中斷頻率,所以在第二個定時器中判斷目標位置與當前位置的偏差,然后翻轉電平,實現(xiàn)對脈沖發(fā)送,同時判斷方向,對應控制方向控制IO電平。在其他函數(shù)中可給定任意形式的位置變化,根據(jù)采樣定理,應該位置變化頻率不大于500 Hz的都能被1k的定時器中斷正常采樣。由于發(fā)送脈沖需要以一定的頻率發(fā)送,所以第二個定時器頻率根據(jù)目標位置變化率而改變,可以讓速度平滑,也可以減小CPU帶寬占用。以此方式可實現(xiàn)對機械臂步進電機的自由控制,可使用編碼器或函數(shù)隨意控制電機。
3.2 藍牙模塊的連接與通信實現(xiàn)
為了降低單片機在非工作狀態(tài)下的功耗,需要實現(xiàn)通過手機端軟件和藍牙通信的方式,發(fā)送待機指令,實現(xiàn)單片機進入待機模式、藍牙通信模塊實現(xiàn)低功耗運行。上述功能的手機端軟件類似于機械臂的遙控器的功能,能夠遙控單片機電路進入開機或待機狀態(tài)下。
本文設計的機械臂工作在透傳模式下,能配置標準 ibeacon 功能,或者發(fā)送自定義廣播數(shù)據(jù)。默認情況下,模塊啟動后會自動進行廣播,使用 BLE 主機對其進行掃描連接,連接成功之后就可以通過BLE在模塊和 BLE主機之間進行數(shù)據(jù)透傳。機械臂可以通過特定的串口 AT 指令,對某些通信參數(shù)進行修改。
單片機的管腳與藍牙模塊的連接為:PA9-USART1_TX;PA10-USART1_RX;PA0-P0.20;PA2-BL_RST。采用PA0口做一鍵喚醒用,PA0即WKUP引腳的上升沿,可以使MCU退出待機模式。
總體實現(xiàn)思路在需要省電待機時,手機App軟件發(fā)送待機命令給MCU,MCU接收到后再發(fā)送低功耗設置的AT命令給藍牙模塊,藍牙模塊進入低功耗模式下,此時P0.20引腳由高電平變?yōu)榈碗娖?,設置PA0為下降沿外部中斷,中斷服務程序中執(zhí)行程序,使得MCU進入待機模式。本文設計中,因為正常情況下,藍牙模塊處于透傳模式,手機App軟件直接發(fā)送AT命令控制機械臂,藍牙模塊不會執(zhí)行,只能透傳到MCU接收變量的數(shù)據(jù)區(qū)內。當需要喚醒工作時,利用上述設置的低功耗模式,手機App軟件發(fā)送任意數(shù)據(jù),藍牙模塊接收到BLE數(shù)據(jù)可被喚醒,從而P0.20引腳由低電平變?yōu)楦唠娖剑藭r,PA0引腳的上升沿實現(xiàn)MCU退出待機模式,進入正常工作狀態(tài)。
3.3 顯示與按鍵的實現(xiàn)
本文機械臂的顯示屏采用LED顯示器。該LED顯示器必須清晰顯示機械臂的舵機轉動角度,以方便手機App的操控。在數(shù)據(jù)連接線上,每個P0口連接對應的限流電阻,以便實時進行動態(tài)掃描。
本文采用獨立按鍵查詢工作方式,通過 12個(6組)按鍵控制舵機的轉動。即通過P2口低四位和P1口控制六個自由度的舵機正反轉動。由于系統(tǒng)接口充足,所以采用獨立按鍵即可。當有按鍵按下時,可控制不同的舵機轉動,其中兩個按鍵控制一個舵機,分別控制舵機的正向轉動和反向轉動。轉動的度數(shù)可以通過按鍵時間的長短控制,最大的轉動角度為 180°。
3.4 PID 仿真與優(yōu)化實現(xiàn)
由于在實際工作過程中會出現(xiàn)一定誤差,對自由度機械臂的每個關節(jié)單獨引入PID控制,可減少機械臂在工作中受到外部因素的干擾。通過調整比例,可以提高系統(tǒng)的速度和響應峰值時間;通過改變積分,可以提高系統(tǒng)的穩(wěn)態(tài)精度,減小系統(tǒng)的響應誤差;通過改變微分,可以提前減小系統(tǒng)響應的超調量,提高系統(tǒng)的穩(wěn)定性。在機械臂系統(tǒng)前加入PID控制環(huán)節(jié)實現(xiàn)對機械臂系統(tǒng)的校正,實際上各個機械臂的傳遞函數(shù)均不相同,一般通過實驗輸入單位階躍得到輸出,結合數(shù)學方法求出機械臂的實際傳遞函數(shù)。PID輸出系統(tǒng)框圖如圖2所示。
4 結語
本文包含自由度機械臂的仿真和控制全過程,可應用至實際項目中并實現(xiàn)多種復雜環(huán)境下各關節(jié)的控制。該機械手臂承載能力較好,手臂的移動速度合適,慣性較小。機械臂動作較為靈活,在動臂上增加滾動軸承使得動臂輕快、平穩(wěn)地運動。此外,由于該機械臂的剛度較低、重量力矩和慣性力等較高,使得手臂的位置精度不高,需要在后續(xù)研究中進一步改進。
參考文獻
[1]莊艷.基于單片機的機械臂電子系統(tǒng)設計與實踐[J].科學技術創(chuàng)新,2020(28):50-51.
[2]王勇,陳薈西.基于機器視覺與單片機結合的機械臂抓取系統(tǒng)[J].自動化技術與應用,2021(1):78-84.
[3]陳心怡,張春雨,朱麗華.基于單片機的六自由度機械手臂控制系統(tǒng)設計[J].銅陵學院學報,2021(2):106-109.
[4]高玉健,史小龍,馮俊.基于OneNET物聯(lián)網(wǎng)的機械臂澆花系統(tǒng)[J].中國科技信息,2021(2):96-97,100.
(編輯 傅金睿)