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