《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于μCOS-Ⅱ系統(tǒng)的智能尋跡模型車的設(shè)計(jì)與實(shí)現(xiàn)
基于μCOS-Ⅱ系統(tǒng)的智能尋跡模型車的設(shè)計(jì)與實(shí)現(xiàn)
現(xiàn)代電子技術(shù)
劉紅蕾 張鍵洋 郝 寧 周立超 許雪梅
摘要: 智能車輛是當(dāng)今車輛工程領(lǐng)域研究的前沿,它體現(xiàn)了車輛工程,、人工智能,、自動(dòng)控制、計(jì)算機(jī)等多個(gè)學(xué)科領(lǐng)域理論技術(shù)的交叉和綜合,,是未來汽車發(fā)展的趨勢(shì),。以往智能小車在軟件設(shè)計(jì)上多采用單程序控制,不利于智能車在外部環(huán)境改變時(shí)做出快速反應(yīng),,為使智能車系統(tǒng)反應(yīng)更為快速,,該智能車應(yīng)用μC/OS-Ⅱ系統(tǒng),該系統(tǒng)適合小型控制系統(tǒng),,具有執(zhí)行效率高,、占用空間小、實(shí)時(shí)性能優(yōu)良等特點(diǎn),。且選用功耗較低,、資源更為豐富的AVR系列ATmega16單片機(jī)作為核心控制單元。
Abstract:
Key words :

    智能車輛是當(dāng)今車輛工程領(lǐng)域研究的前沿,,它體現(xiàn)了車輛工程,、人工智能、自動(dòng)控制,、計(jì)算機(jī)等多個(gè)學(xué)科領(lǐng)域理論技術(shù)的交叉和綜合,,是未來汽車發(fā)展的趨勢(shì)。以往智能小車在軟件設(shè)計(jì)上多采用單程序控制,,不利于智能車在外部環(huán)境改變時(shí)做出快速反應(yīng),,為使智能車系統(tǒng)反應(yīng)更為快速,該智能車應(yīng)用μC/OS-Ⅱ系統(tǒng),,該系統(tǒng)適合小型控制系統(tǒng),,具有執(zhí)行效率高、占用空間小,、實(shí)時(shí)性能優(yōu)良等特點(diǎn),。且選用功耗較低、資源更為豐富的AVR系列ATmega16單片機(jī)作為核心控制單元,。
    采用紅外探測(cè)法實(shí)現(xiàn)尋跡功能,,即將紅外光電傳感器固定在底盤前沿,利用其在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),,在小車行駛過程中不斷地向地面發(fā)射紅外光,,單片機(jī)就是否收到反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線。并在后輪上粘上均勻分布的黑白條紋,,根據(jù)光電反射原理,,測(cè)量車速,。為保證智能車在行駛過程具有良好的操穩(wěn)性和平順性,控制系統(tǒng)對(duì)直流電機(jī)驅(qū)動(dòng)控制提出了較為理想的解決方案,。
1 硬件系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)

    智能車的硬件部分以AVR系列ATmega 16單片機(jī)為核心控制器,,由核心控制單元、電源管理模塊,、路徑識(shí)別模塊,、轉(zhuǎn)向控制模塊、電機(jī)驅(qū)動(dòng)模塊和速度及路程檢測(cè)模塊等組成,。智能車控制系統(tǒng)總體結(jié)構(gòu)如圖1所示,。

1.1 核心控制單元
    智能車采用ATmage16型單片機(jī)作為主控CPU其主要特點(diǎn)為高性能、低功耗,、高性價(jià)比,資源豐富,,并且支持高級(jí)語言編程,,在運(yùn)行速度。內(nèi)存容量,,內(nèi)部功能模塊集成化等諸多方面比MCS-51系列先進(jìn),。在智能車系統(tǒng)設(shè)計(jì)中,單片機(jī)的I/O資源分配如下:PB3,,PD7為伺服電動(dòng)機(jī)的PWM控制信號(hào)輸出引腳,;PD0~PD3為驅(qū)動(dòng)電機(jī)正反轉(zhuǎn)引腳;路徑識(shí)別系統(tǒng)經(jīng)排線由PA0~PA6輸入至單片機(jī),。

1.2 電源管理模塊
    為避免電機(jī)等器件對(duì)系統(tǒng)產(chǎn)生干擾,,智能車的各功能模塊單獨(dú)供電。采用12 V蓄電池為直流電機(jī)供電,,將12 V電壓降壓,、穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。相對(duì)于其他類型的電源,,蓄電池具有較強(qiáng)的電流驅(qū)動(dòng)能力以及穩(wěn)定的電壓輸出性能,。考慮到蓄電池的體積大,,在車體設(shè)計(jì)時(shí)留出了足夠的空間,。

    在穩(wěn)壓時(shí),采用兩片7812芯片將電壓穩(wěn)壓至12 V后給直流電機(jī)供電,,然后采用2576將電壓穩(wěn)至5 V,。2576的輸出電流最大可到3 A,完全滿足系統(tǒng)要求,。

1.3 路徑識(shí)別模塊
    智能車采用紅外探測(cè)法實(shí)現(xiàn)小車在黑色地板上循白線行走,,為了提高控制精度,,要求傳感器排列緊密,越近越好,。但傳感器排列緊密,,傳感器發(fā)射管的光線可能會(huì)從地面反射進(jìn)入臨近傳感器的接收管。為消除傳感器之間互相干擾,,傳感器共分為7組,,由PA0~PA6這7個(gè)I/O口直接供MCU讀取傳感器數(shù)據(jù)。利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),,在智能車行駛過程中傳感器不斷地向地面發(fā)射紅外光,,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被裝在小車上的接收管接收,;如果遇到黑線則紅外光被吸收,,小車上的接收管接收不到紅外光(原理圖為圖2所示)。單片機(jī)就是否收到反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線,。

1.4 電機(jī)驅(qū)動(dòng)模塊
    在電機(jī)驅(qū)動(dòng)方面,,采用運(yùn)用L298作為電機(jī)驅(qū)動(dòng)芯片,A,,B兩個(gè)電機(jī)分別控制左面和右面各兩個(gè)輪,。通過調(diào)節(jié)兩輪的轉(zhuǎn)速來實(shí)現(xiàn)智能車的轉(zhuǎn)向,即由單片機(jī)控制進(jìn)行PWM變頻調(diào)速,,通過程序設(shè)計(jì)改變脈沖調(diào)寬波形的占空比,,從而實(shí)現(xiàn)調(diào)速。轉(zhuǎn)向角度不同,,則兩電動(dòng)機(jī)的轉(zhuǎn)速差異不同,。當(dāng)小車處于較大的偏離狀態(tài)時(shí),需把一個(gè)電機(jī)的速度調(diào)至極低,,另一電機(jī)全速運(yùn)行,,從而在較短時(shí)間內(nèi)完成路線的調(diào)整。

    通過設(shè)定電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)來控制智能車的前進(jìn)和后退,。這種電路設(shè)計(jì)簡(jiǎn)易高效,,并能確保前后兩輪同步。


1.5 車速檢測(cè)模塊
    智能車系統(tǒng)通過車速檢測(cè)模塊來讀取實(shí)時(shí)車速,。采用在后輪上粘貼均勻分布有黑白條紋的方法,。利用圖3的檢測(cè)電路來對(duì)車輪上的黑白條紋進(jìn)行檢測(cè)。根據(jù)光電反射原理,,在車輪轉(zhuǎn)動(dòng)時(shí),,紅外接收管接收到反射光強(qiáng)弱高低變化,就會(huì)產(chǎn)生與車輪轉(zhuǎn)速相對(duì)應(yīng)的脈沖信號(hào),,將該脈沖信號(hào)進(jìn)行放大整形后輸入單片機(jī)的輸入捕獲引腳PA7,,記錄單位時(shí)間內(nèi)所得到的脈沖數(shù),,就能夠表示出當(dāng)前車速,同時(shí)通過累加可以計(jì)算出小車所行走的路程,。

2 軟件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    為使智能車在環(huán)境改變時(shí)做出更為及時(shí)準(zhǔn)確的響應(yīng),,在程序設(shè)計(jì)時(shí)應(yīng)用μC/OS-Ⅱ系統(tǒng)。μC/OS-Ⅱ適合小型控制系統(tǒng),,具有執(zhí)行效率高,、占用空間小、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn),,最小內(nèi)核可編譯至2 KB,。μC/OS-Ⅱ的代碼是用C語言編寫,可以直接移植到有C語言編譯器的處理器上,。移植主要都集中在多任務(wù)切換的實(shí)現(xiàn)上,,由于這部分代碼用于保存和恢復(fù)CPU現(xiàn)場(chǎng)(即寫/讀相關(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-Ⅱ是采用的可剝奪型實(shí)時(shí)多任務(wù)內(nèi)核??蓜儕Z型的實(shí)時(shí)內(nèi)核在任何時(shí)候都運(yùn)行就緒了的最高優(yōu)先級(jí)的任務(wù),。μC/OS-Ⅱ中最多可以支持64個(gè)任務(wù),分別對(duì)應(yīng)優(yōu)先級(jí)0~63,,其中0為最高優(yōu)先級(jí),。在該系統(tǒng)設(shè)計(jì)中,共應(yīng)用了7個(gè)優(yōu)先級(jí),,其中,,操作系統(tǒng)建立任務(wù),即Task Start()的優(yōu)先級(jí)最高,。調(diào)度工作可以分為兩部分:最高優(yōu)先級(jí)任務(wù)的尋找和任務(wù)切換,。

    在該系統(tǒng)中,共定義了路徑識(shí)別,、光電轉(zhuǎn)盤檢測(cè)等7個(gè)任務(wù),,控制器任務(wù)劃分及說明如表1所示。其調(diào)度和通信實(shí)現(xiàn)流程如下:系統(tǒng)執(zhí)行Task Start(),,在初始化任務(wù)執(zhí)行完成后,,利用μC/OS-Ⅱ的OSTaskDel()函數(shù)將這個(gè)任務(wù)返回并處于休眠狀態(tài)。此時(shí),,Task Po-sition Check()成為優(yōu)先級(jí)最高的任務(wù),,將會(huì)一直執(zhí)行,。當(dāng)Task Position Check()檢測(cè)到路徑有所改變,通過郵箱傳送數(shù)據(jù)到Task Control(),,并由TaskControl()控制PWM波輸出的改變,。任務(wù)Task Op-tical_Wheel()的優(yōu)先級(jí)稍低,同樣會(huì)一直執(zhí)行,,即當(dāng)任務(wù)Task_Optical_Wheel()檢測(cè)到黑白跳變時(shí),,任務(wù)中的變量加1,Task_Optical_Wheel()每隔1 s向任務(wù)Task_Path_Calculate()和Task_Speed_Calculate()發(fā)送1次消息,,分別計(jì)算速度和已走的累加路程,,控制器任務(wù)關(guān)系圖如圖4所示。


 

2.1 路徑黑線的識(shí)別
    路徑黑線的識(shí)別的準(zhǔn)確程度決定智能車能否完成快速,、穩(wěn)定的尋線,。識(shí)別裝置由高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,以非接觸檢測(cè)方式,,檢測(cè)距離可調(diào)整達(dá)4~20 mm,。為了精確測(cè)定智能車的相對(duì)位置,將7對(duì)ST178并排安放在車底盤下部的前端,,其分布垂直于智能車行走的方向,。當(dāng)車行走時(shí),保持7個(gè)發(fā)光管發(fā)光,,當(dāng)某一個(gè)光電對(duì)管的下方為黑色軌跡時(shí),,相應(yīng)的接收管輸出為高電平,而下方為白色路面的接收管輸出為低電平,。再經(jīng)數(shù)據(jù)處理后,,控制系統(tǒng)就可以分析出當(dāng)前車行走的位置,從而達(dá)到調(diào)整智能車運(yùn)行狀態(tài)的目的,。例如,,假設(shè)路面黑線的寬度為三組紅外線對(duì)管的寬度,當(dāng)黑線在車體中間時(shí),,7個(gè)輸入引腳為28H(0011100),;當(dāng)車體左或右偏時(shí),接收到的數(shù)據(jù)會(huì)改變,,即“1”會(huì)相應(yīng)的左移或右移,,如0001110(右偏)、0111000(左偏),,偏移幅度不同,,“1”的移動(dòng)位數(shù)便不同。


2.2 轉(zhuǎn)向控制模塊
    采用PWM(脈沖寬度調(diào)制)控制,,配用L298驅(qū)動(dòng)電路實(shí)現(xiàn)直流電機(jī)的調(diào)速,,方法簡(jiǎn)單且調(diào)速范圍大,,它利用的是直流斬波原理,假定高電平導(dǎo)通,,在一個(gè)周期T內(nèi)導(dǎo)通時(shí)間為t,,那么一個(gè)周期T內(nèi)的平均電壓U=(t/T)VCC=qVCC,其中占空比q=t/T,。
    電機(jī)的轉(zhuǎn)速與電機(jī)兩端的電壓成正比,,而電機(jī)兩端的電壓與控制波形的占空比成正比,因此電機(jī)的速度與占空比成正比,,占空比越大,,電機(jī)轉(zhuǎn)的越快,當(dāng)占空比q=1時(shí),,電機(jī)轉(zhuǎn)速達(dá)到最大,。該智能車系統(tǒng)采用8 MHz的晶體振蕩器,PWM信號(hào)引腳OCRO/2的頻率為:
   
式中:變量N代表分頻因子:1.8,,32,,64,128,,256或1 024,。占空比計(jì)算公式為:
    t/T=(OCR0/1/256)


2.3 車速及路程測(cè)量模塊
    在智能車車后輪上粘貼均勻分布有黑白條紋。在輪轉(zhuǎn)動(dòng)的過程中,,紅外傳感器會(huì)不斷檢測(cè)到黑,、白條紋的出現(xiàn)。當(dāng)紅外傳感器檢測(cè)到的為黑條紋時(shí),,輸入電壓為高電平,當(dāng)檢測(cè)到的為白條紋時(shí)輸入電壓為低電平,。若傳感器檢測(cè)到電平跳變,,則計(jì)數(shù)變量加1。時(shí)鐘每秒產(chǎn)生一次中斷,,Task_Clock()進(jìn)程通過郵箱向Task Speed_Calculate()進(jìn)程發(fā)送數(shù)據(jù),,由此可算出小車速度:速度=數(shù)據(jù)/每圈條紋數(shù)。如圖5,,圖6所示,。

3 結(jié) 語
    本文介紹了一種智能尋跡模型車的設(shè)計(jì)與實(shí)現(xiàn)。實(shí)踐證明,,該智能車定位準(zhǔn)確,,系統(tǒng)響應(yīng)快且穩(wěn)定,具備良好的動(dòng)力性能和精確的轉(zhuǎn)向性能,,證明了μC/OS-Ⅱ系統(tǒng)的有效性和穩(wěn)定性,。相比同類智能車,,該模型車還具有高性能、低功耗的優(yōu)點(diǎn),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。