葛濤+++徐運(yùn)德+++陳顯東+++段紅委
摘 要:走迷宮的機(jī)器人是移動(dòng)機(jī)器人路徑規(guī)劃算法的典型應(yīng)用,在國(guó)際上迷宮機(jī)器人一直是控制領(lǐng)域和計(jì)算機(jī)領(lǐng)域的研究熱點(diǎn)問(wèn)題,文章結(jié)合迷宮機(jī)器人走迷宮的實(shí)際特點(diǎn),對(duì)機(jī)器人走迷宮的一些算法進(jìn)行了研究和改進(jìn),從而實(shí)現(xiàn)了機(jī)器人在無(wú)人為干預(yù)下自主走迷宮的目標(biāo)。
關(guān)鍵詞:迷宮機(jī)器人;單片機(jī);數(shù)據(jù)通信;智能化
1 走迷宮的機(jī)器人設(shè)計(jì)的目的
隨著科學(xué)技術(shù)的高速發(fā)展,國(guó)內(nèi)的教育和科研機(jī)構(gòu)也日益關(guān)注機(jī)器人事業(yè),有關(guān)科研工作在深度和規(guī)模上逐漸提高。一些著名高校基本形成了完整的研究體系,對(duì)推動(dòng)高校的科技創(chuàng)新和產(chǎn)學(xué)研一體化產(chǎn)生了重要作用,因此我們將設(shè)計(jì)一種機(jī)器人,能夠在迷宮中尋找出最短路徑。
2 走迷宮的機(jī)器人系統(tǒng)設(shè)計(jì)
本設(shè)計(jì)以STC89C52單片機(jī)系統(tǒng)為控制中心,通過(guò)4路紅外電路檢測(cè)黑線,并保證小車能夠按照黑線前行,而當(dāng)單片機(jī)檢測(cè)到需要轉(zhuǎn)向的傳感器信號(hào)時(shí),單片機(jī)通過(guò)改變PWM波的占空比來(lái)調(diào)整小車兩側(cè)的電機(jī)轉(zhuǎn)速,從而使其兩側(cè)輪產(chǎn)生速度差,以實(shí)現(xiàn)小車的轉(zhuǎn)向。同時(shí)超聲波探測(cè)周圍障礙物,并通過(guò)WIFI模塊實(shí)時(shí)傳輸給計(jì)算機(jī)。小車遍歷整個(gè)迷宮區(qū)域,同時(shí)計(jì)算機(jī)繪制出迷宮概況,并用遞歸算法計(jì)算出最短路徑。
3 走迷宮的機(jī)器人硬件設(shè)計(jì)
3.1 總體硬件結(jié)構(gòu)圖
說(shuō)明:小車以STC89C52單片機(jī)控制器,采用紅外傳感器及其處理模塊實(shí)現(xiàn)對(duì)黑線的循跡;通過(guò)單片機(jī)產(chǎn)生PWM波對(duì)電機(jī)進(jìn)行驅(qū)動(dòng)并通過(guò)轉(zhuǎn)速對(duì)小車的方向和速度進(jìn)行控制;用WIFI模塊將小車周邊障礙物情況傳送給電腦,電腦經(jīng)過(guò)運(yùn)算后將最優(yōu)路徑傳輸回小車。數(shù)據(jù)采集系統(tǒng)以單片機(jī)為控制核心,模擬實(shí)況、算法分析由計(jì)算機(jī)完成。
3.2 微處理器的選擇
單片機(jī)我們選用STC89C52,該單片機(jī)是宏晶公司推出的新一代單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī);內(nèi)部集成512字節(jié)RAM,具有EEPROM功能和看門狗功能,可上電擦除;通用I/O口32個(gè),3個(gè)16位定時(shí)器/計(jì)數(shù)器,且功耗低。對(duì)于該項(xiàng)目,晶振不能采用常用12兆晶振,否則通信時(shí)便會(huì)產(chǎn)生積累誤差,進(jìn)而產(chǎn)生波特率誤差,影響通信的同步性。采用11.0592兆晶振可以得到非常準(zhǔn)確的數(shù)值,方便通信。
3.3 WIFI模塊
WIFI模塊我們采用的是ESP8266,它是一款超低功耗的UART-WiFi傳輸模塊,擁有較小封裝尺寸和超低能耗技術(shù),專為移動(dòng)設(shè)備和物聯(lián)網(wǎng)應(yīng)用設(shè)計(jì),可將用戶的物理設(shè)備連接到WiFi無(wú)線網(wǎng)絡(luò)上,進(jìn)行互聯(lián)網(wǎng)或局域網(wǎng)通信,實(shí)現(xiàn)聯(lián)網(wǎng)功能;且支持AT+控制指令集。
3.4 超聲波測(cè)障模塊
該模塊采用HC-SR04,具有體積小,精確度強(qiáng)等優(yōu)點(diǎn);具有2cm-400cm的非接觸式距離感測(cè)功能,可用于障礙物測(cè)量。其基本工作原理是:采用IO口TRIG觸發(fā)測(cè)距,但至少要給10us的高電平信號(hào)才能觸發(fā);模塊自動(dòng)發(fā)送8個(gè)40kHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;若有信號(hào)返回,則通過(guò) I/O口ECHO 輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。只需5V電源供電,TRIG 觸發(fā)控制信號(hào)輸入,ECHO回響信號(hào)輸出等。
3.5 由于小車底座集成了電池槽和電源轉(zhuǎn)換,并帶有兩臺(tái)電機(jī),所以不需要考慮電池和電機(jī)的選擇。
4 走迷宮的機(jī)器人軟件設(shè)計(jì)
4.1 遍歷算法
我們采用小車遍歷迷宮算法,迷宮的線路用黑線搭建進(jìn)行模擬,橫豎各8條,每一個(gè)交點(diǎn)為一個(gè)坐標(biāo)點(diǎn) ,用二維數(shù)組a[8][8]表示(取左上角為起點(diǎn),右下角為終點(diǎn),總共64個(gè)交點(diǎn))。
小車初始點(diǎn)為a[0][0],在沒(méi)遇到結(jié)點(diǎn)(岔路口)時(shí),判斷前、右、左方向上是否有障礙物,如果有兩個(gè)或者兩個(gè)以上的方向上有時(shí),則按照優(yōu)先前,其次右,最后左的順序(中右法則)。為了記憶迷宮的詳細(xì)信息,需要對(duì)迷宮單元的位置進(jìn)行線路標(biāo)記。走過(guò)的路線用0代替,墻用-1代替,未監(jiān)測(cè)1代替。
如果三個(gè)方向都有障礙物(死路),就需要退回去,這時(shí)就需要記錄上一次結(jié)點(diǎn)的位置。在有兩個(gè)或兩個(gè)以上的方向可走的時(shí)候就將該點(diǎn)坐標(biāo)記錄,當(dāng)進(jìn)入死路的時(shí)候就退回上次結(jié)點(diǎn),并將該死路的入口由0改為-1,然后在進(jìn)行中右法則(如果只剩一個(gè)方向則不需要判斷)。對(duì)于有多個(gè)方向結(jié)點(diǎn),應(yīng)將結(jié)點(diǎn)儲(chǔ)存。
4.2 最短路徑算法
計(jì)算機(jī)計(jì)算最短路徑遞歸算法:迷宮為一個(gè)8*8的二維數(shù)組;0表示路,-1表示墻,1表示未探索區(qū)域,然后求從入口,到出口的最短路程。
從起點(diǎn)開始出發(fā)(初始點(diǎn)賦值為1),根據(jù)中右定則向四個(gè)方向查找(先中其次右最后左),每確定一個(gè)方向就對(duì)前方的點(diǎn)賦值為此點(diǎn)+1,走過(guò)的路徑也可以重復(fù)行走。但有一個(gè)條件,就是本點(diǎn)+1必須小于已走過(guò)的點(diǎn)的值(墻不能走),如果本點(diǎn)+1大于已走過(guò)的點(diǎn)的值就退出,這樣遞歸調(diào)用,直到找到終點(diǎn)為止。
遞歸每成功調(diào)用一次該坐標(biāo)點(diǎn)的值就為1,將所有1用直線連接起來(lái),就可得到最短距離。
5 結(jié)束語(yǔ)
本課題智能機(jī)器人擁有主動(dòng)避障功能,自主識(shí)別障礙物并判斷可行走路線,能夠在錯(cuò)綜復(fù)雜的環(huán)境規(guī)劃出最短路徑,可以應(yīng)用到探測(cè)未知區(qū)域,例如實(shí)現(xiàn)管道故障排查和路況檢測(cè),或利用其物理特性實(shí)現(xiàn)非接觸實(shí)時(shí)測(cè)量,并且不受光線影響,例如實(shí)現(xiàn)夜間避障。使其智能化后,可在環(huán)境比較惡劣或者對(duì)人體有危險(xiǎn)的地方工作,比如外星探測(cè)、火場(chǎng)救人、處理危險(xiǎn)源、進(jìn)行水下操作。同時(shí)還可以應(yīng)用到無(wú)人駕駛公交、工業(yè)自動(dòng)化控制運(yùn)輸?shù)确矫?,有著廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1]童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ)(第四版)[M].高等教育出版社.
[2]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版)[M].高等教育出版社.
[3]傳感器原理及其應(yīng)用[M].電子科技大學(xué)出版社.
[4]超聲波探測(cè)器HC-SR04官方文件,WIFI模塊ESP8266官方使用手冊(cè)[Z].
作者簡(jiǎn)介:葛濤(1995-),男,漢族,山東省菏澤市人,本科,單位:江西科技師范大學(xué),專業(yè):電子信息工程。