一種嵌入式智能尋跡機(jī)器人設(shè)計(jì)
3.3 直流電機(jī)驅(qū)動電路與電源模塊
直流電機(jī)通過主板的P5接口連接到主板的驅(qū)動模塊上。本文采用L298作為電機(jī)的驅(qū)動芯片,L298的5、7、10、12四個引腳連接到單片機(jī)上,通過對單片機(jī)的編程就可以實(shí)現(xiàn)兩組直流電機(jī)的正反轉(zhuǎn)等功能。由于單片機(jī)的電壓在4.8V左右,故采用VFM升壓型電源芯片,為單片機(jī)及外圍電路提供5V左右的電壓。
4 軟件設(shè)計(jì)模塊
4.1 軟件開發(fā)環(huán)境與搜索算法
本文采用Keil U Version2 作為系統(tǒng)的開發(fā)環(huán)境,在程序設(shè)計(jì)中采用C語言和匯編語言混合編程。在軟件算法上,考慮到深度優(yōu)先搜索算法的時空效率和迷宮地形的復(fù)雜程度成正比,即迷宮越復(fù)雜,搜索出口的時間就越長。本文采用了一種稱為左手(或右手)法則的迷宮路徑搜索策略,即在迷宮中一直沿著左側(cè)(或右側(cè))的墻尋找,就可以找到出口。
相對于深度優(yōu)先搜索法,左手(或右手)法則的空間占用與迷宮復(fù)雜程度無關(guān),機(jī)器人搜索路徑的選擇只與當(dāng)前結(jié)點(diǎn)有關(guān),不需要回溯。同時,硬件的制造精度要求不高,不需要精確的控制機(jī)器人的移動距離和移動方向,方便了驅(qū)動設(shè)計(jì)。為便于算法的實(shí)現(xiàn),本文設(shè)定了如下約束條件:
1.在算法中不管迷宮地形有多么復(fù)雜,均由直線、死路、丁字形、十字形、轉(zhuǎn)角形和終點(diǎn)七個基本地形構(gòu)成。
2.按分岔的多少將分岔口分為二岔口和三岔口(一般沒有四岔口),而將分岔口前面的岔路按從右到左的順序分別稱為第一岔路、第二岔路、第三岔路(十字型才有)。二岔路有三種不同的形式,第一種是前進(jìn)的路線右邊出現(xiàn)一條岔路(右邊的岔路稱為第一岔路、前方稱為第二岔路);第二種是在前進(jìn)的路線左邊出現(xiàn)一條岔路(前方稱為第一岔路、左邊的岔路稱為第二岔路);第三種是丁字路口(右邊的岔路稱為第一岔路、左邊的岔路稱為第二岔路)。對于這三種情況,算法對應(yīng)的程序由主程序、走直線子程序、左轉(zhuǎn)子程序、右轉(zhuǎn)子程序和校正子程序組成。主程序起到導(dǎo)向和決策的功能,決定機(jī)器人什么時候該做什么。機(jī)器人的其他功能通過調(diào)用具體的子程序來實(shí)現(xiàn)。
4.2 算法流程圖描述
本文所采用的迷宮搜索算法流程如圖3所示。接通電機(jī)和傳感器電源后,單片機(jī)在程序的控制下,根據(jù)傳感器檢測到的值,決定電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。當(dāng)P0.7=1時,表示左方?jīng)]有障礙物,依據(jù)“右手”遍歷算法,機(jī)器人將調(diào)用右轉(zhuǎn)子程序;當(dāng)P0.7=0并且P0.5=0時,機(jī)器人將調(diào)用左轉(zhuǎn)子程序;否則機(jī)器人直線前進(jìn),如此反復(fù)檢測并調(diào)整機(jī)器人的動作,直至機(jī)器人走出迷宮為止。
5 結(jié)論及其創(chuàng)新點(diǎn)
本文對基于AT89S52的嵌入式智能尋跡機(jī)器人的硬件架構(gòu)進(jìn)行了探討,將左手(或右手)法則用于尋跡機(jī)器人行走路線搜索,重點(diǎn)討論了基于AT89S52的光電傳感器模塊、直流電機(jī)驅(qū)動模塊、電源模塊等的電路實(shí)現(xiàn)技術(shù),經(jīng)過反復(fù)測試,機(jī)器人能夠在軟件的控制下,無需任何外界力量就可以智能地完成從迷宮入口走到出口的尋跡任務(wù)。創(chuàng)新點(diǎn)在于通過光電傳感器自動感知障礙物,并利用軟件控制機(jī)器人左/右轉(zhuǎn)以及直線行走,對復(fù)雜路徑探測是一種嘗試,特別適合人無法到達(dá)的環(huán)境路徑探測,系統(tǒng)成本低,可靠性高,反應(yīng)靈敏,對智能玩具的設(shè)計(jì)與開發(fā)也具有一定的參考價值。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論