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