肖振興
(柳州鐵道職業技術學院電子技術學院,廣西 柳州 545616)
機械手臂在工業生產、災難救援、手術醫療等方面有著重要的應用。當前,國內在先進機械手臂研發和生產上缺乏創新和基礎性研究。國際上有ABB、KUKA 兩大領頭羊,其在機械手臂設計制造和控制方面均有極大造詣。在全球一體化越來越深入的今天,我國如不加強對應專業人才培養,必將在全球一體化浪潮處于下風,甚至會出現關鍵技術“卡脖子”的狀況。
引進機械手臂進入課堂,對提高學生專業學習水平和積累實踐操作經驗有著重要的幫助。但目前,各機械手臂生產商的機械手臂價格高昂,便宜的十幾萬一套,高檔次的要上百萬,給實驗室建設和設備操作的普及帶來昂貴的經濟成本,也制約了機器人專業人才的培養。因此,開發經濟、實用、符合機械手臂發展方向的示教型機械手臂,對于機器人專業人才培養具有極大的助力。
本文設計了一款由舵機構成的六自由度的機械臂。它由機械臂和機械手臂控制器構成。如果一個機器人要在一個空間內自由活動或抓取物體,那么機器人必須可以在空間內的X、Y、Z軸平移運動和繞X、Y、Z軸轉動[1]。復雜的工業生產機械手臂都要具備六個自由度。為了更好地與實踐貼合,本文開發的機械手臂也為六個自由度。
機器人空間內運動坐標如圖1 所示。

圖1 機器人空間內運動坐標圖Fig.1 Coordinate diagram of robot movement in space
機械臂的關節由若干舵機構成。底座由金屬云臺構成,可以360°旋轉;關節之間通過連接桿鏈接,末端執行器可以360°旋轉和夾取。機械手臂分別能夠完成機械臂的旋轉、前后、左右、末端執行器的開閉、張合動作。機械手臂結構如圖2 所示。

圖2 機械手臂結構示意圖Fig.2 Schematic diagram of mechanical arm structure
機械臂關鍵器件舵機采用MG996R 型舵機。該型舵機控制方法簡單,具有控制精度高、成本低、體積小等特點,并可以根據數量的不同加以靈活應用。產品扭矩為9 kg·cm(4.8 V)、11kg·cm(6 V);產品速度為0.19 s/60°(4.8 V)、0.18 s/60°(6 V);轉動角度為180°;工作電壓為4.8~6 V;齒輪形式為金屬齒輪;死區設定為5 μs;產品重量為55 g;產品尺寸為40.7 mm×19.7 mm×42.9 mm。
從產品的參數可知,扭矩完全可以滿足日常教學示教的需求。
從圖2 可以看出:關節1、關節3 和關節6 可以控制機械手臂在空間內旋轉和左右方向運動;關節2、關節4 和關節5 控制機械臂在坐標軸的前后方向運動;關節7 控制末端執行器的夾取動作。加上末端執行器,可以更好地進行示教教學。它的空間位置與各連桿之間的空間位置的關系,是機械臂空間位置分析的基礎[2]。
控制電路板接收來自信號線的控制信號,控制電機轉動。電機帶動一系列齒輪組,減速后傳動至輸出舵盤。舵機的輸出軸和位置反饋電位計是相連的,在舵盤轉動的同時帶動位置反饋電位計。電位計輸出一個電壓信號到控制電路板,進行反饋。然后,控制電路板根據所在位置決定電機轉動的方向和速度,從而達到目標并停止。其工作流程為:控制信號→控制電路板→電機轉動→齒輪組減速→舵盤轉動→位置反饋電位計→控制電路板反饋。轉角與輸入脈沖的關系如圖3 所示。

圖3 轉角與輸入脈沖的關系圖Fig.3 Relationship between the angle and the input pulse
舵機的控制信號為脈寬調制(pulsewidth modulation,PWM)信號,周期為20 ms。其中,脈沖寬度為0.5~2.5 ms;相對應的舵盤位置為0~180°,呈線性變化。給舵機提供一定的脈寬,它的輸出軸就會保持一定的對應角度,無論外界轉矩怎么改變。直到給舵機提供1 個另外寬度的脈沖信號時,它才會改變輸出角度。舵機內部有1 個可以產生周期為20 ms、寬度為1.5 ms 的基準信號的基準電路。1.5 ms 的基準信號剛好是90°位置的脈沖寬度值,內部的比較器將對比外加信號與基準信號,判斷出方向和大小,從而產生電機的轉動信號。
機械臂控制器結構如圖4 所示。

圖4 機械臂控制器結構圖Fig.4 Structure of manipulator controller
舵機驅動電路采用的是PCA9685[3]芯片。該芯片有16 個PWM 輸出通道,分辨率為12 bit,與控制器的通信采用內部集成電路(inter-integrated circuit,IIC)方式通信,只需要2 根線即可。芯片介紹如下:①IIC 接口,支持高達16 路PWM 輸出,每路12 位分辨率(4096級);②內置25 MHz 晶振,可不連接外部晶振,也可以連接外部晶振,最大50 MHz;③支持2.3~5.5 V 電壓,最大耐壓值5.5 V,邏輯電平3.3 V;④具有上電復位以及軟件復位等功能。
根據其分辨率,舵機控制的脈沖周期理論精度為4.88 μs,對應的角度控制理論精度為0.044°。
PCA9685 有16 路PWM 信號輸出。微控制器對外部控制信號進行處理,并經過IIC 總線送至PCA9685 內部,控制PCA9685 實現對應通道的PWM輸出,進而控制舵機機械相應地轉動。
外部控制設備由矩陣鍵盤和搖桿開關組成。矩陣鍵盤可以選定對應的舵機,再通過搖桿開關控制選定的舵機進行轉動。通過連續的選定,就可以讓機械臂完成不同的操作動作。
限于篇幅限制,本文只介紹軟件設計思路,并給出軟件設計流程圖。機械臂控制主要有單個舵機控制和動作組控制。以下對這2 種控制方法的軟件設計思路進行介紹。當然,也有的機械臂采用數字信號處理(digital signal processing,DSP)[4]、現場可邏輯門陣列(field programmable gate array,FPGA)[5]作為控制器,或者使用開源硬件Arduino 作為控制器[6]。這些方法都可以達到設計要求。
單個舵機控制是指對機械臂上的舵機進行單獨控制。圖2 中有7 個舵機組成了機械臂的關節。每個舵機經過一定角度的轉動,可以使末端執行器到達設定的位置。因此,在矩陣鍵盤選擇對應的舵機后,通過搖桿開關控制其轉動。連續選定不同舵機后,就可以讓機械臂完成不同的操作、到達不同的位置。
按鍵掃描程序查詢外部按鍵、控制信號的輸入。當有按鍵信號輸入時,則選定對應舵機。繼而查詢搖桿開關的信號輸入,以搖桿開關的輸入信號作為舵機PWM 設定值,并經過IIC 總線將通道地址和PWM 脈寬設定值送PCA9685 內部,從而完成對舵機的控制。
PCA9685 芯片與微處理器的通信是以IIC 的方式進行的。所以在對PCA9685 進行數據讀寫時,需要進行IIC 總線初始化、IIC 總線啟動、IIC 總線停止信號、IIC 總線應答信號、IIC 讀寫,以及對PCA9685 芯片讀寫數據及復位進行初始化和編程。
單個舵機控制程序設計流程如圖5 所示。

圖5 單個舵機控制程序設計流程圖Fig.5 Design flowchart of single steering gear control program
動作組控制程序設計流程如圖6 所示。

圖6 動作組控制程序設計流程圖Fig.6 Design flowchart of action group control program
動作組控制是由多個舵機轉動完成一定的操作,按鍵選定對應舵機,并使之轉動一定的角度。此時,微處理器記住舵機轉動的角度并保留數據,連續多次設定多個舵機的轉動角度,并依次保留舵機轉動角度數據。這樣,機械臂就有了一套固定的動作。這套固定的動作是由舵機轉動完成的。而舵機轉動的數據微處理器已經保留并記錄,一鍵調用即可。按照此方法,微處理器可以保留多套動作,通過按鍵調用演示,能夠達到很好的示教效果。機械臂完成一套動作有許多的控制算法,如自適應比例積分微分(proportional integral differential,PID)控制[7],可提高運動精度。
舵機構成的六自由度示教型機械手臂主要由機械臂和控制器構成,能夠模仿工業生產機械臂的各種操作動作。示教型機械手臂的引入能夠提升課堂學習體驗、增強學生學習興趣,使學生了解機械臂機械結構、機械臂的運動學、機械臂的控制算法。示教型機械手臂制作成本低,為解決由經濟成本帶來的實驗設備缺乏問題提供了設備技術解決方案。機械臂具備六個自由度,能夠模仿工業機器人機械手臂的運動特征。在機械臂的驅動控制上,采用PCA9685 芯片作為PWM驅動信號的來源。該芯片能夠輸出16 路PWM 信號,且脈寬可調。本文設計對于后續的機械臂擴展和升級也留有余地,是很好的示教型機械手臂。最終制作的樣機能夠在按鍵及手柄控制下做出不同的動作,并且在空間上可以實現六個自由度運動。學生通過控制手柄的操作,可以直觀地觀察機械手臂的空間運動狀態。