智能車輛是當(dāng)今車輛工程領(lǐng)域研究的前沿,它體現(xiàn)了車輛工程,、人工智能,、自動控制、計算機等多個學(xué)科領(lǐng)域理論技術(shù)的交叉和綜合,,是未來汽車發(fā)展的趨勢,。以往智能小車在軟件設(shè)計上多采用單程序控制,不利于智能車在外部環(huán)境改變時做出快速反應(yīng),,為使智能車系統(tǒng)反應(yīng)更為快速,,該智能車應(yīng)用μC/OS-Ⅱ系統(tǒng),該系統(tǒng)適合小型控制系統(tǒng),,具有執(zhí)行效率高,、占用空間小、實時性能優(yōu)良等特點,。且選用功耗較低,、資源更為豐富的AVR系列ATmega16單片機作為核心控制單元。
采用紅外探測法實現(xiàn)尋跡功能,,即將紅外光電傳感器固定在底盤前沿,,利用其在不同顏色的物體表面具有不同的反射性質(zhì)的特點,在小車行駛過程中不斷地向地面發(fā)射紅外光,,單片機就是否收到反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線,。并在后輪上粘上均勻分布的黑白條紋,根據(jù)光電反射原理,,測量車速,。為保證智能車在行駛過程具有良好的操穩(wěn)性和平順性,控制系統(tǒng)對直流電機驅(qū)動控制提出了較為理想的解決方案,。
1 硬件系統(tǒng)的設(shè)計及實現(xiàn)
智能車的硬件部分以AVR系列ATmega 16單片機為核心控制器,,由核心控制單元、電源管理模塊,、路徑識別模塊,、轉(zhuǎn)向控制模塊、電機驅(qū)動模塊和速度及路程檢測模塊等組成,。智能車控制系統(tǒng)總體結(jié)構(gòu)如圖1所示,。
1.1 核心控制單元
智能車采用ATmage16型單片機作為主控CPU其主要特點為高性能、低功耗,、高性價比,,資源豐富,,并且支持高級語言編程,在運行速度,。內(nèi)存容量,,內(nèi)部功能模塊集成化等諸多方面比MCS-51系列先進。在智能車系統(tǒng)設(shè)計中,,單片機的I/O資源分配如下:PB3,,PD7為伺服電動機的PWM控制信號輸出引腳;PD0~PD3為驅(qū)動電機正反轉(zhuǎn)引腳,;路徑識別系統(tǒng)經(jīng)排線由PA0~PA6輸入至單片機,。
1.2 電源管理模塊
為避免電機等器件對系統(tǒng)產(chǎn)生干擾,智能車的各功能模塊單獨供電,。采用12 V蓄電池為直流電機供電,,將12 V電壓降壓、穩(wěn)壓后給單片機系統(tǒng)和其他芯片供電,。相對于其他類型的電源,,蓄電池具有較強的電流驅(qū)動能力以及穩(wěn)定的電壓輸出性能??紤]到蓄電池的體積大,在車體設(shè)計時留出了足夠的空間,。
在穩(wěn)壓時,,采用兩片7812芯片將電壓穩(wěn)壓至12 V后給直流電機供電,然后采用2576將電壓穩(wěn)至5 V,。2576的輸出電流最大可到3 A,,完全滿足系統(tǒng)要求。
1.3 路徑識別模塊
智能車采用紅外探測法實現(xiàn)小車在黑色地板上循白線行走,,為了提高控制精度,,要求傳感器排列緊密,越近越好,。但傳感器排列緊密,,傳感器發(fā)射管的光線可能會從地面反射進入臨近傳感器的接收管。為消除傳感器之間互相干擾,,傳感器共分為7組,,由PA0~PA6這7個I/O口直接供MCU讀取傳感器數(shù)據(jù)。利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點,,在智能車行駛過程中傳感器不斷地向地面發(fā)射紅外光,,當(dāng)紅外光遇到白色紙質(zhì)地板時發(fā)生漫反射,反射光被裝在小車上的接收管接收,;如果遇到黑線則紅外光被吸收,,小車上的接收管接收不到紅外光(原理圖為圖2所示),。單片機就是否收到反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線。
1.4 電機驅(qū)動模塊
在電機驅(qū)動方面,,采用運用L298作為電機驅(qū)動芯片,,A,B兩個電機分別控制左面和右面各兩個輪,。通過調(diào)節(jié)兩輪的轉(zhuǎn)速來實現(xiàn)智能車的轉(zhuǎn)向,,即由單片機控制進行PWM變頻調(diào)速,通過程序設(shè)計改變脈沖調(diào)寬波形的占空比,,從而實現(xiàn)調(diào)速,。轉(zhuǎn)向角度不同,則兩電動機的轉(zhuǎn)速差異不同,。當(dāng)小車處于較大的偏離狀態(tài)時,,需把一個電機的速度調(diào)至極低,另一電機全速運行,,從而在較短時間內(nèi)完成路線的調(diào)整,。
通過設(shè)定電機的正轉(zhuǎn)和反轉(zhuǎn)來控制智能車的前進和后退。這種電路設(shè)計簡易高效,,并能確保前后兩輪同步,。
1.5 車速檢測模塊
智能車系統(tǒng)通過車速檢測模塊來讀取實時車速。采用在后輪上粘貼均勻分布有黑白條紋的方法,。利用圖3的檢測電路來對車輪上的黑白條紋進行檢測,。根據(jù)光電反射原理,在車輪轉(zhuǎn)動時,,紅外接收管接收到反射光強弱高低變化,,就會產(chǎn)生與車輪轉(zhuǎn)速相對應(yīng)的脈沖信號,將該脈沖信號進行放大整形后輸入單片機的輸入捕獲引腳PA7,,記錄單位時間內(nèi)所得到的脈沖數(shù),,就能夠表示出當(dāng)前車速,同時通過累加可以計算出小車所行走的路程,。
2 軟件系統(tǒng)設(shè)計與實現(xiàn)
為使智能車在環(huán)境改變時做出更為及時準(zhǔn)確的響應(yīng),,在程序設(shè)計時應(yīng)用μC/OS-Ⅱ系統(tǒng)。μC/OS-Ⅱ適合小型控制系統(tǒng),,具有執(zhí)行效率高,、占用空間小、實時性能優(yōu)良和可擴展性強等特點,,最小內(nèi)核可編譯至2 KB,。μC/OS-Ⅱ的代碼是用C語言編寫,可以直接移植到有C語言編譯器的處理器上,。移植主要都集中在多任務(wù)切換的實現(xiàn)上,,由于這部分代碼用于保存和恢復(fù)CPU現(xiàn)場(即寫/讀相關(guān)寄存器),,不能用C語言,只能使用匯編語言完成,,即編寫OS CPU A.S文件,。另外還需要修改體系結(jié)構(gòu)相關(guān)的OS CPU.H文件和用戶規(guī)定任務(wù)棧初始化結(jié)構(gòu)的OS CPU C.C文件。
μC/OS-Ⅱ是采用的可剝奪型實時多任務(wù)內(nèi)核,??蓜儕Z型的實時內(nèi)核在任何時候都運行就緒了的最高優(yōu)先級的任務(wù)。μC/OS-Ⅱ中最多可以支持64個任務(wù),,分別對應(yīng)優(yōu)先級0~63,,其中0為最高優(yōu)先級。在該系統(tǒng)設(shè)計中,,共應(yīng)用了7個優(yōu)先級,,其中,操作系統(tǒng)建立任務(wù),,即Task Start()的優(yōu)先級最高,。調(diào)度工作可以分為兩部分:最高優(yōu)先級任務(wù)的尋找和任務(wù)切換。
在該系統(tǒng)中,,共定義了路徑識別,、光電轉(zhuǎn)盤檢測等7個任務(wù),控制器任務(wù)劃分及說明如表1所示,。其調(diào)度和通信實現(xiàn)流程如下:系統(tǒng)執(zhí)行Task Start(),,在初始化任務(wù)執(zhí)行完成后,利用μC/OS-Ⅱ的OSTaskDel()函數(shù)將這個任務(wù)返回并處于休眠狀態(tài),。此時,,Task Po-sition Check()成為優(yōu)先級最高的任務(wù),,將會一直執(zhí)行,。當(dāng)Task Position Check()檢測到路徑有所改變,通過郵箱傳送數(shù)據(jù)到Task Control(),,并由TaskControl()控制PWM波輸出的改變,。任務(wù)Task Op-tical_Wheel()的優(yōu)先級稍低,同樣會一直執(zhí)行,,即當(dāng)任務(wù)Task_Optical_Wheel()檢測到黑白跳變時,,任務(wù)中的變量加1,Task_Optical_Wheel()每隔1 s向任務(wù)Task_Path_Calculate()和Task_Speed_Calculate()發(fā)送1次消息,,分別計算速度和已走的累加路程,,控制器任務(wù)關(guān)系圖如圖4所示。
2.1 路徑黑線的識別
路徑黑線的識別的準(zhǔn)確程度決定智能車能否完成快速,、穩(wěn)定的尋線,。識別裝置由高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,,以非接觸檢測方式,檢測距離可調(diào)整達4~20 mm,。為了精確測定智能車的相對位置,,將7對ST178并排安放在車底盤下部的前端,其分布垂直于智能車行走的方向,。當(dāng)車行走時,,保持7個發(fā)光管發(fā)光,當(dāng)某一個光電對管的下方為黑色軌跡時,,相應(yīng)的接收管輸出為高電平,,而下方為白色路面的接收管輸出為低電平。再經(jīng)數(shù)據(jù)處理后,,控制系統(tǒng)就可以分析出當(dāng)前車行走的位置,,從而達到調(diào)整智能車運行狀態(tài)的目的。例如,,假設(shè)路面黑線的寬度為三組紅外線對管的寬度,,當(dāng)黑線在車體中間時,7個輸入引腳為28H(0011100),;當(dāng)車體左或右偏時,,接收到的數(shù)據(jù)會改變,即“1”會相應(yīng)的左移或右移,,如0001110(右偏),、0111000(左偏),偏移幅度不同,,“1”的移動位數(shù)便不同,。
2.2 轉(zhuǎn)向控制模塊
采用PWM(脈沖寬度調(diào)制)控制,配用L298驅(qū)動電路實現(xiàn)直流電機的調(diào)速,,方法簡單且調(diào)速范圍大,,它利用的是直流斬波原理,假定高電平導(dǎo)通,,在一個周期T內(nèi)導(dǎo)通時間為t,,那么一個周期T內(nèi)的平均電壓U=(t/T)VCC=qVCC,其中占空比q=t/T,。
電機的轉(zhuǎn)速與電機兩端的電壓成正比,,而電機兩端的電壓與控制波形的占空比成正比,因此電機的速度與占空比成正比,,占空比越大,,電機轉(zhuǎn)的越快,當(dāng)占空比q=1時,,電機轉(zhuǎn)速達到最大,。該智能車系統(tǒng)采用8 MHz的晶體振蕩器,,PWM信號引腳OCRO/2的頻率為:
式中:變量N代表分頻因子:1.8,32,,64,,128,256或1 024,。占空比計算公式為:
t/T=(OCR0/1/256)
2.3 車速及路程測量模塊
在智能車車后輪上粘貼均勻分布有黑白條紋,。在輪轉(zhuǎn)動的過程中,紅外傳感器會不斷檢測到黑,、白條紋的出現(xiàn),。當(dāng)紅外傳感器檢測到的為黑條紋時,輸入電壓為高電平,,當(dāng)檢測到的為白條紋時輸入電壓為低電平,。若傳感器檢測到電平跳變,則計數(shù)變量加1,。時鐘每秒產(chǎn)生一次中斷,,Task_Clock()進程通過郵箱向Task Speed_Calculate()進程發(fā)送數(shù)據(jù),由此可算出小車速度:速度=數(shù)據(jù)/每圈條紋數(shù),。如圖5,,圖6所示。
3 結(jié) 語
本文介紹了一種智能尋跡模型車的設(shè)計與實現(xiàn),。實踐證明,,該智能車定位準(zhǔn)確,系統(tǒng)響應(yīng)快且穩(wěn)定,,具備良好的動力性能和精確的轉(zhuǎn)向性能,,證明了μC/OS-Ⅱ系統(tǒng)的有效性和穩(wěn)定性。相比同類智能車,,該模型車還具有高性能,、低功耗的優(yōu)點。