摘 要:人類在科技的發(fā)展史上,一直在嘗試著想要創(chuàng)造出一個具有肢體、感官、腦力等綜合一體的智能機器人,而電腦鼠就是一個很能夠用來詮釋肢體、感官及腦力綜合工作的基本實例,這也是當初電腦鼠被發(fā)明的理由,希望能夠借助電腦鼠的創(chuàng)作來研究與發(fā)明更加復(fù)雜的機械。
關(guān)鍵詞:電腦鼠;ARM Cortex-M3處理器;LM3S615;紅外傳感器
研究目的:電腦鼠是一個具備自主運動能力的機器人,它能在一個由16X16個單元格組成的迷宮中,從起點出發(fā),自主搜尋迷宮的終點,并進而利用搜尋過程中搜集到的迷宮資料找出從起點到終點的最佳路徑。
應(yīng)用價值:自主機器人有著很廣泛的應(yīng)用,比如嗅探炸彈,從廢墟中搜索傷員到家庭的自動化,再到自動駕駛。設(shè)計者們面臨的主要問題是可靠的電源支撐和敏銳的感知機制,因此像電腦鼠這種對未知環(huán)境探索的機器人常常給予工程師們靈感。不僅如此,電腦鼠更結(jié)合了機械、電機、電子、控制、光學(xué)、程序設(shè)計和人工智能等多方面的科技知識。人們希望借助電腦鼠促進更加復(fù)雜機械的研究與發(fā)明[1]。
文章所做的工作:(1)電腦鼠直走時的姿勢控制及姿勢修正:利用紅外傳感器接收到的障礙物的數(shù)據(jù)來編碼調(diào)整馬達的轉(zhuǎn)動以達到姿勢控制及修正的目的;(2)電腦鼠在行走時能夠?qū)崟r的掌握障礙物的信息:掌握紅外傳感器的工作原理并編程通過控制系統(tǒng)計數(shù)器每隔一段時間調(diào)用紅外傳感器探測障礙物的信息;(3)編碼實現(xiàn)電腦鼠行走的驅(qū)動庫,包括前進、左轉(zhuǎn)、右轉(zhuǎn)、加速及位置修正等:通過控制相應(yīng)引腳的信號達到對馬達的控制,利用兩邊各自獨立的馬達實現(xiàn)了不同方式的運動;(4)電腦鼠在迷宮內(nèi)速度的提升和減?。簩⑹S嗟穆烦膛c電腦鼠當前速度進行比較,做出加速或是減速的判斷,再通過改變系統(tǒng)計時器的調(diào)用間隔從而達到對速度的控制;(5)將一些重要信息或調(diào)試信息通過八段數(shù)碼管顯示出來:通過控制ZLG7289B芯片驅(qū)動8個8段共陰數(shù)碼管。
1 電腦鼠底層驅(qū)動庫的設(shè)計與實現(xiàn)
1.1 底層驅(qū)動庫的總體介紹
電腦鼠的底層驅(qū)動庫包括電腦鼠在迷宮內(nèi)的左轉(zhuǎn)、右轉(zhuǎn)、180度轉(zhuǎn)向,加速和減速、姿勢的控制和修正及紅外傳感器對墻壁的探測。(1)電腦鼠的加減速:因為推動步進電機前進一步的功能是由系統(tǒng)中斷超時服務(wù)函數(shù)來完成的,因此,對電腦鼠加速或減速的控制就是控制中斷超時計數(shù)器的數(shù)值,從而控制調(diào)用中斷超時服務(wù)函數(shù)的調(diào)用頻率,達到控制對步進電機步進一步的頻率;(2)紅外傳感器的控制及對墻壁信息的偵測:紅外傳感器由LM3S615的PWM模塊的輸出驅(qū)動,不同的驅(qū)動頻率使得紅外的偵測距離不同。系統(tǒng)中斷周期的分別使能五個方向的紅外傳感器,達到對墻壁信息實時的偵測;(3)姿勢的控制及修正:姿勢的控制及修正通過讀取墻壁的信息,分析電腦鼠當前所處的位置信息,判斷是否要對電腦鼠的姿勢進行修正,如果需要,該模塊通過控制相應(yīng)的步進電機當前暫停一步,達到對姿勢的控制及修正。
1.2 加速及減速的設(shè)計與實現(xiàn)
為了減少電腦鼠在迷宮當中搜尋階段及沖刺階段的時間,一個很有效的方法就是加快電腦鼠在迷宮當中的速度,因此智能的加快及減慢電腦鼠的速度就成了完善上述功能的一個必須解決的問題。
1.3 加速的原理
加減速實時算法的核心是使用系統(tǒng)定時器中斷,當系統(tǒng)定時器發(fā)生超時中斷時,系統(tǒng)超時中斷服務(wù)函數(shù)推動電機走下一步,然后計算出下一步將要維持的時間,并賦值給系統(tǒng)定時器的計數(shù)器,作為下一次計數(shù)器的計數(shù)值。當下一次中斷來臨時,再推動一步,并設(shè)置在下一步的時間。如此下去,就可以通過對定時器賦值達到對步進電機轉(zhuǎn)速的控制,從而控制電腦鼠的速度。
步進電機的轉(zhuǎn)動不是時時刻刻的,而是在某一段很短的時間內(nèi)(遠遠小于實際所設(shè)置的定時器的時間)轉(zhuǎn)動一步,然后停止等待下一次的定時器超時中斷,然后再走下一步,然而由于這段時間發(fā)生的極快,肉眼幾乎無法感知步進電機的轉(zhuǎn)動實際上是“量化的”。因此對于某一時間點步進電機轉(zhuǎn)速的求解應(yīng)該轉(zhuǎn)化為在某一段時間內(nèi)步進電機轉(zhuǎn)速的平均值W'。不失一般性,在此我們假設(shè)這段時間為以該時間點為中心,前后兩次系統(tǒng)超時中斷設(shè)置的時間加上該時間段系統(tǒng)超時中斷設(shè)置的時間,那么總的時間就為T=tn-2+tn-1+tn+tn+1+tn+2。
步進電機每轉(zhuǎn)動一步,所轉(zhuǎn)過的角度是相同的,在此我們假設(shè)該角度為μ。那么W'=(5*μ)/T。當某一個時間點tm,諾tn-2>tm-2,tn-1>tn-1,tn>tm,tn+1>tm+1,tn+2>tm+2,顯而易見,Tn>Tm,Wn' 以上便是電腦鼠加減速度的原理。 2 系統(tǒng)計數(shù)器的設(shè)置 以下我們通過控制系統(tǒng)計數(shù)器的值來模擬電腦鼠進行勻加速運動。 假設(shè)我們現(xiàn)在要將電腦鼠的加速度設(shè)置為a,某一時刻電腦鼠的速度取在該系統(tǒng)中斷超時時間段內(nèi)的平均值V'。由一次超時中斷服務(wù)函數(shù)推動步進電機走一步,可知V'=1/Tn(步/秒),Tn表示該時間點所在的系統(tǒng)計數(shù)器設(shè)置的時間,Tn=cn/f,cn是當前系統(tǒng)計數(shù)器的數(shù)值,f是提供給系統(tǒng)計數(shù)器的時鐘頻率。 最后,我們只需要在每次系統(tǒng)超時中斷執(zhí)行的時候,將下一次系統(tǒng)超時中斷的計數(shù)器設(shè)置為根據(jù)公式計算出來的值,就可以保證該過程是均勻變速的運動了。 3 姿勢控制及修正的意義 電腦鼠要在前進的過程中不斷調(diào)整姿勢,以免碰到擋板,電腦鼠在迷宮中的理想姿勢是處于迷宮格的中心,且前進方向平行于擋板。但是因為電腦鼠左右兩輪的運動特性并非完全吻合,所以電腦鼠必須要能協(xié)調(diào)地配合微控制器、紅外傳感器,來控制左右兩顆步進電機,對當前的狀態(tài)進行調(diào)整。這中間包含為了避免電腦鼠撞上墻壁,并且知道自己的所在位置,所以必須要修正電腦鼠自己的認知與實際情況的三種誤差。有趣的是橫向與朝向角度的誤差可以同時修正。 4 姿勢控制及修正的方法 4.1 使用斜角紅外修正姿勢的范圍 例如,電腦鼠處在一個單元格2中,而斜角的紅外傳感器探測的卻是另一個單元格中的墻壁信息,但是這時的墻壁信息卻還未探明(因為探測墻壁的有無主要是使用左方,前方,右方的三個紅外,而不是斜角紅外),所以如果使用這時斜角紅外傳回的資訊,很可能會引起程序出現(xiàn)判斷錯誤。因此,我們只在一定的范圍內(nèi)使用斜角的紅外。而在該有效范圍以外的區(qū)域,我們使用左方和右方的紅外傳感器傳回的近距離是否有障礙物的信息作為判斷姿勢是否正確的依據(jù)。 4.2 使用外側(cè)紅外姿勢修正的范圍 在斜角的兩個紅外傳回?zé)o效信息的范圍內(nèi),使用外側(cè)紅外傳回的信息對姿勢進行修正,這段有效距離從電腦鼠的斜角紅外探測到下一個迷宮格的墻壁到外側(cè)的紅外探測到下一個迷宮格的墻壁信息。 以上,我們討論了多種情況下利用不同紅外傳回的資訊對電腦鼠姿勢控制的方法,雖然沒辦法包括所有的情形,但是從電腦鼠實際的行走來看,效果還是不錯的,因為我們以上考慮的都是發(fā)生概率比較大的情形,因此產(chǎn)生的效果是可以令人接受的。