智能車輛是一個集環(huán)境感知,、規(guī)劃決策,、自動駕駛等多種功能于一體的綜合控制系統(tǒng)。“飛思卡爾”杯全國大學生智能汽車競賽以迅猛發(fā)展的汽車電子為背景,,是涵蓋了控制,、模式識別,、傳感技術、電子,、電氣,、計算機、機械以及車輛工程等多個學科交叉的科技創(chuàng)意性比賽,。本文以此為背景,,基于MC9S12xS128單片機設計了一種智能車系統(tǒng)
1 系統(tǒng)的總體設計方案
1.1 系統(tǒng)的總體構(gòu)架
系統(tǒng)的硬件框架如圖1所示。系統(tǒng)以飛思卡爾公司的16位單片機MC9S12XS128為控制核心,,由電源管理模塊,、賽道信息采集模塊、車速檢測模塊,、電機驅(qū)動模塊,、舵機控制模塊和調(diào)試模塊組成。單片機通過電磁傳感器采集道路信息,,根據(jù)算法分析得出此時的智能車與賽道的偏離狀況,,然后再據(jù)此采用一定的控制算法控制智能車的舵機轉(zhuǎn)向和直流電機的速度,從而實現(xiàn)智能車對路徑的自動識別和尋跡,。
圖1 系統(tǒng)地硬件框架圖
1.2 MC9S12XS128芯片介紹
MC9S12XS128單片機的特點有:采用增強型的16位S12XCPUV2,,片內(nèi)總線時鐘可達40MHz;具有128 k的Flash,,8 k的RAM以及8 k的EEPROM存儲器,,具有2個SCI,1個SPI,,1個8通道定時器,,2個8通道可調(diào)轉(zhuǎn)換精度的A/D口,1個8通道的PWM模塊,,91個離散數(shù)字 I/O口,,1個MSCAN模塊。該芯片具有速度快,、功能強,、成本低、功耗低等特點,,能夠?qū)崿F(xiàn)控制電機轉(zhuǎn)速,、舵機響應、速度采集,、路徑識別等功能,。
2 系統(tǒng)的硬件部分設計
2.1 電源管理模塊
電源管理模塊的功能是對電池進行電壓調(diào)節(jié),為各個模塊正常工作提供可靠的工作電壓,。設計中除了考慮電壓范圍和電流容量外,,還要在電源轉(zhuǎn)化效率,、降低噪音、防止干擾等方面進行優(yōu)化,。本系統(tǒng)小車全部硬件電路的電源采用7.2 V,、2000mAh鎳鎘蓄電池提供。由于電路中的不同電路模塊所需要的工作電壓和電流容量各不相同,,因此將充電電池電壓轉(zhuǎn)換成3.3 V,、5 V和7.2 V三個檔,各模塊和電源的關系圖如圖2所示,。其中采用LM2596—5.0作為5 V的穩(wěn)壓芯片,,采用LM2596—3.3作為3.3V的穩(wěn)壓芯片,電路圖如圖3所示,。
圖2 電源系統(tǒng)結(jié)構(gòu)圖
圖3 電源模塊的電路圖
2.2 賽道信息采集模塊
賽路信息采集模塊是系統(tǒng)信息輸入的重要來源,,相當于智能小車的“眼睛”,主要負責將小車當前或前面位置的賽道信息輸出給主控芯片處理,;本系統(tǒng)使用4個電磁傳感器采集賽道信息,。
2.2.1 元件選擇
電磁傳感器檢測賽道信息的原理是通過電感和電容組成的LC諧振電路檢測賽道的信號,然后將檢測到的信號通過運算放大器LM358進行放大,,由于小車需要識別的頻率為20 kHz,,所以在諧振電路中,選取10mH的細繞組電感,、6.8 nF的低頻瓷介電容,。
2.2.2 電磁傳感器的排列方式
電磁傳感器在小車前方一字形均勻布局簡單排布。這種信息檢測方法相對連貫,、準確,,使控制程序算法簡單,小車運行穩(wěn)定,。傳感器電路圖如圖4所示,。
圖4 傳感器電路圖
2.2.3 起跑識別裝置
電磁組起跑線安裝的是永久磁鐵,永久磁鐵的數(shù)據(jù):直徑:7.5-15mm,;高度:1-3mm;表面磁場強度:3000-5000Gs,。磁場檢測電路尚不能夠直接用于檢測起跑線的永磁鐵,,所以選擇干簧管檢測起跑線。當干簧管置于磁場中時,,兩極吸合,,干簧管導通。如果在其兩端加上限流電阻和電極,,就可以實現(xiàn)脈沖輸出到單片機進行中斷控制,,在程序中控制小車的延時,、起跑和停止。干簧管電路如圖5所示,。
圖5 干簧管電路圖
2.3 車速檢測模塊
本系統(tǒng)選擇日本OMRON公司生產(chǎn)的E6A2CW3C增量式光電編碼器測速,。光電式旋轉(zhuǎn)編碼器由光柵盤和光電檢測裝置組成。光柵盤與電動機同軸,,電動機旋轉(zhuǎn)時,,通過計算每秒光電編碼器輸出脈沖的個數(shù)就能反映當前電動機的轉(zhuǎn)速。該編碼器提供兩相輸出,,體積小,,質(zhì)量輕,線數(shù)多,,能夠滿足需要,。另外,專門選用了齒數(shù)較少的傳動齒輪,,有利于提高編碼器與電機的轉(zhuǎn)速比,,使相同速度下采到的脈沖數(shù)更多,有效提高了速度反饋的精度,。
2.4 電機驅(qū)動模塊
本系統(tǒng)電機驅(qū)動選擇英飛凌公司的BTS7970B驅(qū)動芯片,,由單片機的PWM模塊發(fā)出不同占空比的PWM信號來控制行進電機的轉(zhuǎn)速。 BTS7970B芯片通過PWM信號開啟關閉通道,,輸出不同電壓控制行進電機,。由于BTS7970B是半橋芯片,驅(qū)動電路使用兩片BS7970組成一個全橋用以驅(qū)動電機,,驅(qū)動電路原理圖如圖6所示,。
圖6 電機驅(qū)動電路原理圖
2.5 舵機控制模塊
本系統(tǒng)舵機控制模塊的控制對象是比賽組委會提供的S-D5型數(shù)碼舵機,該舵機可以輸出力矩驅(qū)動智能車轉(zhuǎn)向,。圖7為舵機硬件電路,,其中控制信號線與MC9S12XS128的PWM5相連。
圖7 舵機控制電路圖
2.6 調(diào)試模塊
使用串行口通信是計算機與人對話最傳統(tǒng),、最基本的方法,,異步通信(UART)接口也稱為通用異步接收器/發(fā)送器。電路圖如圖8所示,。
圖8 無線接線電路圖
3 系統(tǒng)的軟件部分設計
3.1 軟件流程設計
控制系統(tǒng)的軟件設計基于Metrowerks Code Warrior5.1編程環(huán)境,,使用C語言實現(xiàn)。圖9為控制系統(tǒng)軟件流程圖,。
圖9 控制系統(tǒng)軟件流程圖
3.2 賽道識別算法
智能車工作時首先通過4個“一”字形排列的電磁傳感器陣列檢測軌跡黑線的當前位置,,然后根據(jù)檢測結(jié)果判斷智能車與軌跡偏離的情況。本系統(tǒng)采用模擬檢測法,。具體算法為:首先,,將AD值做歸一化處理,,即根據(jù)各個傳感器接收賽道的最高電壓和最低電壓,計算出各個傳感器的相對值,,最后來計算賽道中心位置,。信號歸一化的方法如下:
求取電壓值最大的傳感器位置,然后和它周圍兩個傳感器采樣值進行加權(quán)計算即求得小車的偏差,。這種算法空間分辨率可以達到2mm,,而且受電流變化的影響比較少,適合小車穩(wěn)定的檢測要求,。
3.3 車體控制算法
車體控制算法是整個系統(tǒng)的核心,,它直接關系到小車的表現(xiàn)。在經(jīng)過對傳感器信息的處理后,,利用電磁傳感器采集的路徑形狀信息來控制轉(zhuǎn)向舵機和行進電機的輸出量,,其中轉(zhuǎn)向舵機采用PD控制算法,驅(qū)動電機的控制采用PID控制算法,。車速采用閉環(huán)控制,,由PID控制器調(diào)節(jié),其輸入量為目標速度值與當前速度值的差值,,目標速度根據(jù)當前的路況信息以及路況更迭信息確定,,PID調(diào)節(jié)器的輸出即為與行進電機轉(zhuǎn)速成比例的數(shù)值,經(jīng)處理后,,得到與所需速度相對應的PWM脈寬信號,。根據(jù)賽道的不同路況信息,系統(tǒng)采用不同的速度給定值,,并且在同一路況下,,根據(jù)小車水平偏差量和水平偏差速度對速度給定值進行修正,保證其平穩(wěn)而快速地行駛,。
4 結(jié)束語
本文介紹了應用Freescale16位單片機MC9S12XS128實現(xiàn)自動巡線智能車的控制系統(tǒng)設計,。經(jīng)多次調(diào)試運行,該智能車在正確尋跡的前提下,,彎道速度可以達到1.5m/s,,而在直道上,智能車的速度可以達到2m/s,,表明系統(tǒng)設計可靠,,智能車運行良好。