王 露
基于STM32的智能小車
王 露
王 露 鄧 豪
西南科技大學(xué)信息工程學(xué)院
設(shè)計(jì)并實(shí)現(xiàn)一種基于 STM32單片機(jī)控制的自主尋線、避障、火焰及斜坡跌落檢測等多功能的智能小車。此智能小車可通過火焰?zhèn)鞲衅鳈z測火焰,調(diào)制激光檢測軌道信息,光電接觸式開關(guān)檢測障礙物,陀螺儀實(shí)現(xiàn)對(duì)軌道斜坡的檢測。實(shí)驗(yàn)證明小車巡線穩(wěn)定、避障精準(zhǔn)、火焰檢測靈敏精確,而且短時(shí)高效完成整個(gè)路徑及各節(jié)點(diǎn)任務(wù)。
隨著科學(xué)技術(shù)的迅猛發(fā)展,智能化早已成為時(shí)下最熱門的課題,相較于電子行業(yè)來說具有道路自動(dòng)識(shí)別功能的智能車更是目前研究的熱點(diǎn)。智能車是當(dāng)今智能機(jī)器人研究領(lǐng)域的一個(gè)重要分支,它是人工智能,自動(dòng)控制,計(jì)算機(jī)等多個(gè)學(xué)科領(lǐng)域的交叉與綜合。本文介紹的智能小車以STM32單片機(jī)為主控系統(tǒng),小車在如圖1所示的路線示意圖上自主前進(jìn),在行進(jìn)過程中小車能準(zhǔn)確檢測到空節(jié)點(diǎn)、火焰,障礙物等并完成相應(yīng)的節(jié)點(diǎn)任務(wù),最終高效完成各節(jié)點(diǎn)任務(wù)之后到達(dá)終點(diǎn)。
圖1 小車路線示意圖
系統(tǒng)研究方案如圖2所示,該方案主要通過巡線模塊對(duì)路徑信息的檢測,并反饋至控制系統(tǒng),控制系統(tǒng)通過調(diào)控電機(jī)的運(yùn)行完成系統(tǒng)任務(wù)全路徑的行進(jìn),并在行進(jìn)過程中精確完成障礙物、空節(jié)點(diǎn)、火焰等節(jié)點(diǎn)任務(wù)檢測及相關(guān)行為。
圖2 系統(tǒng)框架
該巡線小車智能控制系統(tǒng)主要由以下模塊組成,分別是主控模塊、巡線模塊、電機(jī)驅(qū)動(dòng)模塊、電源模塊及節(jié)點(diǎn)任務(wù)模塊。系統(tǒng)以STM32單片機(jī)作為控制核心。采用調(diào)制激光傳感器進(jìn)行路徑信息采集,將實(shí)際路徑信號(hào)轉(zhuǎn)換為電信號(hào)傳送到單片機(jī)進(jìn)行處理,然后結(jié)合PID算法以及記憶算法實(shí)現(xiàn)路徑最優(yōu)及路徑記憶;對(duì)于障礙物的檢測,可采用光電開關(guān)進(jìn)行檢測并靈活避障;采用火焰?zhèn)鞲衅鳈z測火焰,通過火焰反射紅外線進(jìn)行檢查其亮度高度并將信息傳達(dá)給控制系統(tǒng),系統(tǒng)通過控制相關(guān)設(shè)備進(jìn)行滅火行為;當(dāng)小車到達(dá)斜坡頂端時(shí),采用陀螺儀與光電開關(guān)聯(lián)合的方法檢測是否小車已到達(dá)斜坡頂端,完成路徑行走中的跌落檢測任務(wù),并通過控制系統(tǒng)調(diào)節(jié)小車的運(yùn)行方向。
該系統(tǒng)電機(jī)驅(qū)動(dòng)模塊選用L298N電機(jī)驅(qū)動(dòng)芯片,驅(qū)動(dòng)兩個(gè)大功率直流電機(jī)運(yùn)行 ,并且通過光耦隔離器避免了因電機(jī)高速旋轉(zhuǎn)產(chǎn)生的較大感應(yīng)電動(dòng)勢對(duì)前級(jí)電路產(chǎn)生影響。電源模塊通過LM7809、LM7805等高性能穩(wěn)壓芯片,給系統(tǒng)提供穩(wěn)定可靠的電壓。
主控模塊
STM32是ARM最新的Cortex-M4內(nèi)核,是一款低功耗、高性能、集成度高、接口豐富的處理器。優(yōu)先級(jí)搶占的中斷控制器,支持中斷自動(dòng)嵌套,硬件完成現(xiàn)場保護(hù)與恢復(fù)。本小車以STM32為控制核心,利用調(diào)制激光傳感器收發(fā)道路信息,充分發(fā)揮STM32高速的運(yùn)算、處理數(shù)據(jù)的優(yōu)勢實(shí)現(xiàn)小車自動(dòng)識(shí)別線路并按跡行進(jìn);STM32的配置選擇通用寄存器,調(diào)節(jié)PWM占空比實(shí)現(xiàn)小車速度的調(diào)節(jié),根據(jù)傳感器采集到的路徑位置調(diào)整舵機(jī)轉(zhuǎn)動(dòng)的角度,使得小車巡線精確。
電源模塊
本小車所使用的為STM32的控制系統(tǒng),該系統(tǒng)的供電電壓為3.3V,后輪電機(jī)供電電壓為12V,為安全起見,使用LM7809、LM7805、ASM1117三款穩(wěn)壓芯片實(shí)現(xiàn)穩(wěn)壓供出3.3V直流電。
巡線模塊
本次路徑信息獲取及巡行選用調(diào)制激光的方法,使得巡線小車保證較快速度。對(duì)于小車進(jìn)行高速路徑信息獲取及行進(jìn),遠(yuǎn)的前瞻是必不可少的。而反射式紅外光電對(duì)管有效工作距離有限,最大一般不超過20cm,為獲得較遠(yuǎn)前瞻,使用時(shí)往往加了一個(gè)很長的前伸支架,這樣很容易破壞車體結(jié)構(gòu)平衡,影響車體穩(wěn)定性;但使用調(diào)制激光一般能達(dá)到50cm前瞻,且它是采用經(jīng)調(diào)制后的激光,接收管也只接受對(duì)應(yīng)調(diào)制頻率的反射光,在抗干擾能力方面優(yōu)于一般反射式紅外光電對(duì)管。
圖3 電源模塊電路原理圖
圖4 調(diào)制激光器使用原理圖
調(diào)制激光的使用原理圖如圖4,JP1為調(diào)制管,JP2為調(diào)制接受管,D2為激光發(fā)射管,D1為電平指示LED;使用時(shí)單片機(jī)通過IN端口控制D2和JP1工作,當(dāng)JP2接受到反射回的調(diào)制激光時(shí),OUT端口輸出低電平,反之輸出高電平,為提高接受管靈敏度,接收管可配合聚光透鏡使用。由以上信息可以看出調(diào)制激光的使用電路也較為簡單。
在實(shí)際使用過程中,激光傳感器的裝配方式也是十分重要的,由于設(shè)計(jì)路徑寬度為3cm,所以設(shè)計(jì)的激光傳感器可采用以下方案排布:
如圖5所示,在實(shí)施中采用7個(gè)激光發(fā)射管,發(fā)射管中間一個(gè)主要檢測黑線,初步判斷小車行使路線是直道還是彎道,其兩邊兩個(gè)激光發(fā)射管設(shè)計(jì)間距約3.5cm,稍大于導(dǎo)航線的寬度,可以實(shí)現(xiàn)對(duì)場地信息的精確把控,其余4個(gè)激光發(fā)射管同樣具有必不可少的檢測作用。為了節(jié)約成本和排除相鄰發(fā)射管相互影響的可能,電路設(shè)計(jì)只使用了3個(gè)調(diào)制接收管,巡線時(shí),采用分時(shí)打開激光發(fā)射管的方式,如:先打開從左到右第1、4、7個(gè)發(fā)射管,再打開第2、5個(gè)發(fā)射管,最后打開第3、6個(gè)發(fā)射管,再通過相關(guān)算法對(duì)檢測到的信息進(jìn)行處理就能準(zhǔn)確地得到當(dāng)前場地信息了。
圖5 激光傳感器裝配示意圖
電機(jī)驅(qū)動(dòng)電路
巡線小車在行駛的過程中的主要?jiǎng)恿κ强亢筝喌膬蓚€(gè)直流減速電機(jī)驅(qū)動(dòng)的,電機(jī)性能的好壞直接影響小車整體行駛效果。本設(shè)計(jì)中采用L298中兩個(gè)H橋驅(qū)動(dòng)電路來控制電機(jī)運(yùn)轉(zhuǎn)通過控制三極管的導(dǎo)通狀態(tài)使電機(jī)達(dá)到正反轉(zhuǎn)的目的,并通過調(diào)整輸入H橋電路的PWM來控制電機(jī)的轉(zhuǎn)速,實(shí)現(xiàn)小車高速精確地路徑巡行。
軟件設(shè)計(jì)
軟件設(shè)計(jì)流程如圖6所示。
圖6 軟件設(shè)計(jì)流程圖
用A代表前進(jìn);用B代表后退;用L代表左轉(zhuǎn);用R代表右轉(zhuǎn);圖7為小車在前進(jìn)的過程中可能會(huì)遇到一下這些路口的情況。
圖7 路口情況分布圖
記憶算法即是利用字符串匹配算法消去小車走的彎路,根據(jù)迷宮的組合可能有以下不同的結(jié)果,例如:
同樣也可以得到其他的不同的組合的情況
“ABA”=”B”
“ABR”=”L”
“RBA”=”L”
“RBR”=”A”
“RBL”=”B”
“LBR”=”B”
利用這些組合,進(jìn)行字符串的匹配以及替換。以此可以通過不斷的匹配以及替代得出最短路徑,小車就可以完成路徑記憶的功能。
本設(shè)計(jì)提供一種基于STM32單片機(jī)的智能移動(dòng)小車,小車總體軟硬件開發(fā)成本較低,經(jīng)測試表明巡線效果良好,具有避障、滅火、斜坡檢測及相關(guān)節(jié)點(diǎn)任務(wù)完成等功能。并且在加入迷宮算法及記憶算法后小車可以以最優(yōu)路徑完成循跡。本文提出的基于STM32的智能移動(dòng)小車可運(yùn)用于倉庫、超市等地方存取貨物,且其檢測火焰的功能可使得貨物在運(yùn)輸過程中不受損害等。
10.3969/j.issn.1001-8972.2015.01.034