采用光電傳感器的智能車控制研究
在程序中建立兩個(gè)數(shù)組,一個(gè)存儲(chǔ)每次檢測(cè)到的信號(hào),另一個(gè)存儲(chǔ)實(shí)施控制后的當(dāng)前信號(hào)作為歷史數(shù)據(jù)。加入這種帶歷史紀(jì)錄判斷的思想后,使得控制更為精確[4]。
除了以上判斷法則之外,還有兩種情況需要考慮。即只有一個(gè)傳感器檢測(cè)到黑線的情況以及交叉賽道的情況。對(duì)于只有一個(gè)傳感器檢測(cè)到黑線的情況,同樣需要檢查上一時(shí)刻的傳感器信號(hào),例如,某一時(shí)刻只有s6檢測(cè)到黑線,若上一時(shí)刻s5檢測(cè)到黑線,則車模左轉(zhuǎn),若上一時(shí)刻s7檢測(cè)到黑線,則車模右轉(zhuǎn)。
對(duì)于交叉賽道的情況,則利用一種“濾波”的思想將其“濾”除掉。遇到交叉賽道時(shí),必然會(huì)出現(xiàn)同一排幾個(gè)傳感器同時(shí)檢測(cè)到黑線的情況,此時(shí)就給模型車一個(gè)命令使其直線前進(jìn),將交叉賽道排除掉。
這就是本系統(tǒng)基于經(jīng)驗(yàn)邏輯判斷的循線控制算法,在此基礎(chǔ)上通過不斷實(shí)驗(yàn)調(diào)整各個(gè)參數(shù)可達(dá)到較好的控制效果。
實(shí)驗(yàn)結(jié)果
硬件設(shè)計(jì)
電機(jī)驅(qū)動(dòng)電路
電機(jī)驅(qū)動(dòng)采用mc33886作為驅(qū)動(dòng)芯片,其原理如圖6所示。通過向in1、in2口送出pwm波來控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),正轉(zhuǎn)為智能車加速,反轉(zhuǎn)減速。改變pwm波的占空比,可控制電機(jī)的轉(zhuǎn)動(dòng)速率[5]。
速度檢測(cè)電路
本文采用增量式光電編碼器來測(cè)量車速,其輸出脈沖的頻率正比于轉(zhuǎn)速,可以通過測(cè)量單位周期內(nèi)脈沖個(gè)數(shù)或者脈沖周期得到脈沖的頻率,具有較高的精度。
電源變換電路
智能車系統(tǒng)配有7.2v的蓄電池,可直接為直流電機(jī)供電。單片機(jī)、光電傳感器和光電編碼器所需電壓為5v,伺服舵機(jī)為6v。這些電壓則由7.2v蓄電池調(diào)節(jié)得來。
單片機(jī)和光電編碼器通過穩(wěn)壓芯片7805穩(wěn)壓輸出5v電壓供電。光電傳感器數(shù)目多、功耗大,對(duì)電源穩(wěn)定性要求更高,故單獨(dú)采用效率較高的芯片lm2575對(duì)它供電。給舵機(jī)供電的芯片選用的是低壓差可調(diào)輸出三端線性穩(wěn)壓器lm1117,片上提供安全操作保護(hù)等功能。
軟件設(shè)計(jì)
軟件設(shè)計(jì)分模塊實(shí)現(xiàn),其中主程序包括時(shí)鐘初始化、i/o口初始化、舵機(jī)電機(jī)初始化、采集信號(hào)和控制算法,程序流程見圖7。
實(shí)驗(yàn)結(jié)果及其分析
程序開發(fā)過程中完全采用了組委會(huì)提供的s12核心開發(fā)板,它是由mc9s12dg128單片機(jī)構(gòu)成的最小系統(tǒng)。mc9s12dg128屬于hcs12系列單片機(jī),是motorola推出的高性能16位微控制器。它能夠提供32-512kb的第三代快閃嵌入式存儲(chǔ)器,總線速度可達(dá)50mhz,外圍時(shí)鐘可達(dá)25mhz。還具備編碼效益、片上糾錯(cuò)能力,并與mc68hc11和mc68hc12結(jié)構(gòu)編碼向上兼容。mc9s12dg128單片機(jī)具有112個(gè)引腳,其中與cpu相關(guān)的引腳都是兼容的。
s12開發(fā)板上有構(gòu)成最小系統(tǒng)的復(fù)位電路、晶體振蕩器及時(shí)鐘電路,串行接口的rs-232驅(qū)動(dòng)電路,+5v電源插座。單片機(jī)中已經(jīng)寫入了開發(fā)的監(jiān)控程序。8個(gè)小燈用于調(diào)試應(yīng)用系統(tǒng)。單片機(jī)的所有i/o端口都通過兩個(gè)64芯的歐式插頭引出。
硬件調(diào)試時(shí),分別對(duì)各模塊功能進(jìn)行測(cè)試,重點(diǎn)調(diào)節(jié)光電傳感器,它感知黑白線時(shí)輸出信號(hào)應(yīng)不同,感知白線時(shí)經(jīng)過比較器輸出為低電平,感知黑線時(shí)輸出為高電平。軟件調(diào)試時(shí),可利用bdm開發(fā)工具,顯示單片機(jī)運(yùn)行時(shí)其內(nèi)部存儲(chǔ)器中的數(shù)據(jù)。
通過硬件軟件的聯(lián)合調(diào)試和實(shí)驗(yàn),出現(xiàn)了一些問題,但通過對(duì)程序的完善和車模的重新裝配后效果大大改善。最終車??稍谂艿郎涎€運(yùn)行,但仍存在功耗較大,轉(zhuǎn)向延時(shí)等問題。
結(jié)語
本文基于自動(dòng)控制原理,利用探路模塊的道路偏差信號(hào)使智能車實(shí)現(xiàn)尋跡跟蹤,利用pwm技術(shù)控制電機(jī)的轉(zhuǎn)速和舵機(jī)的轉(zhuǎn)向。
本文重點(diǎn)介紹了光電傳感器的排布“w”形布局以及循線控制算法,它們是保證智能車循線運(yùn)行的關(guān)鍵?!皐”形布局使智能車具備了道路預(yù)測(cè)能力,而循線控制算法使得車體轉(zhuǎn)向快速正確。
通過對(duì)智能車仿真和實(shí)驗(yàn)表明,整個(gè)系統(tǒng)的方案可行,系統(tǒng)的控制策略和軟硬件基本合理??刂品矫?,雖然經(jīng)典的pid控制在電機(jī)調(diào)速方面有良好的控制效果,但由于車模的動(dòng)力學(xué)模型因車況不同而變化等原因,使得pid控制效果受到影響,以后可考慮采用模糊控制,使算法更加智能化,系統(tǒng)的適應(yīng)性更強(qiáng)。
評(píng)論