摘 要: 針對(duì)機(jī)器人比賽和電子設(shè)計(jì)競(jìng)賽中機(jī)器人尋線行走的普遍要求,提出了一種通用的尋線行走機(jī)器人的設(shè)計(jì)方法。機(jī)器人的核心控制器" title="核心控制器">核心控制器包括實(shí)現(xiàn)控制算法的DSP和用于擴(kuò)展功能實(shí)現(xiàn)的CPLD;對(duì)來自光電檢測(cè)" title="光電檢測(cè)">光電檢測(cè)傳感器的信號(hào)采用模糊控制" title="模糊控制">模糊控制規(guī)則進(jìn)行綜合,核心控制器根據(jù)模糊控制器輸出調(diào)整機(jī)器人的行走路線,最終實(shí)現(xiàn)機(jī)器人尋線行走。
關(guān)鍵詞: 機(jī)器人 DSP 模糊控制 光電檢測(cè) 尋線
在最近的機(jī)器人比賽和電子設(shè)計(jì)競(jìng)賽中,較多參賽題目要求機(jī)器人沿場(chǎng)地內(nèi)白色或黑色指引線行進(jìn)。一些研究人員提出了基于尋線的機(jī)器人設(shè)計(jì)策略,主要是關(guān)注指引線的檢測(cè),但對(duì)于機(jī)器人的整體設(shè)計(jì)未做說明。本文在總結(jié)此類賽事的基礎(chǔ)上,提出了一種將DSP(Digital Signal Processor)和CPLD(Complex Programmable Logic Device)作為核心處理器,采用模糊控制策略處理來自檢測(cè)指引線傳感器信號(hào)的機(jī)器人行走機(jī)構(gòu)的通用性設(shè)計(jì)方法。
1 車體機(jī)械設(shè)計(jì)
由于機(jī)器人比賽對(duì)參賽機(jī)器人有嚴(yán)格的尺寸限制,需要在有限的空間內(nèi)合理安排各個(gè)機(jī)構(gòu)。本文給出車體最小尺寸時(shí)驅(qū)動(dòng)輪、光電傳感器以及控制芯片之間的相對(duì)位置,如圖1所示。
機(jī)器人采用雙直流步進(jìn)電機(jī)" title="步進(jìn)電機(jī)">步進(jìn)電機(jī)驅(qū)動(dòng)方式,其額定電壓為24V。車體的前后端分別安裝光電傳感器檢測(cè)板實(shí)現(xiàn)指引線的檢測(cè)。相鄰光電傳感器距離略小于指引線寬度,保證同時(shí)有兩個(gè)傳感器可以檢測(cè)到指引線。
2 硬件電路設(shè)計(jì)
這部分主要介紹核心控制器DSP與功能擴(kuò)展芯片CPLD的連接,簡(jiǎn)要介紹其它功能模塊的硬件實(shí)現(xiàn)。系統(tǒng)整體結(jié)構(gòu)如圖2所示。
2.1 核心控制器設(shè)計(jì)
目前,機(jī)器人核心控制器多選用單片機(jī)。筆者考慮到單片機(jī)指令周期長(zhǎng)、可用資源少,難以滿足機(jī)器人實(shí)時(shí)控制的要求,在綜合性價(jià)比、開發(fā)周期等因素后,核心控制器選用TI公司的電機(jī)數(shù)字控制專用DSP——TMS320F240(以下簡(jiǎn)稱′F240)。它具有運(yùn)動(dòng)控制非常有效的事件管理器,其中包括12路比較/PWM通道,可以非常方便地控制直流電機(jī)轉(zhuǎn)速;利用其片內(nèi)的3個(gè)可以工作于6種模式的16位通用定時(shí)器,可以完成機(jī)器人絕大部分動(dòng)作的控制;16個(gè)10位A/D轉(zhuǎn)換器可以方便地讀取模擬信號(hào)。由于機(jī)器人指引線檢測(cè)模塊返回信號(hào)可看作反饋信號(hào),因此機(jī)器人驅(qū)動(dòng)電機(jī)選用步進(jìn)電機(jī)。通過設(shè)置′F240定時(shí)器,利用I/O" title="I/O">I/O端口輸出設(shè)定脈沖信號(hào),該信號(hào)經(jīng)步進(jìn)電機(jī)驅(qū)動(dòng)電路使步進(jìn)電機(jī)行進(jìn)設(shè)定距離。具體實(shí)現(xiàn)在軟件設(shè)計(jì)部分介紹?!銯240的其他片內(nèi)I/O、PWM端口、A/D都引出輸入輸出線,方便擴(kuò)展功能的實(shí)現(xiàn)。
從′F240的特點(diǎn)可以看出,′F240可用于實(shí)現(xiàn)復(fù)雜控制算法和進(jìn)行復(fù)雜的機(jī)器人動(dòng)作控制。然而根據(jù)車體設(shè)計(jì)方案,需要在車體上安裝20個(gè)光電檢測(cè)傳感器,占用控制器的20個(gè)I/O端口。這樣,′F240可用于擴(kuò)展功能的I/O端口大大減少。機(jī)器人在比賽中會(huì)有比較劇烈的撞擊,如設(shè)計(jì)各種功能數(shù)字電路會(huì)嚴(yán)重降低控制板的可靠性。此處選用Altera公司的EPM7128作為核心處理器的擴(kuò)展、模糊控制的輸入。為滿足DSP與CPLD之間的協(xié)同處理,′F240與EPM7128可采用如圖2所示的電路連接?!銯240的16根數(shù)據(jù)線和A12~A15共4根地址線連到EPM7128,通過選擇信號(hào)、寫信號(hào)和讀信號(hào)完成對(duì)EPM7128的讀寫操作。EPM7128的I/O端口主要在MAX+PlusⅡ編程環(huán)境下通過軟件和硬件管腳設(shè)置實(shí)現(xiàn)。這種DSP+CPLD的結(jié)構(gòu)可以在充分?jǐn)U展系統(tǒng)功能的同時(shí),使DSP更能發(fā)揮其運(yùn)算功能強(qiáng)大的特點(diǎn)[4]。
穩(wěn)壓電路主要由LM7805芯片組成;信號(hào)輸入電路由微動(dòng)開關(guān)經(jīng)反相器71HC14后再送往DSP,微動(dòng)開關(guān)輸入電路有去耦電路,輸出信號(hào)加上拉電阻;顯示模塊采用MAX7219芯片驅(qū)動(dòng),八位LED數(shù)碼管,每個(gè)LED對(duì)應(yīng)三個(gè)I/O端口。
2.2 光電檢測(cè)模塊
光電檢測(cè)模塊的功能是將指引線準(zhǔn)確地檢測(cè)出來。此處主要借助反射式光藕TCRT5000。這是一種自帶發(fā)光二極管和光敏三極管的器件,其集電極電流Ic與反射距離d之間有圖3所示關(guān)系。
TCRT5000的應(yīng)用電路見如4所示。當(dāng)檢測(cè)到綠色地面時(shí),由于反射率不高,Ic1太小,三極管T2截止而輸出高電平。當(dāng)檢測(cè)到白色地面時(shí),由于反射率較高,Ic1較大,三極管T2飽和而輸出低電平,從而實(shí)現(xiàn)了白線的檢測(cè)。555構(gòu)成了施密特觸發(fā)器,用于去除反射性光耦產(chǎn)生的噪聲和波形的整形。
2.3 動(dòng)作電機(jī)控制電路
在機(jī)器人尋線行走過程中,需要完成規(guī)定的動(dòng)作。這些動(dòng)作的完成不需要控制相應(yīng)動(dòng)作電機(jī)的轉(zhuǎn)速,本文直接利用I/O輸出控制信號(hào)驅(qū)動(dòng)固態(tài)繼電器進(jìn)而使直流電機(jī)動(dòng)作。固態(tài)繼電器選用松下電器公司雙刀雙擲(DPDT)型,型號(hào)為DS2Y-S-DC5V。盡管此繼電器控制電壓為5V,可與TTL的邏輯電平相兼容,但一般TTL芯片的輸出電流還達(dá)不到其輸入電流40mA。集電極開路的門電路(Open Collector Gate,簡(jiǎn)稱OC門)可增大輸出電流,并且繼電器兩控制端的輸入電阻剛好可以作為OC門電路輸出需要的上拉電阻。具體選用具有OC門結(jié)構(gòu)的芯片ULN2003,它是由7個(gè)NPN達(dá)林頓管組成的高電壓、高電流達(dá)林頓驅(qū)動(dòng)器。因?yàn)槊總€(gè)DS2Y-S-DC5V提供兩組常開端口,因此如果在兩組端口的N.O.端口上分別連上電機(jī)電源的正極和地,則可以用兩個(gè)繼電器實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)。由于繼電器在切換電壓時(shí),繼電器線圈會(huì)產(chǎn)生大的反電動(dòng)勢(shì),需要在繼電器切換電壓的兩端加續(xù)流二極管,以消除切換時(shí)的電火花,避免出現(xiàn)大的浪涌電流,減少繼電器產(chǎn)生的電磁干擾。
3 模糊控制策略
機(jī)器人的設(shè)計(jì)思想是利用光電檢測(cè)傳感器檢測(cè)車體偏離指引線的大小來調(diào)整左右驅(qū)動(dòng)步進(jìn)電機(jī)的行進(jìn)速度,使機(jī)器人沿指引線行進(jìn)。這恰好符合模糊控制的思想[5]。
把前后光電檢測(cè)板上的光電檢測(cè)傳感器編號(hào),將檢測(cè)到指引線的編號(hào)最大的光電檢測(cè)傳感器的編號(hào)作為車體偏離的距離,編號(hào)方法如表1。這樣,模糊控制器有兩個(gè)輸入:前后光電檢測(cè)板的輸入編號(hào);模糊控制器有兩個(gè)輸出:左右步進(jìn)電機(jī)驅(qū)動(dòng)脈沖數(shù)。
模糊控制器的輸入量的語(yǔ)言值模糊子集選取為:{LB,LS,ZO,RS,RB}。其中:LB=左大;LS=左??;ZO=中心;RS=右小;RB=右大。輸出量的語(yǔ)言值模糊子集選取為:{NB,NM,NS,ZO,PS,PM,PB}。其中:NB=負(fù)大;NM=負(fù)中;NS=負(fù)??;ZO=零;PS=正小;PM=正中;PB=正大。
根據(jù)隸屬函數(shù)的定義和選取規(guī)則,輸入變量前部位置iF 和后部位置iB的隸屬度選擇相同,如圖5所示。輸出變量左輪轉(zhuǎn)速OUL和右輪轉(zhuǎn)速OUR的隸屬度選擇相同,如圖6所示。
根據(jù)多次的實(shí)驗(yàn)和修正,得到如表2的左輪轉(zhuǎn)速控制規(guī)則表(右輪的轉(zhuǎn)速控制規(guī)則表內(nèi)容與左輪的轉(zhuǎn)速控制規(guī)則表對(duì)應(yīng),例如iF為RB、iB為L(zhǎng)B時(shí)對(duì)應(yīng)的OUL為NB,類似可得到右輪轉(zhuǎn)速控制規(guī)則表)。模糊推理采用Mamdani法。反模糊化采用重心法,最終得到如表3所示的左輪轉(zhuǎn)速控制信號(hào)輸出表(右輪轉(zhuǎn)速控制信號(hào)輸出表可用類似于右輪轉(zhuǎn)速控制規(guī)則表推導(dǎo)的方法得到)。在′F240存儲(chǔ)空間中以表格的形式存儲(chǔ)表3,根據(jù)輸入可得到相應(yīng)輸出。
上述模糊信號(hào)的獲取通過EPM7128用VHDL語(yǔ)言編程實(shí)現(xiàn),此部分的編程相對(duì)簡(jiǎn)單,不再贅述。由于光電傳感器信號(hào)的改變可以實(shí)時(shí)反映在CPLD的輸出上,′F240只需定時(shí)讀取此信號(hào)并做相應(yīng)從處理即可。假設(shè)前光電檢測(cè)板和后光電檢測(cè)板的信號(hào)分別保存在RE_CPLD字節(jié)的高半字節(jié)、低半字節(jié)中,若這兩個(gè)信號(hào)大于10則保持原數(shù)據(jù)不變,否則根據(jù)信號(hào)的大小計(jì)算此值在轉(zhuǎn)速控制信號(hào)輸出表中的偏移量:
LDP #04h
LACC #MATRIXL
ADD ADDER_PS
其中#04h為保存轉(zhuǎn)速表的頁(yè)面,#MATRIXL為轉(zhuǎn)速表起始地址在頁(yè)面中的偏移量,ADDER_PS為查表值相對(duì)轉(zhuǎn)速表起始地址的偏移量。若將查表得到的值變化后保存為控制步進(jìn)電機(jī)轉(zhuǎn)速的定時(shí)器的周期,則可以實(shí)時(shí)改變步進(jìn)電機(jī)的轉(zhuǎn)速:
LDP #04h
LACC M1_T1PR
LDP #0E8h
SACL T1PR
4 步進(jìn)電機(jī)調(diào)速的實(shí)現(xiàn)
步進(jìn)電機(jī)是純粹的數(shù)字控制電動(dòng)機(jī)。它將電脈沖信號(hào)轉(zhuǎn)換成角位移,即給一個(gè)脈沖信號(hào),電機(jī)轉(zhuǎn)一定角度。步進(jìn)電機(jī)控制器的輸入端口有:VDD——電機(jī)電源正極;GND——電源地線;OPTO——控制信號(hào)的公共陽(yáng)極;DIR——電機(jī)方向控制端;FREE——脫機(jī)輸入端;CP——脈沖輸入端(CP停止施加脈沖時(shí),要保證CP為高電平,使內(nèi)部光耦截止)。此處給DIR端加高電平,使機(jī)器人只向前行進(jìn),在程序中只需對(duì)CP端進(jìn)行處理。
脈沖的產(chǎn)生通過控制I/O端口的電平變化實(shí)現(xiàn)。在設(shè)定了定時(shí)中斷的各種參數(shù)后,在定時(shí)器中斷處理程序中使一個(gè)標(biāo)志字不停地加1:
LDP #04h
LACC TEST1
ADD #1
SACL TEST1
在主程序中可以設(shè)定行走距離,定時(shí)中斷的時(shí)間間隔決定脈沖的頻率,也即決定步進(jìn)電機(jī)的運(yùn)動(dòng)速度:
LDP #04h
LACC TEST1
SUB #2000
BCND STOP,GT
其中,數(shù)值2 000代表機(jī)器人行走的距離單位。利用模糊控制策略,改變控制兩個(gè)步進(jìn)電機(jī)的定時(shí)器定時(shí)周期的長(zhǎng)短以及行進(jìn)的距離,可以實(shí)現(xiàn)機(jī)器人的尋線行進(jìn)。
在總結(jié)近期參加的機(jī)器人比賽和電子設(shè)計(jì)競(jìng)賽的基礎(chǔ)上,針對(duì)機(jī)器人尋線行走的普遍要求,提出了一種基于DSP+CPLD和模糊控制策略的機(jī)器人實(shí)現(xiàn)方法。利用該方法設(shè)計(jì)的機(jī)器人參加了多種不同的機(jī)器人比賽(如全國(guó)大學(xué)生機(jī)器人電視大賽、足球機(jī)器人比賽子項(xiàng)和電子設(shè)計(jì)競(jìng)賽等),運(yùn)行狀況良好,取得了較理想的成績(jī),進(jìn)而證實(shí)了此設(shè)計(jì)的有效性。
參考文獻(xiàn)
1 許 歡,唐競(jìng)新.調(diào)制光尋線及其在自動(dòng)行走機(jī)器人中的應(yīng)用.清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2002;42(1):115~117
2 萬永倫,丁杰雄.一種機(jī)器人尋線控制系統(tǒng).電子科技大學(xué)學(xué)報(bào),2003;32(1):47~50
3 TMS320C240X DSP Controllers CPU,System,and Instruction Set.Texas Instruments,1997
4 曹衛(wèi)華,吳 敏,陳 鑫.基于DSP控制的足球機(jī)器人小車的設(shè)計(jì)與實(shí)現(xiàn).機(jī)器人技術(shù)應(yīng)用,2002;3:19~21
5 叢 爽.神經(jīng)網(wǎng)絡(luò)、模糊系統(tǒng)及其在運(yùn)動(dòng)控制中的應(yīng)用.合肥:中國(guó)科技大學(xué)出版社,2001