王志秦,左皓家
(唐山學(xué)院 智能與信息工程學(xué)院,河北 唐山 063000)
隨著工業(yè)智能化的迅速發(fā)展,機(jī)器人應(yīng)用越來越廣泛,可以代替人類從事物料搬運(yùn)、電氣焊接、流水線及危險(xiǎn)環(huán)境作業(yè)等工作。傳統(tǒng)搬運(yùn)機(jī)器人多采用固定式或輪式平臺(tái)。固定式平臺(tái)的機(jī)器人不能自主移動(dòng),阻礙了機(jī)械手臂向多功能方向的發(fā)展[1];輪式平臺(tái)的機(jī)器人只能工作于平坦地形,工作空間受限。本文設(shè)計(jì)的搬運(yùn)機(jī)器人由六自由度機(jī)械臂和履帶式移動(dòng)平臺(tái)兩部分構(gòu)成。其中,六自由度機(jī)械臂比普通的機(jī)械臂更加靈活,所能夠達(dá)到的可控角度更大;履帶式移動(dòng)平臺(tái)與傳統(tǒng)的輪式移動(dòng)平臺(tái)相比更適應(yīng)復(fù)雜的操控地形,與足式移動(dòng)平臺(tái)相比也具有更快的移動(dòng)速度。以單片機(jī)作為該搬運(yùn)機(jī)器人的主要控制單元,應(yīng)用嵌入式技術(shù)、無線通信技術(shù)和PWM波脈寬調(diào)制技術(shù),對(duì)機(jī)器人進(jìn)行無線操控以及使其實(shí)現(xiàn)對(duì)物體精準(zhǔn)定位和抓取的功能。
該搬運(yùn)機(jī)器人以STM32為主控芯片,硬件平臺(tái)部分采用TBSN-K15和TBS-K20兩種數(shù)字舵機(jī),以及JGB37-520直流減速電機(jī)、AMS1117低壓降穩(wěn)壓器、RZ7886電機(jī)驅(qū)動(dòng)電路芯片、PlayStation2(PS2)無線遙控等模塊。通過PS2無線手柄連接主控芯片,使用手柄上的搖桿與按鍵分別控制搬運(yùn)機(jī)器人的移動(dòng)平臺(tái)和機(jī)械臂的運(yùn)動(dòng),實(shí)現(xiàn)搬運(yùn)機(jī)器人的運(yùn)動(dòng)與機(jī)械臂的抓取動(dòng)作。
系統(tǒng)整體組成框圖如圖1所示。
圖1 系統(tǒng)整體組成框圖
該機(jī)器人選用關(guān)節(jié)型機(jī)械臂。關(guān)節(jié)型機(jī)械臂是一種仿生機(jī)械臂,依照人類手臂可以分關(guān)節(jié)彎曲靈活工作的特點(diǎn)進(jìn)行設(shè)計(jì)?,F(xiàn)階段關(guān)節(jié)型機(jī)械臂多為六軸或四軸,也稱為六自由度和四自由度,機(jī)械臂的自由度越大,機(jī)械臂工作的靈活性越高,實(shí)踐證明,當(dāng)機(jī)械臂為六自由度時(shí)能夠?qū)崿F(xiàn)精準(zhǔn)定位和抓取。機(jī)械臂結(jié)構(gòu)包括基座、手臂、手腕和夾持器。機(jī)械臂的連接用到了多個(gè)合金支架,并使用螺絲將基座、手臂、手腕、夾持與舵機(jī)相連接,這樣通過控制器對(duì)每個(gè)舵機(jī)的控制達(dá)到搬運(yùn)物品的目的。機(jī)械臂結(jié)構(gòu)示意圖如圖2所示。
圖2 機(jī)械臂結(jié)構(gòu)示意圖
使用兩個(gè)直流電機(jī)分別對(duì)履帶式移動(dòng)平臺(tái)左側(cè)和右側(cè)主動(dòng)輪進(jìn)行控制,以實(shí)現(xiàn)移動(dòng)平臺(tái)前進(jìn)或后退、左轉(zhuǎn)或右轉(zhuǎn)、左前轉(zhuǎn)或右前轉(zhuǎn)。通過PS2手柄兩側(cè)搖桿控制移動(dòng)平臺(tái)兩側(cè)電機(jī)的速度實(shí)現(xiàn)移動(dòng)平臺(tái)差速轉(zhuǎn)彎,使移動(dòng)平臺(tái)更加穩(wěn)定、靈活。
系統(tǒng)采用基于ARM Cortex-M內(nèi)核STM32系列的32位STM32F103C8T6控制芯片,該芯片有64 kB的程序存儲(chǔ)器,工作電壓為2~3.6 V,內(nèi)部有4個(gè)定時(shí)器,包括3個(gè)通用定時(shí)器和1個(gè)高級(jí)定時(shí)器,多個(gè)定時(shí)器的存在使它能夠產(chǎn)生多路PWM波,從而實(shí)現(xiàn)對(duì)多個(gè)舵機(jī)的控制[2]。圖3為STM32最小系統(tǒng)原理圖。
圖3 STM32最小系統(tǒng)原理圖
機(jī)械臂選用TBSN-K15和TBS-K20兩種數(shù)字舵機(jī)。TBSN-K15數(shù)字舵機(jī)具有防堵轉(zhuǎn)保護(hù)和耐燒特性,該舵機(jī)安裝于機(jī)械臂前端夾持器部位,可控角度可以達(dá)到180°;TBS-K20數(shù)字舵機(jī)的可控角度可達(dá)270°,扭力可達(dá)20 kg/cm,具有優(yōu)良的線性度。這兩種型號(hào)的舵機(jī)都是由電源、地線、信號(hào)線三根線進(jìn)行控制。舵機(jī)的工作原理是:控制信號(hào)由接收機(jī)通道進(jìn)入信號(hào)調(diào)制芯片而得到直流偏置電壓,舵機(jī)內(nèi)部的基準(zhǔn)電路產(chǎn)生周期為20 ms,寬度為1.5 ms的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,產(chǎn)生的正負(fù)電壓差使舵機(jī)正反轉(zhuǎn)動(dòng)。圖4為舵機(jī)電路設(shè)計(jì)圖。
圖4 舵機(jī)電路設(shè)計(jì)圖
系統(tǒng)以RZ7886芯片作為電機(jī)驅(qū)動(dòng)模塊,該模塊為雙向馬達(dá)驅(qū)動(dòng)電路,通過兩個(gè)邏輯輸入端子來控制電機(jī)的前進(jìn)、后退和制動(dòng)。RZ7886電路具有低輸出飽和壓降和靜止電流,有良好的抗干擾性,芯片內(nèi)置鉗位二極管,可逆轉(zhuǎn)感應(yīng)負(fù)載電流釋放的影響。系統(tǒng)供電總電源為7.4 V鋰電池,穩(wěn)壓電路分為3個(gè)模塊:舵機(jī)穩(wěn)壓模塊、5 V穩(wěn)壓模塊和3.3 V穩(wěn)壓模塊。舵機(jī)穩(wěn)壓模塊通過可調(diào)穩(wěn)壓電路的電位器旋鈕將輸出電壓調(diào)節(jié)至6 V左右為舵機(jī)供電;5 V穩(wěn)壓模塊和3.3 V穩(wěn)壓模塊通過AMS1117-5.0V和AMS1117-3.3V兩塊穩(wěn)壓芯片為其他模塊供電。AMS1117穩(wěn)壓器為低電流、低壓降穩(wěn)壓器,具有內(nèi)部集成過熱保護(hù)和限流電路,精度為1%。
無線遙控模塊是搬運(yùn)機(jī)器人的“指揮者”。系統(tǒng)采用現(xiàn)階段應(yīng)用較廣泛的PS2手柄來進(jìn)行遙控,該遙控模塊采用2.4 G無線遙控技術(shù),控制距離可達(dá)20 m[3]。將接收器與單片機(jī)相連,實(shí)現(xiàn)手柄與單片機(jī)數(shù)據(jù)信息之間的傳遞。PS2手柄與接收器共包含9個(gè)引腳:除引腳3和引腳8懸空外,引腳1為DAT數(shù)據(jù)引腳,與單片機(jī)37引腳相連,負(fù)責(zé)信號(hào)數(shù)據(jù)的交流,由手柄將信號(hào)數(shù)據(jù)傳遞給主機(jī),該信號(hào)數(shù)據(jù)是一個(gè)8位的串行數(shù)據(jù),在時(shí)鐘下降沿觸發(fā)完成數(shù)據(jù)的傳送和讀?。灰_2為CMD數(shù)據(jù)引腳,負(fù)責(zé)信號(hào)數(shù)據(jù)的交流,但與DAT口的功能是完全相反的,該信號(hào)數(shù)據(jù)由主機(jī)傳遞給手柄,也是一個(gè)8位的串行數(shù)據(jù),在時(shí)鐘的下降沿同步觸發(fā)傳送數(shù)據(jù);引腳4接地;引腳5與電源相連,工作電壓為3~5 V;引腳6為ATT引腳,與單片機(jī)33引腳相連,提供手柄的觸發(fā)信號(hào);引腳7為CLK引腳,與單片機(jī)32引腳相連,用于保持?jǐn)?shù)據(jù)的同步;引腳9為ACK引腳,是手柄與主機(jī)的應(yīng)答信號(hào)。PS2手柄接口電路設(shè)計(jì)圖如圖5所示。
圖5 PS2控制手柄接口電路設(shè)計(jì)圖
系統(tǒng)主控板由主程序控制,程序在運(yùn)行前首先將各個(gè)模塊和所有用到的芯片進(jìn)行初始化設(shè)置,包括配置時(shí)鐘初始化、配置I/O口初始化、PS2無線遙控初始化以及各個(gè)定時(shí)器的初始化。在主控電路中配置了通過改變占空比來進(jìn)行脈寬調(diào)制的PWM模式定時(shí)器。主程序流程圖如圖6所示。
圖6 主程序流程圖
定時(shí)器的初始化需要配置函數(shù)void setup_dj_timer(void),用此函數(shù)配置一個(gè)向上計(jì)數(shù)的PWM波輸出,通過定時(shí)器1使能了通道1作為TIM2;同時(shí)也通過定時(shí)器2使能了通道2作為TIM3;通過OCx輸出一路PWM波。定時(shí)器配置流程圖如圖7所示。
圖7 定時(shí)器配置流程圖
GPIO電平反轉(zhuǎn)程序是用來控制舵機(jī)的正轉(zhuǎn)和反轉(zhuǎn)的,所用函數(shù)為void tb_gpio_init(void),它通過switch語句中12個(gè)不同分支的case語句中的每?jī)删鋪韺?duì)一個(gè)舵機(jī)的電平狀態(tài)進(jìn)行控制,當(dāng)舵機(jī)當(dāng)前占空比的數(shù)值傳遞給定時(shí)器中的預(yù)裝載值時(shí),通過PS2手柄上的按鍵來改變占空比,使與之對(duì)應(yīng)的舵機(jī)產(chǎn)生相應(yīng)的轉(zhuǎn)動(dòng),以這種方法來控制各個(gè)舵機(jī),進(jìn)而實(shí)現(xiàn)機(jī)械臂搬運(yùn)物體的目的。GPIO電平反轉(zhuǎn)流程圖如圖8所示。
圖8 GPIO電平反轉(zhuǎn)流程圖
無線通信模塊的運(yùn)行程序首先要對(duì)各個(gè)端口進(jìn)行初始化。主板與手柄之間的通信使用void setup_ps2(void)函數(shù),并對(duì)PS2手柄進(jìn)行初始化的設(shè)置,因?yàn)镻S2手柄分為紅燈與綠燈兩種工作模式,本次設(shè)計(jì)使用的是紅燈工作模式,所以需要對(duì)手柄的工作模式進(jìn)行判斷,當(dāng)確認(rèn)是紅燈的工作模式后,void loop_ps2_data(void)函數(shù)循環(huán)讀取手柄數(shù)據(jù),通過對(duì)比兩次按鍵值是否相同來判斷是否產(chǎn)生動(dòng)作。無線通信模塊流程圖如圖9所示。
圖9 無線通信模塊流程圖
本文進(jìn)行了基于單片機(jī)的搬運(yùn)機(jī)器人的硬件設(shè)計(jì)和軟件設(shè)計(jì)。通過對(duì)搬運(yùn)機(jī)器人機(jī)械臂和移動(dòng)平臺(tái)的安裝及調(diào)試,完成了搬運(yùn)機(jī)器人的測(cè)試。
經(jīng)實(shí)驗(yàn)測(cè)試,通過無線手柄能夠有效控制搬運(yùn)機(jī)器人機(jī)械臂和移動(dòng)平臺(tái)的運(yùn)動(dòng)。無線手柄的最遠(yuǎn)控制距離為20 m,機(jī)器人運(yùn)動(dòng)速度最高可達(dá)0.5 m/s,機(jī)械臂的夾持器部位舵機(jī)扭矩為15 kg/cm,可控角度為180°,其他關(guān)節(jié)部位舵機(jī)扭矩為20 kg/cm,可控角度為270°,機(jī)械臂的直線方向可抓取范圍為520 mm,舉重能力為0.27 kg。系統(tǒng)實(shí)現(xiàn)了對(duì)物體的準(zhǔn)確定位和抓取,而且工作穩(wěn)定、可控角度大、移動(dòng)速度快、靈活性高,具有一定的實(shí)用價(jià)值。