電腦鼠走迷宮實驗報告附程序_第1頁
電腦鼠走迷宮實驗報告附程序_第2頁
電腦鼠走迷宮實驗報告附程序_第3頁
電腦鼠走迷宮實驗報告附程序_第4頁
電腦鼠走迷宮實驗報告附程序_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

東南大學(xué)第二屆IEEE標(biāo)準(zhǔn)電腦鼠走迷宮競賽電腦鼠原理及其應(yīng)用 機電動力試驗平臺第7頁共9頁第二屆IEEE標(biāo)準(zhǔn)電腦鼠走迷宮競賽論文目錄一.軟件程序框圖………….3二.參賽軟件研發(fā)過程…….4三.軟硬件調(diào)試過程……….4四.各組員分工…………….4五.體會心得……………….5附錄……………………...…..6參考書目……………….……9軟件程序框圖參賽軟件研發(fā)過程在voidmain()函數(shù)中,采用壓棧的方式進行電腦鼠搜索,數(shù)組uint8GmcCrossway[MAZETYPE*MAZETYPE]用于暫存未走過支路坐標(biāo)。數(shù)組uint8GucMapBlock[MAZETYPE][MAZETYPE]記錄每個點的地圖信息,初始化為0x00。函數(shù)voidmouseGoahead(int8cNBlock)、voidmazeSearch(void)、voidmouseTurnleft(void)、voidmouseTurnright(void)、voidmouseTurnback(void)和voidobjectGoTo(int8cXdst,int8cYdst)控制電腦鼠的運動狀態(tài)。voidmapStepEdit(int8cX,int8cY)為制作等高圖函數(shù),它把記錄等高值的數(shù)組uint8GucMapStep[MAZETYPE][MAZETYPE](初始化為0xff)賦值。當(dāng)電腦鼠搜索時無方向可走時就按照這個等高圖的信息退回上個點,沖刺時也是一樣的道理。另外,為了縮短轉(zhuǎn)彎時間,并且保證電腦鼠的穩(wěn)定性,采取轉(zhuǎn)彎時整步,直走時半步。我們在Mouse_Drive.c文件中,加入全局變量int8maincheck,初始化為0(其中0為不轉(zhuǎn)彎,1為轉(zhuǎn)彎)。在__leftMotorContr()和__rightMotorContr()中根據(jù)maincheck的值來實現(xiàn)整步和半步的轉(zhuǎn)換,maincheck的值在voidmouseTurnleft(void),voidmouseTurnback(void)和voidmouseTurnright(void)中被更改。軟硬件調(diào)試過程首先我們對電腦鼠的傳感器進行調(diào)節(jié)。根據(jù)程序中對傳感器返回值的要求,首先我們降低了左前右三個方向遠(yuǎn)距紅外檢測頻率,改為35500Hz。再在跑道上對傳感器硬件的調(diào)節(jié),當(dāng)電腦鼠靠近墻時,近墻一側(cè)斜角紅外值為1,遠(yuǎn)墻一側(cè)斜角紅外值為0,近墻一側(cè)正對紅外值為3,遠(yuǎn)墻一側(cè)正對紅外值為1;當(dāng)電腦鼠在跑道中央時,斜角紅外值均為0,且兩側(cè)正對紅外值為1;前方紅外探測距離不得超過一格,由于提速的原因,盡量要遠(yuǎn)些。將速度提高,68的速度實在太慢。最開始嘗試100和120,但是電腦鼠探索時前進不穩(wěn)定,會晃,撞墻。所以放棄了高速,只將速度提高到80。速度提高了,就得更改轉(zhuǎn)彎時得轉(zhuǎn)動步數(shù),速度的調(diào)節(jié)和步數(shù)的調(diào)節(jié)是同步的。根據(jù)轉(zhuǎn)彎時的幅度來判斷目前轉(zhuǎn)彎步數(shù)是否合適。預(yù)賽完后,要想縮短搜索時間,就采用轉(zhuǎn)彎時整步,直走時半步的驅(qū)動方法。首先步數(shù)減半,再像之前那樣微調(diào)步數(shù)。組員分工程序的改編和程序的調(diào)試體會心得當(dāng)初我選這門公選課,是我舍友告訴我的,他說他的朋友說上這門課有機會拿srtp學(xué)分,但是需要些編程基礎(chǔ)。我的編程基礎(chǔ)還好,就奔著srtp學(xué)分選了這門課。其實這次我上交的程序只在標(biāo)準(zhǔn)程序中更改了很少,更本沒有多大的意義。對此我很遺憾。我們平時課程也有點多,瑣碎的事情也多,就沒多少時間來好好理解程序。我很早就寫好了一個算法,但是我是在C++上寫的,是很理論的。后來我就想用我自己的算法來寫這個電腦鼠搜索程序,結(jié)果我遇到了很大的難題。我對電腦鼠的速度始終都控制不好,老是撞墻。后來聽了好友的建議,把速度先減小,看看具體原因。結(jié)果我發(fā)現(xiàn),我的程序有很多問題。雖然我修改了很多了,但是還是有漏洞。由于時間不夠,沒有將我的算法改好,就很舍不得地放棄了它。我將我自己編寫的程序附在附錄里。在整個過程中,我感觸最深的是理論與實際的差異原來是很大的。比如說對半步驅(qū)動速度的控制,如果defineSEARCHSPEED68,在較長直道上速度太小,很慢,但是轉(zhuǎn)彎就比較合適;但是如果defineSEARCHSPEED100,雖然在較長直道上速度足夠,但是轉(zhuǎn)彎很不穩(wěn)定,很容易出現(xiàn)丟步現(xiàn)象。還有一點,我體會到有個老師說的那句話是對的,“現(xiàn)在的編程語言太多了,平臺也很多,但是只要你努力學(xué)好一種語言,其他的語言可以很快學(xué)會”。他曾經(jīng)十天學(xué)會一種語言,并且完成了一個項目。附錄搜索算法:搜索過程中根據(jù)絕對方向信息前進,由遞歸函數(shù)voidSeekPath(int8x,int8y,int8x1,int8y1)實現(xiàn)的,其中(x,y)為電腦鼠當(dāng)前所在點,(x1,y1)為上次探索的點,(x1,y1)是為了回溯而設(shè)立的參數(shù)。而且,在搜索過程中采用排除算法,可以避免走一些死路或不必走的路。其中排除算法是由函數(shù)voidmapchange(void)實現(xiàn)的,其算法為:在電腦鼠四周的四個點中,如果某個點的四個方向地圖信息至少有三個方向已知,則不需要探索這個點,將這個點標(biāo)記為已被探測過。電機驅(qū)動:Speed0=Speed1=整步驅(qū)動。整步驅(qū)動加速很快,尤其是后轉(zhuǎn)彎很快。地圖信息處理:地圖信息在每次走了40步后進行獲取,此時傳感器正處于格子中央,獲取的地圖信息要準(zhǔn)確些。記錄地圖信息的數(shù)組我改為maze[MAZETYPE*2+1][MAZETYPE+1],我設(shè)電腦鼠起點為(1,1),則地圖上某個點(x,y)的墻壁信息為:上方向maze[2*x-1][y],下方向maze[2*x-1][y-1],左方向maze[2*x-2][y-1],右方向maze[2*x][y-1]。如下圖,每個三角形為地圖上的一個點,圖中每個三角形的上頂點為上方向墻壁信息,左頂點為左方向墻壁信息,右頂點為右方向墻壁信息,中間的點為下方向墻壁信息。這樣做有一個好處,比如說,地圖上某個點(x,y),那么它下方向墻壁信息和這個點下面的點(x,y-1)的上方向墻壁信息是一致的,一旦改變其一,兩者都變了,這很符合實際。但是,它有它的不足,就是開空間太大,而且還是全局變量,占內(nèi)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論