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