王 露
基于STM32的智能小車
王 露

王 露 鄧 豪
西南科技大學(xué)信息工程學(xué)院
設(shè)計并實現(xiàn)一種基于 STM32單片機控制的自主尋線、避障、火焰及斜坡跌落檢測等多功能的智能小車。此智能小車可通過火焰?zhèn)鞲衅鳈z測火焰,調(diào)制激光檢測軌道信息,光電接觸式開關(guān)檢測障礙物,陀螺儀實現(xiàn)對軌道斜坡的檢測。實驗證明小車巡線穩(wěn)定、避障精準(zhǔn)、火焰檢測靈敏精確,而且短時高效完成整個路徑及各節(jié)點任務(wù)。
隨著科學(xué)技術(shù)的迅猛發(fā)展,智能化早已成為時下最熱門的課題,相較于電子行業(yè)來說具有道路自動識別功能的智能車更是目前研究的熱點。智能車是當(dāng)今智能機器人研究領(lǐng)域的一個重要分支,它是人工智能,自動控制,計算機等多個學(xué)科領(lǐng)域的交叉與綜合。本文介紹的智能小車以STM32單片機為主控系統(tǒng),小車在如圖1所示的路線示意圖上自主前進,在行進過程中小車能準(zhǔn)確檢測到空節(jié)點、火焰,障礙物等并完成相應(yīng)的節(jié)點任務(wù),最終高效完成各節(jié)點任務(wù)之后到達終點。

圖1 小車路線示意圖
系統(tǒng)研究方案如圖2所示,該方案主要通過巡線模塊對路徑信息的檢測,并反饋至控制系統(tǒng),控制系統(tǒng)通過調(diào)控電機的運行完成系統(tǒng)任務(wù)全路徑的行進,并在行進過程中精確完成障礙物、空節(jié)點、火焰等節(jié)點任務(wù)檢測及相關(guān)行為。

圖2 系統(tǒng)框架
該巡線小車智能控制系統(tǒng)主要由以下模塊組成,分別是主控模塊、巡線模塊、電機驅(qū)動模塊、電源模塊及節(jié)點任務(wù)模塊。系統(tǒng)以STM32單片機作為控制核心。采用調(diào)制激光傳感器進行路徑信息采集,將實際路徑信號轉(zhuǎn)換為電信號傳送到單片機進行處理,然后結(jié)合PID算法以及記憶算法實現(xiàn)路徑最優(yōu)及路徑記憶;對于障礙物的檢測,可采用光電開關(guān)進行檢測并靈活避障;采用火焰?zhèn)鞲衅鳈z測火焰,通過火焰反射紅外線進行檢查其亮度高度并將信息傳達給控制系統(tǒng),系統(tǒng)通過控制相關(guān)設(shè)備進行滅火行為;當(dāng)小車到達斜坡頂端時,采用陀螺儀與光電開關(guān)聯(lián)合的方法檢測是否小車已到達斜坡頂端,完成路徑行走中的跌落檢測任務(wù),并通過控制系統(tǒng)調(diào)節(jié)小車的運行方向。
該系統(tǒng)電機驅(qū)動模塊選用L298N電機驅(qū)動芯片,驅(qū)動兩個大功率直流電機運行 ,并且通過光耦隔離器避免了因電機高速旋轉(zhuǎn)產(chǎn)生的較大感應(yīng)電動勢對前級電路產(chǎn)生影響。電源模塊通過LM7809、LM7805等高性能穩(wěn)壓芯片,給系統(tǒng)提供穩(wěn)定可靠的電壓。
主控模塊
STM32是ARM最新的Cortex-M4內(nèi)核,是一款低功耗、高性能、集成度高、接口豐富的處理器。優(yōu)先級搶占的中斷控制器,支持中斷自動嵌套,硬件完成現(xiàn)場保護與恢復(fù)。本小車以STM32為控制核心,利用調(diào)制激光傳感器收發(fā)道路信息,充分發(fā)揮STM32高速的運算、處理數(shù)據(jù)的優(yōu)勢實現(xiàn)小車自動識別線路并按跡行進;STM32的配置選擇通用寄存器,調(diào)節(jié)PWM占空比實現(xiàn)小車速度的調(diào)節(jié),根據(jù)傳感器采集到的路徑位置調(diào)整舵機轉(zhuǎn)動的角度,使得小車巡線精確。
電源模塊
本小車所使用的為STM32的控制系統(tǒng),該系統(tǒng)的供電電壓為3.3V,后輪電機供電電壓為12V,為安全起見,使用LM7809、LM7805、ASM1117三款穩(wěn)壓芯片實現(xiàn)穩(wěn)壓供出3.3V直流電。
巡線模塊
本次路徑信息獲取及巡行選用調(diào)制激光的方法,使得巡線小車保證較快速度。對于小車進行高速路徑信息獲取及行進,遠的前瞻是必不可少的。而反射式紅外光電對管有效工作距離有限,最大一般不超過20cm,為獲得較遠前瞻,使用時往往加了一個很長的前伸支架,這樣很容易破壞車體結(jié)構(gòu)平衡,影響車體穩(wěn)定性;但使用調(diào)制激光一般能達到50cm前瞻,且它是采用經(jīng)調(diào)制后的激光,接收管也只接受對應(yīng)調(diào)制頻率的反射光,在抗干擾能力方面優(yōu)于一般反射式紅外光電對管。

圖3 電源模塊電路原理圖

圖4 調(diào)制激光器使用原理圖
調(diào)制激光的使用原理圖如圖4,JP1為調(diào)制管,JP2為調(diào)制接受管,D2為激光發(fā)射管,D1為電平指示LED;使用時單片機通過IN端口控制D2和JP1工作,當(dāng)JP2接受到反射回的調(diào)制激光時,OUT端口輸出低電平,反之輸出高電平,為提高接受管靈敏度,接收管可配合聚光透鏡使用。由以上信息可以看出調(diào)制激光的使用電路也較為簡單。
在實際使用過程中,激光傳感器的裝配方式也是十分重要的,由于設(shè)計路徑寬度為3cm,所以設(shè)計的激光傳感器可采用以下方案排布:
如圖5所示,在實施中采用7個激光發(fā)射管,發(fā)射管中間一個主要檢測黑線,初步判斷小車行使路線是直道還是彎道,其兩邊兩個激光發(fā)射管設(shè)計間距約3.5cm,稍大于導(dǎo)航線的寬度,可以實現(xiàn)對場地信息的精確把控,其余4個激光發(fā)射管同樣具有必不可少的檢測作用。為了節(jié)約成本和排除相鄰發(fā)射管相互影響的可能,電路設(shè)計只使用了3個調(diào)制接收管,巡線時,采用分時打開激光發(fā)射管的方式,如:先打開從左到右第1、4、7個發(fā)射管,再打開第2、5個發(fā)射管,最后打開第3、6個發(fā)射管,再通過相關(guān)算法對檢測到的信息進行處理就能準(zhǔn)確地得到當(dāng)前場地信息了。

圖5 激光傳感器裝配示意圖
電機驅(qū)動電路
巡線小車在行駛的過程中的主要動力是靠后輪的兩個直流減速電機驅(qū)動的,電機性能的好壞直接影響小車整體行駛效果。本設(shè)計中采用L298中兩個H橋驅(qū)動電路來控制電機運轉(zhuǎn)通過控制三極管的導(dǎo)通狀態(tài)使電機達到正反轉(zhuǎn)的目的,并通過調(diào)整輸入H橋電路的PWM來控制電機的轉(zhuǎn)速,實現(xiàn)小車高速精確地路徑巡行。
軟件設(shè)計
軟件設(shè)計流程如圖6所示。

圖6 軟件設(shè)計流程圖
用A代表前進;用B代表后退;用L代表左轉(zhuǎn);用R代表右轉(zhuǎn);圖7為小車在前進的過程中可能會遇到一下這些路口的情況。

圖7 路口情況分布圖
記憶算法即是利用字符串匹配算法消去小車走的彎路,根據(jù)迷宮的組合可能有以下不同的結(jié)果,例如:

同樣也可以得到其他的不同的組合的情況
“ABA”=”B”
“ABR”=”L”
“RBA”=”L”
“RBR”=”A”
“RBL”=”B”
“LBR”=”B”
利用這些組合,進行字符串的匹配以及替換。以此可以通過不斷的匹配以及替代得出最短路徑,小車就可以完成路徑記憶的功能。
本設(shè)計提供一種基于STM32單片機的智能移動小車,小車總體軟硬件開發(fā)成本較低,經(jīng)測試表明巡線效果良好,具有避障、滅火、斜坡檢測及相關(guān)節(jié)點任務(wù)完成等功能。并且在加入迷宮算法及記憶算法后小車可以以最優(yōu)路徑完成循跡。本文提出的基于STM32的智能移動小車可運用于倉庫、超市等地方存取貨物,且其檢測火焰的功能可使得貨物在運輸過程中不受損害等。
10.3969/j.issn.1001-8972.2015.01.034