基于MCS-51單片機(jī)的智能機(jī)器人迷宮車設(shè)計(jì)
(3)洪水算法
洪水算法即使用256 B額外內(nèi)存,會(huì)大幅提高性能。該算法比一般迷宮算法的有效率高20~50倍。同時(shí)可以在內(nèi)存中建立一個(gè)區(qū)域,與實(shí)際中的迷宮格數(shù)一一對(duì)應(yīng)。在實(shí)際使用時(shí)算法并不太復(fù)雜。該額外內(nèi)存區(qū)域稱為“浪頭”,它將體現(xiàn)在內(nèi)存區(qū)域的實(shí)際狀況中如圖9所示。當(dāng)迷宮被淹沒(méi)的時(shí)候,一個(gè)波浪的前頭從目標(biāo)格向外擴(kuò)展。在內(nèi)存區(qū)域中這種單元格是惟一需要處理的,當(dāng)浪頭到達(dá)開(kāi)始的單元格子,機(jī)器人已經(jīng)被淹沒(méi)。通常來(lái)說(shuō),開(kāi)始的單元格可以是任何一個(gè)格子。但是為了方便起見(jiàn),把開(kāi)始點(diǎn)設(shè)在迷宮的第一個(gè)單元格,終點(diǎn)任意。反過(guò)來(lái)也可以把出口放在第一個(gè)單元格,把開(kāi)始點(diǎn)設(shè)在中間或希望的位置。一旦到達(dá)了起點(diǎn)即搜索完成,最短的路徑可以使機(jī)器老鼠移動(dòng)到周圍的格子中數(shù)值比較小的那個(gè)格子去,依次類推機(jī)器老鼠就能走到終點(diǎn)。本文引用地址:http://butianyuan.cn/article/172754.htm
洪水算法的優(yōu)缺點(diǎn):
①按照該算法小車在第一次走迷宮的時(shí)候,必須把迷宮中所有的道路都走一遍。但是該算法可以讓小車走任何迷宮,即使迷宮本身有“孤島”小車一樣可以順利的走出迷宮。
②當(dāng)小車再走第二遍迷宮的時(shí)候小車可以1次性走正確的路線走出迷宮,并且該路線一定為最短的路線。
(4)鋪路算法
在內(nèi)存中建立一個(gè)區(qū)域與實(shí)際中的迷宮格數(shù)一一對(duì)應(yīng),并將所有走過(guò)的路進(jìn)行記憶,如果發(fā)現(xiàn)前方是死胡同或走過(guò)的路就轉(zhuǎn)回前一個(gè)岔道口;在行走過(guò)程中遇岔道口默認(rèn)靠左。因?yàn)橛辛擞洃浌δ?,就可以走第二遍?br /> 鋪路算法的優(yōu)缺點(diǎn):
①運(yùn)用該算法可以走復(fù)雜的迷宮,不存在走不出來(lái)的問(wèn)題。
②運(yùn)用該算法在小車第二次走迷宮的時(shí)候可以一次性的走出迷宮,但是不能保此條道路走的是最短的線路。
這幾種算法各有優(yōu)缺點(diǎn),經(jīng)權(quán)衡比較,最終選擇靠前算法。
1.3 系統(tǒng)運(yùn)行及調(diào)試
程序運(yùn)行時(shí)遇到的問(wèn)題及解決方法:
(1)小車的外殼及輪子是純手工安裝的,精度不是很高,小車在行駛過(guò)程中不能一直走直線,很容易發(fā)生擦墻事故影響小車走迷宮。若是手工制作時(shí)所引起的,可通過(guò)給行駛時(shí)較落后的輪子上繞一些膠帶來(lái)增加輪子的周長(zhǎng)來(lái)解決。也可通過(guò)在電路中加入A/D轉(zhuǎn)換器,對(duì)程序進(jìn)行相對(duì)的改進(jìn),不斷的測(cè)小車與周圍墻壁的距離,保持小車與周圍墻壁保持一定距離來(lái)解決。
(2)采用ST188型紅外線傳感器,易受外界干擾不能準(zhǔn)確地檢測(cè)墻壁信號(hào),尤其是在強(qiáng)光下無(wú)法正常運(yùn)行,對(duì)某些材料反射的光無(wú)法接收,易受陽(yáng)光干擾,導(dǎo)致小車不能無(wú)誤地走出迷宮。引起干擾的原因是陽(yáng)光所發(fā)出的紅外線與紅外傳感器所發(fā)出的紅外線是一樣的,都是連續(xù)的,無(wú)法區(qū)別,所以易受周圍光線的干擾。對(duì)于該問(wèn)題的解決辦法是利用無(wú)線遙控基本原理使紅外傳感器所發(fā)出的紅外是一種有固定頻率有別于周圍紅外的信號(hào)。對(duì)于接收方也進(jìn)行電路處理,使有辨別能力直接收有固定頻率的紅外信號(hào)。這兩處的改進(jìn)都是通過(guò)改進(jìn)電路來(lái)實(shí)現(xiàn)的。若是反射面所引起的,通過(guò)限制反射面的材料可以解決。根據(jù)555定時(shí)器原理,改進(jìn)傳感器電路如圖10所示。其工作原理是555電路發(fā)出頻率為100 Hz的方波,驅(qū)動(dòng)ST188放射端發(fā)光二極管以100 Hz的頻率閃動(dòng),發(fā)出閃爍的光波,當(dāng)有障礙物接近時(shí),反射光引起ST188接收端的光敏電阻以相同的頻率變化,使得圖10中A點(diǎn)的電壓值VA發(fā)生相應(yīng)變化。VA中包含有直流成分V直和頻率為100 Hz的交流成分V變,其中后者反映了障礙物的接近情況。為了保留有用的交流信號(hào)V交,清除直流成分V直,用隔直電容C1來(lái)完成隔直通交的功能,并由第一個(gè)運(yùn)放電路完成對(duì)V交進(jìn)行放大,由第二個(gè)運(yùn)放實(shí)現(xiàn)直流到交流的轉(zhuǎn)換。具體來(lái)說(shuō),當(dāng)遠(yuǎn)離障礙物時(shí),運(yùn)放的輸出VO為高電平;當(dāng)傳感器接近障礙物時(shí),VO輸出低電平。
(3)小車的速度很難控制,通過(guò)程序控制很難把握小車的旋轉(zhuǎn)時(shí)間,小車在轉(zhuǎn)90°和180°時(shí),經(jīng)常轉(zhuǎn)過(guò)規(guī)定的角度,以至影響小車不能直線走出迷宮。一種解決辦法是接入調(diào)壓電路,在給小車轉(zhuǎn)彎時(shí)間一定的情況,調(diào)節(jié)馬達(dá)上的電壓來(lái)改變車輪速度,不斷實(shí)踐直到達(dá)到預(yù)定的標(biāo)準(zhǔn)。另一種解決辦法是,在小車速度一定的情況下,不斷通過(guò)改變程序中的小車轉(zhuǎn)角時(shí)間來(lái)改變小車的轉(zhuǎn)角,多次實(shí)踐,以求達(dá)到預(yù)定目標(biāo)。通過(guò)實(shí)際調(diào)試發(fā)現(xiàn)這兩種辦法單獨(dú)應(yīng)用很難達(dá)到預(yù)定目標(biāo)。因此,將兩種結(jié)合起來(lái),通過(guò)調(diào)試,容易達(dá)到目標(biāo)。
2 結(jié)語(yǔ)
機(jī)器人迷宮車是大學(xué)生電子制作常選項(xiàng)目,是電子電路、機(jī)械傳動(dòng)及自動(dòng)控制等多種知識(shí)的綜合應(yīng)用。對(duì)小車的轉(zhuǎn)向控制涉及到電機(jī)調(diào)速,可以先對(duì)小車建立控制模型,再應(yīng)用自動(dòng)控制原理知識(shí)給出具體控制算法,這樣就可以使小車轉(zhuǎn)向控制及路徑選擇更為精確。
評(píng)論