基于PIC單片機(jī)的機(jī)器人靈巧手的控制系統(tǒng)設(shè)計
當(dāng)代機(jī)器人研究的領(lǐng)域已經(jīng)從結(jié)構(gòu)環(huán)境下的定點作業(yè)中走出來,向非結(jié)構(gòu)環(huán)境下的自主作業(yè)方面發(fā)展。而機(jī)器人靈巧手相當(dāng)于安裝在機(jī)器人臂上的可獨立實現(xiàn)精細(xì)操作運動的一組機(jī)器人,是真正擬人化并能實現(xiàn)靈活操作的機(jī)器人手。他對于提高空間機(jī)器人的工作能力具有重要意義,并且將來還可以嘗試將機(jī)器人靈巧手用于戰(zhàn)場探雷和排雷、核工業(yè)設(shè)備的檢測和修理等危險作業(yè)[1]。在機(jī)器人靈巧手控制方面的研究在國內(nèi)只有少數(shù)的科研機(jī)構(gòu) 進(jìn)行,而且成本較高。在本文尋求采用一種較為合適的單片機(jī)來作為實現(xiàn)控制的核心,基于PIC單片機(jī)的強(qiáng)大功能所以采用PIC系列單片機(jī)。
本文引用地址:http://www.ex-cimer.com/article/172116.htm1PIC單片機(jī)特點
PIC 系列單片機(jī)是美國Microchip公司出品的8 b微處理器,但是他的速度與功能卻比現(xiàn)在 一些普通8 b的51單片機(jī)強(qiáng)很多,因為他采用了RISC結(jié)構(gòu),有別于過去的一般CISC結(jié)構(gòu),R ISC結(jié)構(gòu)采用Harward雙總線結(jié)構(gòu),將地址總線與數(shù)據(jù)總線分開,因此數(shù)據(jù)與地址可以同時傳輸,提高了運算速度[2]。 PIC單片機(jī)的體積小,功耗低,而且內(nèi)部集成了多種外圍電路,使設(shè)計更加方便,無需在單片機(jī)的設(shè)計中再添加一些外圍電路,在控制系統(tǒng)中這一點很重要。本文中采用的PIC16C77單片機(jī),他有8 k的程序存貯器;368 B RAM;2個PWM口;內(nèi)部集成了一個5通道的8 b A/D,具有掉電復(fù)位功能,這些特點使得硬件的設(shè)計非常方便。在機(jī)器人靈巧手的控制中對于微小電機(jī)的驅(qū)動需要PWM信號來驅(qū)動,在傳統(tǒng)的設(shè)計中是利用晶體管組成的電路來實現(xiàn)的,普通的51系列單片機(jī)中必須利用定時器來產(chǎn)生,而在PIC單片機(jī)中內(nèi)部包含了2個PWM信號輸出端為設(shè)計提供了方便。
2控制系統(tǒng)的整體硬件設(shè)計
靈巧手在抓取和操作前,要進(jìn)行被抓物接觸點位置確定、抓取構(gòu)形分析判斷、三指手正逆解求解、軌跡規(guī)劃等復(fù)雜運算。這需要很長時間。在抓取和操作過程中,要進(jìn)行電機(jī)轉(zhuǎn)速控制、關(guān)節(jié)位置檢測控制、指端力覺檢測等,其中有的控制必須同時進(jìn)行,因此,本文所設(shè)計的靈巧手采用圖1所示的按層次劃分的分級式控制系統(tǒng)。上位機(jī)為PC機(jī)主要從事主控制作用,進(jìn)行抓取軌跡規(guī)劃,還有對下位機(jī)發(fā)出操作指令。下位機(jī)為3個控制單元與上位機(jī)進(jìn)行多機(jī)通訊,接收指令并對反饋信號進(jìn)行PID調(diào)節(jié),控制電機(jī)轉(zhuǎn)動。每個單片機(jī)控制一個手指的運動。采用該控制體系的優(yōu)點是控制方案整體思路比較清晰,控制靈活,達(dá)到了設(shè)計的要求。
2.1下位機(jī)軟件設(shè)計
對于單片機(jī)在這個系統(tǒng)中的主要作用是接收上位機(jī)的指令,控制電機(jī)的運轉(zhuǎn)和手指關(guān)節(jié)的運動以及對反饋的信號進(jìn)行PID調(diào)節(jié)將結(jié)果送往上位機(jī),并將采集來的信號送往上位機(jī)準(zhǔn)備下一次指令的接收。主要流程如圖2所示。
2.2串口通信模塊
對于串口通信主要是采用異步串行傳輸模式,數(shù)據(jù)的傳輸格式是RS232協(xié)議。對于PIC單片機(jī)來說對于串口的操作主要是對下面幾個寄存器的操作:TXSTA發(fā)送狀態(tài)與控制、RCSTA接收狀態(tài)與控制寄存器、TXREGUSART發(fā)送寄存器、RCREGUSART接收寄存器和 SPBRG波特率產(chǎn)生寄存器。
2.3電機(jī)驅(qū)動模塊
靈巧手的運動主要通過關(guān)節(jié)處的電機(jī)的運動來控制。三指靈巧手的每個手指有3個自由度 也就說一個手指的運動需要3個電機(jī)來驅(qū)動。驅(qū)動方式采用繩索與滑輪的方式傳動,電機(jī)選用了瑞士Maxon公司生產(chǎn)的REmax21直流伺服電機(jī)以及與其配套的減速器和編碼盤。
電機(jī)的驅(qū)動需要PWM信號來驅(qū)動,利用PIC單片機(jī)本身帶有的PWM信號口,配以功率放大器便 可進(jìn)行電機(jī)的驅(qū)動。PWM信號主要是對其內(nèi)部Time2和2個寄存器的設(shè)定:一個是存貯PWM周期的PR2寄存器,一個是存貯工作周期的寄存器CCPRXL[3]。PWM信號輸出示意圖如圖3所示。
當(dāng)Time2剛開始工作時,PWM輸出端為高電平,此后Time2會和PR2,CCPRXL兩個寄存器比較,當(dāng)Time2等于CCPRXL中的設(shè)定值時引腳輸出變?yōu)榈碗娖?,?dāng)Time2計數(shù)到與PR2中的數(shù)相等時,此時引腳輸出變?yōu)楦唠娖剑琓ime2便會歸零重新計數(shù),這就是PWM信號的輸出過程。在PW M信號的輸出端連接功放電路,采用L298芯片實現(xiàn)單極性可逆驅(qū)動,單片機(jī)生成的PWM脈寬調(diào)制信號直接由L298雙H橋PWM驅(qū)動器驅(qū)動,L298是一種高電壓大電流功率放大芯片。驅(qū)動電壓可達(dá)46 V,直流電流總和可達(dá)4 A,直接采用TTL邏輯電平控制。
2.4A/D模塊
對于信號的采集部分,由于PIC單片機(jī)內(nèi)部集成了一個5通道的8 b A/D,因此無需外接A/D ,直接應(yīng)用即可。內(nèi)部A/D的使用主要是對ADCON0,ADCON1, ADRES三個寄存器的設(shè)定。
3控制算法
在工業(yè)控制中PID算法是一種很常用的算法,一般的8 b單片機(jī)運行該算法時速度會受到穎響,對于系統(tǒng)的控制有著一定的時延特性,但是基于PIC單片機(jī)的結(jié)構(gòu)和高速特性,這一點可以克服[4]。對于PID在本系統(tǒng)中對于該算法的軟件流程圖如圖4所示。
4結(jié)語
采用PIC單片機(jī)設(shè)計的三指靈巧手較好地完成了抓取實驗,所有的硬件設(shè)計比普通的8 b 單片機(jī)更為簡潔,系統(tǒng)更為穩(wěn)定,操作簡單。相比較利用專用的集成驅(qū)動電路和高性能的數(shù) 字信號處理器組成的系統(tǒng),采用該方案成本更小,整體的性能也相當(dāng)好。
參考文獻(xiàn)
[1] Okada T.An artificial finger equipped with adaptability to an object Bullelectrotechlab, 1974,37 (2):1078-1090.
[2]武鋒.PIC系列單片機(jī)的開發(fā)應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版 社,2000.
[3]何信龍,李雪銀.PIC16C7X入門與應(yīng)用范例[M].北京:清華大學(xué)出 版社,2001.
[4]王曉明.電動機(jī)的單片機(jī)控制[M].北京:北京航空航天大學(xué)出版社,2002.
評論