1 引言
智能汽車是汽車電子、人工智能、模式識別、自動控制、計算機、機械多個學(xué)科領(lǐng)域的交叉綜合的體現(xiàn),具有重要的應(yīng)用價值。智能尋跡車是基于飛思卡爾MC9S12DGl28單片機開發(fā)實現(xiàn)的,該系統(tǒng)采用CCD傳感器識別道路中央黑色的引導(dǎo)線,利用傳感器檢測智能車的加速度和速度,在此基礎(chǔ)上利用合理的算法控制智能車運動,從而實現(xiàn)快速穩(wěn)定的尋跡行駛。
2 硬件系統(tǒng)設(shè)計
該系統(tǒng)硬件設(shè)計主要由MC9S12DGl28控制核心、電源管理模塊、直流電機驅(qū)動模塊、轉(zhuǎn)向舵機控制模塊、道路信息檢測模塊、速度檢測模塊和加速度檢測模塊等組成,其結(jié)構(gòu)框圖如圖1所示。
2.1 主控制器模塊
智能車的控制核心為MC9S12DGl28。MC9S12DGl28是飛思卡爾公司生產(chǎn)的一款16位單片機,片內(nèi)總線時鐘可達到25 MHz;片內(nèi)資源包括8 K RAM、128 K Flash、2 K EEP-ROM;SCI,SPI,PWM和串行接口模塊;脈寬調(diào)制模塊(PWM)可設(shè)置成4路8位或2路16位,邏輯時鐘選擇頻率脈寬:2個8路10位A/D轉(zhuǎn)換器,增強型捕捉定時器并支持背景調(diào)試模式等。
2.2 電源管理模塊
該系統(tǒng)設(shè)計采用7.2 V/1 800 mA鎳鎘電池供電,7.2 V電壓經(jīng)過BMlll7—5穩(wěn)壓后得到5 V電壓,向單片機、紅外傳感器和加速度傳感器供電。5 V電壓經(jīng)MAX8715升壓后得到12 V電壓,向CCD圖像傳感器供電:7.2 V電壓經(jīng)二極管降壓得到約6 V的電壓來驅(qū)動舵機;電機驅(qū)動器MC33886則直接由電源供電。
2.3 道路信息檢測模塊
該系統(tǒng)設(shè)計使用NEC公司的線陣CCDμPD3575D檢測賽道信息。該器件可工作在5 V驅(qū)動(脈沖)和12 V電源條件下。μPD3575D的驅(qū)動需要4路脈沖,分別為轉(zhuǎn)移柵時鐘φIO、復(fù)位時鐘φRD、采樣保持時鐘φSHO和傳輸門時鐘φTG。系統(tǒng)設(shè)計由外圍電路直接產(chǎn)生CCD驅(qū)動時鐘,采用計數(shù)器和觸發(fā)器專門設(shè)計時序電路,產(chǎn)生轉(zhuǎn)移柵時鐘φIO、復(fù)位時鐘φRO、采樣保持時鐘φSHO,單片機只需產(chǎn)生一個幀同步信號(傳輸門信號φTG)與外圍時序電路保持同步即可。μPD3575D輸出的是模擬信號,將采集圖像傳輸至單片機,一般需對μPD3575D輸出信號進行A/D轉(zhuǎn)換,考慮到設(shè)計實際上只需要區(qū)分黑色和白色,μPD3575D對這兩種輸出信號差異較大,因此,將μPD3575D輸出信號放大后直接使用一個比較器對信號二值化處理,如圖2所示。由單片機檢測二值信號的跳變時間,便可計算出黑線位置,從而進一步縮短單片機在CCD上所消耗的時間。
2.4 車速檢測模塊
系統(tǒng)使用紅外傳感器檢測直流電機的轉(zhuǎn)速。在后輪減速齒輪上粘貼一個均勻分布有黑白條紋的編碼盤。紅外接收管接收與未接收紅外光所表現(xiàn)的特性是阻抗變化,所以只需用一個電阻電壓變換電路和比較電路便可將其模擬信號轉(zhuǎn)換為數(shù)字信號,供單片機采集。
2.5 直流電機驅(qū)動模塊
系統(tǒng)采用RS380-ST型直流電機,其驅(qū)動電路采用集成電機驅(qū)動器MC333886。此器件是單片集成的H橋元件,有單橋和雙橋兩種控制方式,其可控電壓為5~40 V,最大PWM頻率達10 kHz,內(nèi)置短路保護電路和過熱保護電路,最大能承受的5 A的工作電流。其中D1、D2是MC33886的使能端,INl、IN2為輸入端,0UTl、0UT2為其輸出端。圖3是將MC33886的D2端接到單片機的PWM輸出端口,通過MC33886的兩個輸出端口實現(xiàn)電機的轉(zhuǎn)速控制、方向控制及制動等。采用輸出端并聯(lián)并連接到電機一端,以及增加散熱片的方法使智能車在相同電壓和占空比時,其速度更快,同時還降低H橋上的壓降,減少MC33886發(fā)熱,防止器件由于溫度過高被燒毀。
2.6 加速度檢測模塊
智能車在高速行駛中如果突然轉(zhuǎn)向,會出現(xiàn)側(cè)滑現(xiàn)象。該系統(tǒng)設(shè)計采用ADXL202加速度傳感器判斷移動智能小車在行駛中是否出現(xiàn)側(cè)滑現(xiàn)象。ADXL202是美國ADI公司推出的低成本雙軸加速度傳感器,其外圍電路簡單.采用5 V供電,將加速度傳感器的輸出端9引腳和10引腳直接接到單片機的AN00,AN01引腳,通過計算輸出信號的占空比可
精確檢測軸向和橫向加速度。
2.7 轉(zhuǎn)向控制模塊
智能車使用韓國futaba公司的S3010舵機完成轉(zhuǎn)向控制。舵機控制信號由單片機的PWM模塊PWM0和PWMl聯(lián)合產(chǎn)生一個16位的PWM信號。由于舵機的轉(zhuǎn)角與脈沖寬度存在線性關(guān)系,改變PWM占空比可改變輸出脈沖的寬度。從而控制舵機轉(zhuǎn)向。將驅(qū)動舵機脈沖波型的周期從原來的20ms減小到10 ms,增加舵機控制信號的更新頻率,減少舵機控制環(huán)節(jié)中的延時,提高整個車模轉(zhuǎn)向控制速度。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)的基本控制策略是根據(jù)CCD傳感器檢測到的路徑信息,車速檢測模塊檢測到的當前車速信息和加速度傳感器檢測到的加速度信息,來控制舵機和直流驅(qū)動電機運動。
3.1 車速控制
為了提高機器人運行的穩(wěn)定性,采用PID算法實現(xiàn)直流電機的轉(zhuǎn)速閉環(huán)調(diào)節(jié),PID控制器的輸入量為給定轉(zhuǎn)速與輸出轉(zhuǎn)速的差值,采用增量式PID算法。
3.2 智能車平穩(wěn)性控制
為了避免智能車發(fā)生側(cè)滑現(xiàn)象,應(yīng)在智能車上安裝加速度傳感器,以檢測是否發(fā)生側(cè)滑。車速為v,轉(zhuǎn)向角為δ,車體質(zhì)量為m,軸距為l,當理想轉(zhuǎn)向時,向心加速度為a,則a=mv2tanδ/l。當加速度傳感器反饋回的實際加速度a*小于理論加速度a時(實際中應(yīng)當保持一定的死區(qū)),表明智能車系統(tǒng)存在側(cè)滑現(xiàn)象。這時便命令智能移動小車減速,速度參考量為
3.3 舵機轉(zhuǎn)向控制
系統(tǒng)使用模糊控制算法控制智能車轉(zhuǎn)向。傳感器檢測的重點是轉(zhuǎn)向角誤差,當轉(zhuǎn)向角誤差相同時,不同的誤差變化率反映不同的軌道半徑,因此,該設(shè)計還檢測轉(zhuǎn)向角誤差變化率。當誤差量很小,且誤差變化率不變時,則判定為智能小車正沿著引導(dǎo)線行駛,則機器人小車沿直線行進;若誤差變化率較大時,表明智能小車正在偏離引導(dǎo)線,此時,需對航向角做相應(yīng)調(diào)整。通過CCD圖像傳感器檢測白色地面上的黑線,根據(jù)返回的信號得出駕駛角誤差和誤差變化率,將CCD圖像傳感器視覺中心的誤差和誤差變化率作為控制器的輸入,分別用e和ec表示;輸出為駕駛角,用δ表示。模糊語言值分別選為:e:{LB,LM,LS,CE,RS,RM,RB};ec:{PB,PM,PS,Z0,NS,NM,NB};δ:{LB,LM,LS,CE,RS,RM,RB}。隸屬度函數(shù)采用三角形,如圖4所示。交疊系數(shù)β=(c1一a2)/(c2-b1),取0.75。根據(jù)駕駛經(jīng)驗建立規(guī)則庫進行模糊推理后.利用重心法進行反模糊化得出舵機所要轉(zhuǎn)的角度。
3.4 智能車控制流程
設(shè)計中,程序初始化完成后便進入空閑模式,等待中斷發(fā)生。中斷包括車輪轉(zhuǎn)速計數(shù)器中斷、CCD圖像捕捉中斷和以10 ms為周期的定時器0中斷。驅(qū)動電機和舵機的PWM控制信號由單片機的PWM模塊自動產(chǎn)生,其定時器0的中斷服務(wù)程序如圖5所示。
4 結(jié)語
以MC9S12DGl28作為控制核心,設(shè)計自主尋跡的智能車控制系統(tǒng),在檢測到智能車運動信息和道路信息的基礎(chǔ)上,采用模糊控制算法控制舵機轉(zhuǎn)向,通過轉(zhuǎn)速PID調(diào)節(jié)的方式控制直流電機。實驗證明:該智能車在白色的跑道上能沿著一定寬度任意弧度的黑色引導(dǎo)線以較快的速度平穩(wěn)地行駛,尋跡效果良好,速度和轉(zhuǎn)向控制響應(yīng)快,系統(tǒng)的穩(wěn)定性和抗干擾能力強,速度可以達到1.5 m/s,此方案已應(yīng)用于全國智能車大賽。