王志秦,左皓家
(唐山學院 智能與信息工程學院,河北 唐山 063000)
隨著工業智能化的迅速發展,機器人應用越來越廣泛,可以代替人類從事物料搬運、電氣焊接、流水線及危險環境作業等工作。傳統搬運機器人多采用固定式或輪式平臺。固定式平臺的機器人不能自主移動,阻礙了機械手臂向多功能方向的發展[1];輪式平臺的機器人只能工作于平坦地形,工作空間受限。本文設計的搬運機器人由六自由度機械臂和履帶式移動平臺兩部分構成。其中,六自由度機械臂比普通的機械臂更加靈活,所能夠達到的可控角度更大;履帶式移動平臺與傳統的輪式移動平臺相比更適應復雜的操控地形,與足式移動平臺相比也具有更快的移動速度。以單片機作為該搬運機器人的主要控制單元,應用嵌入式技術、無線通信技術和PWM波脈寬調制技術,對機器人進行無線操控以及使其實現對物體精準定位和抓取的功能。
該搬運機器人以STM32為主控芯片,硬件平臺部分采用TBSN-K15和TBS-K20兩種數字舵機,以及JGB37-520直流減速電機、AMS1117低壓降穩壓器、RZ7886電機驅動電路芯片、PlayStation2(PS2)無線遙控等模塊。通過PS2無線手柄連接主控芯片,使用手柄上的搖桿與按鍵分別控制搬運機器人的移動平臺和機械臂的運動,實現搬運機器人的運動與機械臂的抓取動作。
系統整體組成框圖如圖1所示。

圖1 系統整體組成框圖
該機器人選用關節型機械臂。關節型機械臂是一種仿生機械臂,依照人類手臂可以分關節彎曲靈活工作的特點進行設計。現階段關節型機械臂多為六軸或四軸,也稱為六自由度和四自由度,機械臂的自由度越大,機械臂工作的靈活性越高,實踐證明,當機械臂為六自由度時能夠實現精準定位和抓取。機械臂結構包括基座、手臂、手腕和夾持器。機械臂的連接用到了多個合金支架,并使用螺絲將基座、手臂、手腕、夾持與舵機相連接,這樣通過控制器對每個舵機的控制達到搬運物品的目的。機械臂結構示意圖如圖2所示。

圖2 機械臂結構示意圖
使用兩個直流電機分別對履帶式移動平臺左側和右側主動輪進行控制,以實現移動平臺前進或后退、左轉或右轉、左前轉或右前轉。通過PS2手柄兩側搖桿控制移動平臺兩側電機的速度實現移動平臺差速轉彎,使移動平臺更加穩定、靈活。
系統采用基于ARM Cortex-M內核STM32系列的32位STM32F103C8T6控制芯片,該芯片有64 kB的程序存儲器,工作電壓為2~3.6 V,內部有4個定時器,包括3個通用定時器和1個高級定時器,多個定時器的存在使它能夠產生多路PWM波,從而實現對多個舵機的控制[2]。圖3為STM32最小系統原理圖。

圖3 STM32最小系統原理圖
機械臂選用TBSN-K15和TBS-K20兩種數字舵機。TBSN-K15數字舵機具有防堵轉保護和耐燒特性,該舵機安裝于機械臂前端夾持器部位,可控角度可以達到180°;TBS-K20數字舵機的可控角度可達270°,扭力可達20 kg/cm,具有優良的線性度。這兩種型號的舵機都是由電源、地線、信號線三根線進行控制。舵機的工作原理是:控制信號由接收機通道進入信號調制芯片而得到直流偏置電壓,舵機內部的基準電路產生周期為20 ms,寬度為1.5 ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,產生的正負電壓差使舵機正反轉動。圖4為舵機電路設計圖。

圖4 舵機電路設計圖
系統以RZ7886芯片作為電機驅動模塊,該模塊為雙向馬達驅動電路,通過兩個邏輯輸入端子來控制電機的前進、后退和制動。RZ7886電路具有低輸出飽和壓降和靜止電流,有良好的抗干擾性,芯片內置鉗位二極管,可逆轉感應負載電流釋放的影響。系統供電總電源為7.4 V鋰電池,穩壓電路分為3個模塊:舵機穩壓模塊、5 V穩壓模塊和3.3 V穩壓模塊。舵機穩壓模塊通過可調穩壓電路的電位器旋鈕將輸出電壓調節至6 V左右為舵機供電;5 V穩壓模塊和3.3 V穩壓模塊通過AMS1117-5.0V和AMS1117-3.3V兩塊穩壓芯片為其他模塊供電。AMS1117穩壓器為低電流、低壓降穩壓器,具有內部集成過熱保護和限流電路,精度為1%。
無線遙控模塊是搬運機器人的“指揮者”。系統采用現階段應用較廣泛的PS2手柄來進行遙控,該遙控模塊采用2.4 G無線遙控技術,控制距離可達20 m[3]。將接收器與單片機相連,實現手柄與單片機數據信息之間的傳遞。PS2手柄與接收器共包含9個引腳:除引腳3和引腳8懸空外,引腳1為DAT數據引腳,與單片機37引腳相連,負責信號數據的交流,由手柄將信號數據傳遞給主機,該信號數據是一個8位的串行數據,在時鐘下降沿觸發完成數據的傳送和讀取;引腳2為CMD數據引腳,負責信號數據的交流,但與DAT口的功能是完全相反的,該信號數據由主機傳遞給手柄,也是一個8位的串行數據,在時鐘的下降沿同步觸發傳送數據;引腳4接地;引腳5與電源相連,工作電壓為3~5 V;引腳6為ATT引腳,與單片機33引腳相連,提供手柄的觸發信號;引腳7為CLK引腳,與單片機32引腳相連,用于保持數據的同步;引腳9為ACK引腳,是手柄與主機的應答信號。PS2手柄接口電路設計圖如圖5所示。

圖5 PS2控制手柄接口電路設計圖
系統主控板由主程序控制,程序在運行前首先將各個模塊和所有用到的芯片進行初始化設置,包括配置時鐘初始化、配置I/O口初始化、PS2無線遙控初始化以及各個定時器的初始化。在主控電路中配置了通過改變占空比來進行脈寬調制的PWM模式定時器。主程序流程圖如圖6所示。

圖6 主程序流程圖
定時器的初始化需要配置函數void setup_dj_timer(void),用此函數配置一個向上計數的PWM波輸出,通過定時器1使能了通道1作為TIM2;同時也通過定時器2使能了通道2作為TIM3;通過OCx輸出一路PWM波。定時器配置流程圖如圖7所示。

圖7 定時器配置流程圖
GPIO電平反轉程序是用來控制舵機的正轉和反轉的,所用函數為void tb_gpio_init(void),它通過switch語句中12個不同分支的case語句中的每兩句來對一個舵機的電平狀態進行控制,當舵機當前占空比的數值傳遞給定時器中的預裝載值時,通過PS2手柄上的按鍵來改變占空比,使與之對應的舵機產生相應的轉動,以這種方法來控制各個舵機,進而實現機械臂搬運物體的目的。GPIO電平反轉流程圖如圖8所示。

圖8 GPIO電平反轉流程圖
無線通信模塊的運行程序首先要對各個端口進行初始化。主板與手柄之間的通信使用void setup_ps2(void)函數,并對PS2手柄進行初始化的設置,因為PS2手柄分為紅燈與綠燈兩種工作模式,本次設計使用的是紅燈工作模式,所以需要對手柄的工作模式進行判斷,當確認是紅燈的工作模式后,void loop_ps2_data(void)函數循環讀取手柄數據,通過對比兩次按鍵值是否相同來判斷是否產生動作。無線通信模塊流程圖如圖9所示。

圖9 無線通信模塊流程圖
本文進行了基于單片機的搬運機器人的硬件設計和軟件設計。通過對搬運機器人機械臂和移動平臺的安裝及調試,完成了搬運機器人的測試。
經實驗測試,通過無線手柄能夠有效控制搬運機器人機械臂和移動平臺的運動。無線手柄的最遠控制距離為20 m,機器人運動速度最高可達0.5 m/s,機械臂的夾持器部位舵機扭矩為15 kg/cm,可控角度為180°,其他關節部位舵機扭矩為20 kg/cm,可控角度為270°,機械臂的直線方向可抓取范圍為520 mm,舉重能力為0.27 kg。系統實現了對物體的準確定位和抓取,而且工作穩定、可控角度大、移動速度快、靈活性高,具有一定的實用價值。