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