0 引言
電腦鼠(Micromouse)是智能機電鼠的簡稱,,是一個由微處理器控制的集探測、分析,、行走功能于一體,,能夠自動搜索最佳路徑到達目的地的微型機器人。實際上電腦鼠就是一個電力驅(qū)動小車,,而這個電動小車是由一個或多個微控制器來控制,,通過傳感器和其他各功能器件的配合,具備一定的智能,。同時,,電腦鼠需擁有探測障礙物、行走,、轉(zhuǎn)彎,、加減速和制動等基本功能。
本文是以“IEEE國際電腦鼠競賽”為背景,,以美國Luminary Micro公司生產(chǎn)的ARM CortexM3內(nèi)核的ARM處理器LM3S615為主控制器,,控制和檢測紅外傳感器;微控制器根據(jù)檢測到的傳感信號,,控制電機驅(qū)動電路,,調(diào)整行走,按照載入搜索算法進行迷宮的探測,,尋找最短路徑,,最終實現(xiàn)從起點到終點的沖刺。
1 電腦鼠系統(tǒng)整體設(shè)計方案
如圖1所示,,整個系統(tǒng)可以大致分為以下主要部分:電源模塊,,控制模塊,,執(zhí)行機構(gòu)模塊,傳感器模塊,,機身模塊,。可以做形象的比喻:電源模塊是電腦鼠的葡萄糖,,控制模塊是電腦鼠的大腦,,傳感器模塊是電腦鼠的眼睛,機身模塊是電腦鼠的軀干,,執(zhí)行機構(gòu)是電腦鼠的腿,;各模塊之間相互配合使電腦鼠正常工作并尋找到終點。
2 電腦鼠硬件研究與實現(xiàn)
2.1 電腦鼠硬件設(shè)計原理
本文研究的電腦鼠是一個跨學科的綜合作品,,主要由電源,、傳感器、步進電機,、控制核心電路,、機身5個部分組成,如圖1所示,。所以,,電腦鼠的硬件設(shè)計主要包括電源模塊、微控制器單元模塊,、傳感器模塊,、電機控制模塊4個部分的設(shè)計。其中LM3S615微控制器是電腦鼠的核心,,通過檢測到的傳感器信號,,結(jié)合載入的搜索算法,控制步進電機,,實現(xiàn)電腦鼠在迷宮中的行走,。
2.2 電源模塊
電源模塊包括供電電池和電壓調(diào)節(jié)電路。供電電池為2 200 mAh,,7.4 V的可充電鋰電池,。電機驅(qū)動電壓由電源直接供給;LM3S615微控制器需3.3 V電壓供電,,電壓調(diào)節(jié)電路采用Exar公司生產(chǎn)的SPX1117M3-3.3芯片將電源電壓穩(wěn)至3.3V,;電腦鼠所使用的紅外線傳感器工作電壓為5 V,升壓芯片采用Exar公司生產(chǎn)的SP6641A將已經(jīng)較為穩(wěn)定的3.3 V電壓升至5 V,。
2.3 微控制器單元模塊
本文采用美國Luminary Micro公司生產(chǎn)的CorteX-M3內(nèi)核的ARM處理器LM3S615,,該芯片具有32位RISC性能,具備32 KB單周期FLASH,,8 KB單周期SRAM,,29個中斷,,帶8個優(yōu)先級。微控制器模塊和其他模塊共同構(gòu)成一個閉環(huán)的反饋控制系統(tǒng),,通過對路程信號,、岔口信號和姿勢修正信號的檢測,經(jīng)由LM3S615進行運算,,再將結(jié)果賦給電機執(zhí)行,,由此實現(xiàn)電腦鼠的智能穿越迷宮。
2.4 傳感器模塊
2.4.1 傳感器模塊組成
傳感器模塊采用紅外傳感器:紅外線發(fā)射對管SIR563ST3F和IRM8601S,,紅外線收發(fā)對管IR204和PD204-6B,。紅外線發(fā)射管SIR563ST3F最大輻射角約為30°,工作中心頻率38 kHz,;紅外線接受管IRM8601S為一體式紅外線接收頭,,最佳工作波長940 nm??梢酝ㄟ^設(shè)置不同的發(fā)射頻率來實現(xiàn)用一個紅外傳感器完成遠距和近距探測的功能,。紅外線發(fā)射管IR204和紅外線接收管PD204-6B工作波長均為940 nm,,它們固定在兩輪內(nèi)側(cè),,并在輪內(nèi)貼上黑白碼盤,碼盤隨車輪的轉(zhuǎn)動而轉(zhuǎn)動,,當傳感器正對著碼盤黑色條紋時,,輸出高電平,反之低電平,。通過GPIO口中斷檢測電平變化,,就可以計算并記錄電腦鼠行走的距離。
2.4.2 傳感器模塊功能
(1)路程檢測,。由安裝在兩輪內(nèi)側(cè)的紅外線收發(fā)管IR204和PD204-6B,,對黑白碼盤條紋進行計數(shù),按照迷宮單元的長度為單位進行路程計數(shù),,以記錄電腦鼠在迷宮中的方位坐標,,同時還可以精確地實現(xiàn)轉(zhuǎn)彎。
(2)岔口檢測,。岔口檢測由安裝在正前,、左前、右前的3個紅外線發(fā)射對管SZR563ST3F和IRM8601S實現(xiàn),,工作波長940 nm,,實現(xiàn)遠紅外測距功能,探測前,、左,、右有無障礙,。
(3)姿勢修正。姿勢修正由左右2個紅外線發(fā)射對管SIR563ST3F和IRM8601S實現(xiàn),,發(fā)射信號約30.5 kHz,,實現(xiàn)近紅外測距功能,保持電腦鼠在中軸線附近行走,,避免撞擊迷宮,。值得注意的是,在轉(zhuǎn)彎過程中不要進行姿勢修正,,這樣有可能導致轉(zhuǎn)彎的角度出現(xiàn)偏差,,即電腦鼠只是在前進的過程中才進行姿勢修正。
2.5 電機控制模塊
電機控制模塊主要負責控制電腦鼠的運動,,包括電機和電機驅(qū)動電路兩部分,。電機為兩個兩相四線制步進電機,工作電壓為7.4 V,。電機驅(qū)動芯片采用BA6845FS,,每個芯片包含2個H橋,它的最大驅(qū)動電流為1 A,,且在輸入邏輯的控制下輸出有3種模式:正向,、反向和停止。
3 電腦鼠軟件研究與實現(xiàn)
電腦鼠的軟件部分主要用來檢測迷宮環(huán)境,,傳送控制信號給相應(yīng)的硬件模塊,,對在迷宮中行走的電腦鼠進行制導與導航。其主要由迷宮搜索主程序和其他實現(xiàn)各種功能的子程序組成,,主程序主要起到搜索探測迷宮和決策功能,,而其他各種功能則是通過調(diào)用其相應(yīng)子程序來實現(xiàn)的,搜索流程如圖2所示,。
3.1 迷宮搜索主程序
在沒有預(yù)知迷宮路徑的情況下,,電腦鼠必須優(yōu)先探索迷宮中的所有單元格,直到抵達終點為止,。做這個處理的電腦鼠要隨時知道自己的位置及姿態(tài),,同時要記錄所有訪問過的方塊四周是否有墻壁,并且在搜索過程中盡量避免重復(fù)搜索它搜索過的地方,。迷宮搜索流程圖如圖3所示,。
3.1.1 左手法則
電腦鼠在前進的方向上存在兩條和兩條以上支路時,優(yōu)先考慮左轉(zhuǎn),,其次是向前,,最后才考慮向右。示意圖如圖4所示。
3.1.2 右手法則
電腦鼠在前進方向存在兩條和兩條以上的支路時,,優(yōu)先考慮右轉(zhuǎn),,其次向前,最后才向左,。示意圖如圖4所示,。
3.1.3 求心法則
求心法則就是當電腦鼠有至少兩個方向可以選擇時,則優(yōu)先轉(zhuǎn)向離中心點最近的方向前進,。如圖5所示,,把迷宮分為對等區(qū)域(1,2,,3,,4)??梢杂^察出,,在區(qū)域1中,電腦鼠向右和向上更能接近中心,,其他區(qū)域同理,。如果電腦鼠可供選擇的前進方向包含兩個都有可能是離迷宮中心點最近的方向時,優(yōu)先選擇可以直接前進的方向,,其次選擇只用轉(zhuǎn)90°的方向前進,。如果可前進方向都是遠離中心點的方向時,優(yōu)先選擇直線運行方向,,其次選擇轉(zhuǎn)彎90°的方向,。其搜索示意圖如圖6所示。
3.2 其他功能子程序
3.2.1 路程檢測子程序
通過安裝在兩輪內(nèi)側(cè)的紅外線收發(fā)管和黑白碼盤來測算電腦鼠走過的路程,,確定電腦鼠在迷宮中的位置,并在岔口實現(xiàn)精確的90°和180°轉(zhuǎn)彎,。
3.2.2 岔口檢測子程序
由安裝在正前,、左前、右前方向的3個紅外發(fā)射管發(fā)射38 kHz的信號完成遠距檢測,,根據(jù)傳感器讀入值,,判斷迷宮中障礙信息、路口信息,。
3.2.3 姿勢修正子程序
根據(jù)左右兩側(cè)紅外傳感器接收的反饋信號來判斷電腦鼠偏離迷宮巷道中軸線的程度,,通過調(diào)整步進電機工作脈沖使某一邊電機減速來修正電腦鼠的行駛方向,使其基本行走在中軸線附近,。
3.2.4 轉(zhuǎn)彎子程序
當電腦鼠檢測到岔口,,且需要轉(zhuǎn)彎時,調(diào)用該子程序,。
3.2.5 最優(yōu)路徑子程序
通過對迷宮環(huán)境進行搜索檢測,,數(shù)組自動記錄迷宮地圖信息以及迷宮中每一單元格到起始點的路程,,運行最優(yōu)路徑子程序,就能找到一條從始點到終點的最短路徑,。其實質(zhì)是一種路徑優(yōu)化算法,,常用的算法有等高圖法和蟻群算法。
3.2.6 沖刺子程序
調(diào)用此程序可使電腦鼠循著最短路徑從起點以最快的速度沖到終點,。
4 結(jié)語
本文從分析“IEEE標準電腦鼠”走迷宮比賽規(guī)則入手,,介紹了電腦鼠硬件系統(tǒng)和軟件系統(tǒng)設(shè)計過程和流程?;陔娔X鼠的產(chǎn)品具有廣泛的應(yīng)用場合,,譬如自動盲人導引小車、足球機器人,、滅火機器人,、影像機器人等等。隨著電子技術(shù)的發(fā)展,,對電腦鼠的深入研究將具有很好的發(fā)展和應(yīng)用前景,。