摘要:本文設(shè)計的智能車以STM32F405微控制器作為核心控制單元,通過3個紅外傳感器檢測賽道信息,使用速度閉環(huán)控制,使智能車實現(xiàn)避障行駛。
關(guān)鍵詞:紅外傳感器;閉環(huán)控制;避障智能小車
中圖分類號:TP242 文獻標識碼:A 文章編號:1674-7712 (2012) 18-0001-02
隨著電子技術(shù)和智能控制技術(shù)的發(fā)展,智能車已經(jīng)成為自動控制領(lǐng)域內(nèi)的一個研究熱點。本文研究的智能小車可以利用傳感器自動獲取目標道路信息,同時還能自動避開障礙物。
一、總體設(shè)計
為了讓小車精確快速的通過賽道,我們設(shè)計了整個小車的外形(圖1),使小車盡量的小并且輕。所以我們選用了玻璃纖維板作為底盤,并且只使用了兩個電機,用差速轉(zhuǎn)彎的方式控制小車行進,并且自行設(shè)計了電路板。最大化的減小的車的體積和重量,平衡了車的整體重心。
二、硬件設(shè)計
本設(shè)計采用ST公司Cortex-M4驅(qū)動的32位閃存微處理器STM32F405作為硬件平臺,配以電源模塊、電機驅(qū)動模塊、傳感器信號輸入等相應的外圍電路和輸入輸出接口電路等,構(gòu)成一套完整的硬件系統(tǒng)(見圖2)。
(二)核心微處理器
本系統(tǒng)采用STM32F405作為核心微處理器,這是由ST公司年推出的ARMCortex-M4處理器,是ARM專門開發(fā)的最新嵌入式處理器。
在系統(tǒng)中,單片機主要執(zhí)行以下工作:
1.采集紅外測障傳感器信號,獲取賽道路況信息;
2.采集編碼器脈沖數(shù),進行速度PID環(huán)的運算;
3.輸出所需的左右輪PWM。
(三)電機驅(qū)動模塊
本系統(tǒng)采用H橋集成芯片ZXMHC3F381N8作為電機驅(qū)動芯片,該芯片由4個MOS管集成而成,能滿足系統(tǒng)電機的工作轉(zhuǎn)矩和轉(zhuǎn)速。
本智能小車中采用脈寬調(diào)制方式(即PWM,PulseWidth Modulation)來調(diào)整電機的轉(zhuǎn)速和轉(zhuǎn)向。脈寬調(diào)制是通過改變發(fā)出的脈沖寬度來調(diào)節(jié)輸入到電機的平均電壓,也就是單片機提供給電機的信號是方波,通過不同方波的平均電壓不同來改變電機轉(zhuǎn)速。
(四)紅外測障傳感器
紅外測障傳感器(圖4)連接到主控制板板數(shù)字輸入口上。通過M3螺絲將傳感器模塊直接固定在智能小車底盤上。
紅外測障傳感器在使用過程中,當前方有障礙物時,發(fā)射的紅外就會被反射回來,紅外接收傳感器接收到反射光,認為此時傳感器前方有障礙物。單片機采集到此信號后,控制小車運動。
通過調(diào)節(jié)紅外測障傳感器上的電位器來改變其檢測距離。當順時針旋轉(zhuǎn)電位器時,紅外發(fā)射變強,檢測距離變遠;當逆時針旋轉(zhuǎn)電位器時,紅外發(fā)射變?nèi)?,檢測距離變近。
在使用中,紅外測障傳感器對于不同顏色與粗糙程度的障礙物,使用中其檢測距離不一樣。當障礙物顏色是黑色或深色時,會吸收大部分紅外光,只反射回一小部分,有時會使紅外接收傳感器接收到的紅外光強度不夠,不足以產(chǎn)生有障礙的信號;當障礙物顏色是白色或淺色時,正好相反。
三、程序設(shè)計
系統(tǒng)電機使用閉環(huán)控制系統(tǒng),在采集到編碼器的脈沖信號后,進行速度PID閉環(huán)的運算。通過定期檢測紅外測障的數(shù)據(jù),獲得跑道數(shù)據(jù)信息后,進行路徑規(guī)劃,輸出所需的左右輪的目標速度。加入PID運算??刂戚喫僖酝瓿尚≤嚤苷闲旭?。圖5是程序流程圖。
其中stateL代表左紅外測障傳感器狀態(tài),若為“1”則表明未檢測到左邊緣,反之則表明檢測到左邊緣;stateR代表右紅外測障傳感器狀態(tài),若為“1”則表明未檢測到右邊緣,反之則表明檢測到右邊緣;stateM代表中紅外測障傳感器狀態(tài),若為“1”則表明未檢測到前邊緣,反之則表明檢測到前邊緣。
在方向控制上,通過左右輪的轉(zhuǎn)速差來控制。左輪較右輪轉(zhuǎn)速快,則控制智能車右轉(zhuǎn),反之則控制智能車左轉(zhuǎn)。
四、結(jié)束語
本文以追求智能車避障行駛穩(wěn)定性為前提,提出了智能車的整體設(shè)計思想,硬件設(shè)計,軟件設(shè)計。在機械結(jié)構(gòu)方面,我們以電腦鼠作為設(shè)計思想,設(shè)計了輕巧的車體結(jié)構(gòu)。在電路方面,我們以模塊形式分類,在最小系統(tǒng)、主板、電機驅(qū)動等模塊分別設(shè)計,經(jīng)過不斷實驗,最后決定了我們最終的電路圖。在程序方面,我們使用C語言編程,經(jīng)過不斷討論、改進,終于設(shè)計出一套比較通用穩(wěn)定的智能避障程序。在這套算法中,我們結(jié)合路況調(diào)整車速,保證在最短時間內(nèi)避障跑完全程。
參考文獻:
[1]卓晴.學做智能車:挑戰(zhàn)“飛思卡爾”杯[M].北京:北京航空航天大學出版社,2007.
[2]黃志偉.STM32F32位ARM微控制器應用設(shè)計與實踐[M].北京:北京航空航天大學出版社,2012.
[3]譚浩強.C程序設(shè)計[M].北京:清華大學出版社,2003.
[4]高海賓.AltiumDesigner10從入門到精通[M].北京:機械工業(yè)出版社,2012.