滅火機(jī)器人的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁(yè)
滅火機(jī)器人的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁(yè)
滅火機(jī)器人的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁(yè)
滅火機(jī)器人的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁(yè)
滅火機(jī)器人的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、滅火機(jī)器人的設(shè)計(jì)一、項(xiàng)目任務(wù)在能力風(fēng)暴機(jī)器人AS-UII的基礎(chǔ)上,組裝一個(gè)滅火機(jī)器人,并編寫(xiě)程序,讓其能完成滅火任務(wù)。(任務(wù)的詳細(xì)內(nèi)容請(qǐng)參見(jiàn)國(guó)際滅火比賽規(guī)則2010)二、項(xiàng)目要求 設(shè)計(jì)的機(jī)器人能在5分鐘內(nèi)把滅火場(chǎng)地中的蠟燭熄滅。每次運(yùn)行時(shí),蠟燭被任意放置在不同的房間內(nèi)。其它詳細(xì)要求請(qǐng)參見(jiàn)國(guó)際滅火比賽規(guī)則2010三、使用到的硬件設(shè)備機(jī)器人的硬件:(1)傳感器:碰撞傳感器、紅外傳感器、火焰?zhèn)鞲衅?、?)控制單元:微控制器、外部存儲(chǔ)器、復(fù)位系統(tǒng)和電源(3)驅(qū)動(dòng)器:直流電動(dòng)機(jī)、LCD(4)滅火風(fēng)扇四、程序的思路在機(jī)器人滅火實(shí)驗(yàn)中,要求機(jī)器人實(shí)現(xiàn)在實(shí)驗(yàn)場(chǎng)地里迅速找到蠟燭將其熄滅,在尋找過(guò)程中要避免碰撞墻

2、壁與蠟燭,如果發(fā)現(xiàn)火源,啟動(dòng)滅火程序,滅火,沒(méi)有發(fā)現(xiàn)火源,走迷宮,尋找火源,所以機(jī)器人必須實(shí)現(xiàn)以下功能:(1)由于在實(shí)驗(yàn)場(chǎng)地中,實(shí)驗(yàn)規(guī)定的房間內(nèi)都有可能擺放蠟燭,所以機(jī)器人必須能夠?qū)崿F(xiàn)搜索所有的房間,在行走過(guò)程中不允許碰撞墻壁,而且盡可能快的搜索所有房間,不走重復(fù)的路程。在此過(guò)程中,本人采用了迷宮法則里的左手法則(左手法則:看到墻壁往右轉(zhuǎn),沒(méi)看不到墻壁往左轉(zhuǎn))。(2)機(jī)器人在行走過(guò)程中要不斷的判斷是否有火源;如有還要判斷火源在機(jī)器人的哪個(gè)方位、離機(jī)器人的距離等。在此過(guò)程中,需要設(shè)計(jì)一個(gè)亮度檢測(cè)來(lái)尋找火源。(3)找到火源后,機(jī)器人自動(dòng)啟動(dòng)滅火裝置(風(fēng)扇)迅速將火熄滅,火源熄滅后,風(fēng)扇停止轉(zhuǎn)動(dòng)。根

3、據(jù)以上的思路設(shè)計(jì),在VJC編程環(huán)境下,編輯機(jī)器人行為控制程序,下載并反復(fù)調(diào)試控制程序,實(shí)現(xiàn)機(jī)器人滅火實(shí)驗(yàn)。程序流程圖如下(主模塊):程序的代碼如下:int ir_1=0;int photo_1=0;int bmp_1=0;float tim_1=0.0;int gi_1=0;int gi_2=0;int gi_3=0;void main() gi_1 = 1 ; gi_2 = 1 ; gi_3 = 1 ; while(gi_3 = 1) if(gi_1 = 1) SubRoutine_4 (); photo_1 =(photo(1)+photo(2)/2; if(photo_1 < 20

4、) if(photo_1 < 30) && (photo_1 > -30) SubRoutine_2 (); SubRoutine_5 (); if(gi_1 = 2) void SubRoutine_1( ) if(gi_1 = 1) ir_1 =ir_detector(); if( ir_1 = 1) motor( 1 , 80 ); motor( 2 , 30 ); else if(ir_1 = 4) motor( 1 , 80 ); motor( 2 , 50 ); else motor( 1 , 40 ); motor( 2 , 80 ); bmp_1 =

5、 bumper(); if( bmp_1 != 0) drive( -40 ,0); wait( 0.200000 ); stop(); drive( 0 , 100); wait( 0.250000 ); stop(); tim_1 =seconds(); if( tim_1 > 60.000000) gi_1 = 2 ; else if(gi_1 = 2) drive( 0 , 80); wait( 0.600000 ); stop(); gi_1 = 3 ; else if(gi_1 = 3) ir_1 =ir_detector(); if( ir_1 = 1) drive( 0

6、, 100); wait( 0.250000 ); stop(); else if(ir_1 = 4) drive( 0 , 100); wait( 0.250000 ); stop(); else motor( 1 , 20 ); motor( 2 , 80 ); bmp_1 = bumper(); if( bmp_1 != 0) drive( -40 ,0); wait( 0.500000 ); stop(); drive( 0 , 100); wait( 0.250000 ); stop(); void SubRoutine_2( ) photo_1 =photo(1)-photo(2)

7、; if(photo_1 < 20) if(photo_1 < 20) drive( 0 , -20); wait( 0.100000 ); stop(); else if(photo_1 < 20) drive( 0 , 20); wait( 0.100000 ); stop(); else drive( 100 ,0); wait( 0.090000 ); stop(); motor( 1 , 0 ); motor( 2 , 0 ); motor( 3 , 100 ); gi_3 = 0 ; return;void SubRoutine_3( ) if(gi_1 = 1)

8、 ir_1 =ir_detector(); if( ir_1 = 2) printf( "ir_1 =%dn" ,ir_1); motor( 1 , 30 ); motor( 2 , 20 ); else printf( "ir_1 =%dn" ,ir_1); motor( 1 , 20 ); motor( 2 , 30 ); tim_1 =seconds(); if( tim_1 > 60.000000) gi_2 = 2 ; else ir_1 =ir_detector(); if( ir_1 = 1) printf( "ir_1 =

9、%dn" ,ir_1); motor( 1 , 30 ); motor( 2 , 20 ); else printf( "ir_1 =%dn" ,ir_1); motor( 1 , 20 ); motor( 2 , 30 ); void SubRoutine_4( ) if(gi_2 = 1) ir_1=ir_detector(); printf( "ir_1 =%dn" ,ir_1); if(ir_1 = 0) drive( 0 , -100); wait( 0.050000 ); stop(); drive( 100 ,0); wait(

10、0.100000 ); stop(); else if(ir_1 = 4) drive( 0 , 100); wait( 0.250000 ); stop(); else drive( 0 , -100); wait( 0.010000 ); stop(); ir_1 =ir_detector(); if( ir_1 = 1) drive( 0 , 100); wait( 0.050000 ); stop(); drive( 100 ,0); wait( 0.200000 ); stop(); bmp_1 = bumper(); printf( "bmp_1 =%dn" ,

11、bmp_1); if(bmp_1 = 5) | (bmp_1 = 1) drive( -50 ,0); wait( 0.400000 ); stop(); drive( 0 , 100); wait( 0.050000 ); stop(); drive( 50 ,0); wait( 0.240000 ); stop(); tim_1 =seconds(); if( tim_1 > 110.000000) gi_2 = 2 ; tim_1 =seconds(); else if(gi_2 = 2) drive( 0 , 100); wait( 0.250000 ); stop(); dri

12、ve( 100 ,0); wait( 1.000000 ); stop(); drive( 0 , 100); wait( 0.100000 ); stop(); gi_2 = 3 ; else if(gi_2 = 3) ir_1=ir_detector(); printf( "ir_1 =%dn" ,ir_1); if(ir_1 = 0) drive( 0 , -100); wait( 0.050000 ); stop(); drive( 100 ,0); wait( 0.050000 ); stop(); else if(ir_1 = 4) drive( 0 , 100

13、); wait( 0.250000 ); stop(); else drive( 0 , -100); wait( 0.010000 ); stop(); ir_1 =ir_detector(); if( ir_1 = 1) drive( 0 , 100); wait( 0.050000 ); stop(); drive( 100 ,0); wait( 0.100000 ); stop(); bmp_1 = bumper(); printf( "bmp_1 =%dn" ,bmp_1); if(gi_1 = 1) drive( -100 ,0); wait( 0.200000

14、 ); stop(); drive( 0 , 100); wait( 0.050000 ); stop(); drive( 100 ,0); wait( 0.120000 ); stop(); return;void SubRoutine_5( ) photo_1 =(photo(1)+photo(2)/2; if(photo_1 < 200) stop(); photo_1 =(photo(1)+photo(2)/2; while(photo_1 != 255) motor( 1 , 0 ); motor( 2 , 0 ); motor( 3 , 100 ); photo_1 =(ph

15、oto(1)+photo(2)/2; stop_motor(3); return;五、測(cè)試項(xiàng)目過(guò)程中出現(xiàn)的問(wèn)題分析項(xiàng)目設(shè)計(jì)中采用了迷宮法則,在測(cè)試中發(fā)現(xiàn)迷宮行走的速度不僅和紅外傳感器的數(shù)量、分布位置、分布角度有關(guān),還和迷宮法則實(shí)現(xiàn)的語(yǔ)法結(jié)構(gòu)有關(guān),可以說(shuō)迷宮算法千變?nèi)f化,在測(cè)試項(xiàng)目過(guò)程中就出現(xiàn)了下面的情況,有時(shí)候機(jī)器人走迷宮像飛一樣,而有時(shí)候機(jī)器人走迷宮像蝸牛爬,甚至在原地打轉(zhuǎn)。根據(jù)測(cè)試的調(diào)試分析,發(fā)現(xiàn)了兩個(gè)規(guī)律:(1)紅外傳感器的數(shù)量越多,迷宮行走速度的分化越嚴(yán)重。如果做到好,紅外傳感器數(shù)量越多,迷宮行走的速度就越快。調(diào)式能力低,紅外傳感器數(shù)量越多,迷宮行走的速度就越慢,其原因是紅外傳感器的數(shù)量增加后,相互配合的選擇性多,如果調(diào)得好,速度能加快,如果調(diào)得不好,傳感器多,相互干擾大,機(jī)器人常發(fā)出的光線被反復(fù)反射后被其他傳感器收到,抖動(dòng)現(xiàn)象特別厲害,嚴(yán)重的甚至出現(xiàn)30秒不動(dòng)的情況。(2)語(yǔ)法結(jié)構(gòu)中前進(jìn)的語(yǔ)句越多,機(jī)器人行走速度越快,撞墻的可能性也隨著增加,調(diào)式難度同樣增加。 在測(cè)試的過(guò)程中,由于環(huán)境光線的影響,有時(shí)候室內(nèi)光線太強(qiáng),會(huì)影響測(cè)試結(jié)果,導(dǎo)致機(jī)器人會(huì)誤以為有光源在前面就停止走動(dòng),啟動(dòng)滅火程序了,這樣就要重新調(diào)試參數(shù)重新測(cè)試才行。六、項(xiàng)目結(jié)論與體會(huì)(1)開(kāi)發(fā)機(jī)器人項(xiàng)目時(shí),硬件選擇適當(dāng)與否直接關(guān)系到機(jī)器人的反應(yīng)能力,此次

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論