基于AT89S52嵌入式系統(tǒng)智能機(jī)器人設(shè)計方案
1 引言
在信息技術(shù)的飛速發(fā)展,計算機(jī),通訊、消費電子三種技術(shù)合一的后PC的時代,雖然計算機(jī)和網(wǎng)絡(luò)已經(jīng)全面滲透到日常生活的每一個角落,但各種各樣的新型嵌入式接入設(shè)備已經(jīng)成為當(dāng)前的主流產(chǎn)品。任何一個普通人都可能擁有幾十種嵌入式技術(shù)的電子產(chǎn)品,小到手表、手機(jī)、mp3播放器、PDA等微型數(shù)字化產(chǎn)品,大到智能家電、網(wǎng)絡(luò)家電、車載電子設(shè)備等都離不開嵌入式技術(shù)。作為嵌入式技術(shù)的一個重要的研究分支——機(jī)器人技術(shù),目前在國內(nèi)外研究的如火如荼,各種各樣的工業(yè)機(jī)器人和服務(wù)機(jī)器人已經(jīng)開始應(yīng)用到人們的生產(chǎn)和生活當(dāng)中,使用機(jī)器人的優(yōu)勢已經(jīng)被人們廣泛認(rèn)可,并正在成為我們?nèi)粘9ぷ骱蜕畹囊徊糠帧1疚睦肁T89S52設(shè)計了一種嵌入式智能尋跡機(jī)器人,在傳感器、電機(jī)驅(qū)動和軟件的控制下,能夠智能地完成迷宮行走路線探測的任務(wù),與傳統(tǒng)的遙控玩具車相比,具有一定的獨立性和智能性,是未來智能玩具車的一種雛形。
2 系統(tǒng)的硬件架構(gòu)和工作原理
嵌入式智能尋跡機(jī)器人的硬件架構(gòu)如圖1。以單片機(jī)AT89S52為核心,外圍由電機(jī)驅(qū)動模塊、電機(jī)電源模塊、主板電源模塊、通訊模塊、回避障礙模塊以及在線編程模塊等組成。紅外光電傳感器通過主板的P8、P9、P10接口連接到 AT89S52的P0.5、P0.6和P0.7端口,其中P0.5 = 0,表示前方有障礙;P0.6 = 0 ,表示左方有障礙; P0.7=0,表示右方有障礙。左右電機(jī)通過主板的P5接口,連接到主板電機(jī)驅(qū)動模塊。
上電后,通過傳感器采集迷宮擋板的信號來控制端口P0的低五位,實現(xiàn)左右電機(jī)的正/反轉(zhuǎn),從而使機(jī)器人做左轉(zhuǎn)、右轉(zhuǎn)、直線前進(jìn)等動作,完成在迷宮中從入口到出口的行進(jìn)過程。
3 系統(tǒng)接口電路設(shè)計
3.1 微控制器模塊
AT89S52是一個低功耗、高性能CMOS 8位單片機(jī),片內(nèi)有8KB ISP的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。
AT89S52有40個引腳,片內(nèi)有8KB Flash程序存儲器,256B的RAM,32個外部雙向輸入/輸出口,5個中斷優(yōu)先級,2層中斷嵌套,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器等。
在開發(fā)過程中使用開發(fā)板,以方便程序的調(diào)試和整機(jī)的測試,待系統(tǒng)調(diào)試完成后,將單片機(jī)從開發(fā)板上取下,安裝在機(jī)器人系統(tǒng)板的單片機(jī)座中,由于設(shè)計中的機(jī)器人需要完成的任務(wù)比較簡單,因此只在機(jī)器人系統(tǒng)板的單片機(jī)系統(tǒng)中保留了晶振和復(fù)位電路,取消了JTAG編程口等冗余電路。
3.2 傳感器模塊
光電傳感器的工作原理是傳感器紅外發(fā)射管發(fā)射出紅外光,接收管根據(jù)反射回來的紅外光強度大小來計數(shù)的,故被檢測的部件或物體表面必須有黑白相間的部位用于吸收和反射紅外光,這樣接收管才能處于有效的截止和飽和區(qū)以達(dá)到計數(shù)的目的。傳感器的檢測與調(diào)節(jié)電路如圖2所示。圖中的R3用于調(diào)節(jié)比較器的門限電壓,經(jīng)示波器觀察,輸出波形相當(dāng)規(guī)則,可以直接供單片機(jī)查詢使用,而且經(jīng)驗證給此電路供電的電池壓降較小。紅外光電傳感器通過主板P8、P9、P10接口連接到AT89S52的P0.5、P0.6和P0.7端口。其中P0.5 = 0,表示前方有障礙;P0.6 = 0 ,表示左方有障礙; P0.7=0,表示右方有障礙。
3.3 直流電機(jī)驅(qū)動電路與電源模塊
直流電機(jī)通過主板的P5接口連接到主板的驅(qū)動模塊上。本文采用L298作為電機(jī)的驅(qū)動芯片,L298的5、7、10、12四個引腳連接到單片機(jī)上,通過對單片機(jī)的編程就可以實現(xiàn)兩組直流電機(jī)的正反轉(zhuǎn)等功能。由于單片機(jī)的電壓在4.8V左右,故采用VFM升壓型電源芯片,為單片機(jī)及外圍電路提供5V左右的電壓。
4 軟件設(shè)計模塊
4.1 軟件開發(fā)環(huán)境與搜索算法
本文采用Keil U Version2 作為系統(tǒng)的開發(fā)環(huán)境,在程序設(shè)計中采用C語言和匯編語言混合編程。在軟件算法上,考慮到深度優(yōu)先搜索算法的時空效率和迷宮地形的復(fù)雜程度成正比,即迷宮越復(fù)雜,搜索出口的時間就越長。本文采用了一種稱為左手(或右手)法則的迷宮路徑搜索策略,即在迷宮中一直沿著左側(cè)(或右側(cè))的墻尋找,就可以找到出口。
相對于深度優(yōu)先搜索法,左手(或右手)法則的空間占用與迷宮復(fù)雜程度無關(guān),機(jī)器人搜索路徑的選擇只與當(dāng)前結(jié)點有關(guān),不需要回溯。同時,硬件的制造精度要求不高,不需要精確的控制機(jī)器人的移動距離和移動方向,方便了驅(qū)動設(shè)計。為便于算法的實現(xiàn),本文設(shè)定了如下約束條件:
1.在算法中不管迷宮地形有多么復(fù)雜,均由直線、死路、丁字形、十字形、轉(zhuǎn)角形和終點七個基本地形構(gòu)成。
2.按分岔的多少將分岔口分為二岔口和三岔口(一般沒有四岔口),而將分岔口前面的岔路按從右到左的順序分別稱為第一岔路、第二岔路、第三岔路(十字型才有)。二岔路有三種不同的形式,第一種是前進(jìn)的路線右邊出現(xiàn)一條岔路(右邊的岔路稱為第一岔路、前方稱為第二岔路);第二種是在前進(jìn)的路線左邊出現(xiàn)一條岔路(前方稱為第一岔路、左邊的岔路稱為第二岔路);第三種是丁字路口(右邊的岔路稱為第一岔路、左邊的岔路稱為第二岔路)。對于這三種情況,算法對應(yīng)的程序由主程序、走直線子程序、左轉(zhuǎn)子程序、右轉(zhuǎn)子程序和校正子程序組成。主程序起到導(dǎo)向和決策的功能,決定機(jī)器人什么時候該做什么。機(jī)器人的其他功能通過調(diào)用具體的子程序來實現(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)新點
本文對基于AT89S52的嵌入式智能尋跡機(jī)器人的硬件架構(gòu)進(jìn)行了探討,將左手(或右手)法則用于尋跡機(jī)器人行走路線搜索,重點討論了基于 AT89S52的光電傳感器模塊、直流電機(jī)驅(qū)動模塊、電源模塊等的電路實現(xiàn)技術(shù),經(jīng)過反復(fù)測試,機(jī)器人能夠在軟件的控制下,無需任何外界力量就可以智能地完成從迷宮入口走到出口的尋跡任務(wù)。創(chuàng)新點在于通過光電傳感器自動感知障礙物,并利用軟件控制機(jī)器人左/右轉(zhuǎn)以及直線行走,對復(fù)雜路徑探測是一種嘗試,特別適合人無法到達(dá)的環(huán)境路徑探測,系統(tǒng)成本低,可靠性高,反應(yīng)靈敏,對智能玩具的設(shè)計與開發(fā)也具有一定的參考價值。