三灰度路口判斷2_第1頁(yè)
三灰度路口判斷2_第2頁(yè)
三灰度路口判斷2_第3頁(yè)
三灰度路口判斷2_第4頁(yè)
三灰度路口判斷2_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、機(jī)器人循跡詳解,機(jī)器人利用灰度傳感器,在沿著黑色引導(dǎo)線循跡的過程中,會(huì)遇到很多種情況,其中一種情況就是如圖所示的路口。 在路口時(shí),黑色引導(dǎo)線往往有多個(gè)方向,那么機(jī)器人該怎么辦呢?,路口判斷:機(jī)器人在遇到路口時(shí),需要我們用程序告訴機(jī)器人該怎么走(左拐、右拐、停止等或做出其它動(dòng)作)。,路口的概念,什么是路口:機(jī)器人在循跡過程中,會(huì)遇到三個(gè)灰度都能檢測(cè)到黑線的情況,我們把它稱之為三灰度路口。,是否檢測(cè)到路口處的判定方法,如何讓機(jī)器人判斷三個(gè)灰度呢? 可以使用 if 函數(shù)來實(shí)現(xiàn)路口的判斷。 if(analogRead(0)L Rmotor.run(1000); if(analogRead(1)M) L

2、motor.run(3500); Rmotor.run(1000); if(analogRead(0)R) Lmotor.run(3500); Rmotor.run(1000); ,這段程序可以讓機(jī)器人沿 著簡(jiǎn)單的一條黑線循跡。 如果將這段非路口循跡的 程序,和路口判斷時(shí)的程序 放在一起,是不是就可以讓 機(jī)器人在循跡時(shí),遇到路口 后右拐,然后繼續(xù)循跡呢?,lcd.Clear(); lcd.shu(0,0,analogRead(0); lcd.shu(0,2,analogRead(1); lcd.shu(0,4,analogRead(2); lcd.Update(); if(analogRead

3、(0)L ,在機(jī)器人循跡的過程中,需要針實(shí)際情況,對(duì)機(jī)器人的 灰度設(shè)定值進(jìn)行調(diào)整,那么我們就需要將灰度檢測(cè)到的值顯示在液晶屏上。 lcd.Clear(); lcd.shu(0,0,analogRead(0); lcd.shu(0,2,analogRead(1); lcd.shu(0,4,analogRead(2); lcd.Update();,多路口循跡,如果循跡任務(wù)中不止有一個(gè)路口,而是有多個(gè)路口,該怎么辦呢?,圖二,1,2,3,多路口解決辦法,如果循跡圖中有多個(gè)路口,就可以引入變量的概念,用變量表示機(jī)器人遇到路口的情況。 定義的變量可以是字符x、y、i等,也可以是字符串如lukou等。一般

4、是定義為整型也就是int ; 定義之后要給變量一個(gè)初值,如果不賦初值則默認(rèn)為0; 兩個(gè)if判斷相結(jié)合,組成了第一次遇到路口時(shí)的情況判斷,這樣機(jī)器人就知道是第幾次遇到路口了。,int i;/定義i為整型變量 void setup() i=1;/給i一個(gè)初值1 void loop() if(i=1) if(analogRead(0)L delay(700) /根據(jù)圖紙,我們讓機(jī)器人右轉(zhuǎn) ,第二個(gè)路口,if(i=2) if(analogRead(0)L delay(700); /根據(jù)圖紙,我們讓機(jī)器人右轉(zhuǎn) ,第三個(gè)路口,if(i=3) if(analogRead(0)L delay(700) /根據(jù)

5、圖紙,我們讓機(jī)器人左轉(zhuǎn) ,如何讓這三個(gè)路口建立聯(lián)系呢?,我們已經(jīng)把三個(gè)路口時(shí)機(jī)器人需要做的動(dòng)作都已程序?qū)懥顺鰜?,但是,如何讓這些路口建立聯(lián)系呢? 利用變量i,來讓三個(gè)路口建立起練習(xí),這樣機(jī)器人就知道是到了第幾個(gè)路口了。 建立聯(lián)系之后,在執(zhí)行完第一個(gè)路口之后,機(jī)器人就會(huì)進(jìn)入等待第二個(gè)路口的狀態(tài)(循跡)。,if(i=1) if(analogRead(0)L delay(700); ,int i; int L= ,M= ,R= ;/將檢測(cè)好的灰度設(shè)定值填寫進(jìn)去 void setup () void loop() if(i=1) lcd.Clear(); lcd.shu(0,0,analogRead(

6、0); lcd.shu(0,2,analogRead(1); lcd.shu(0,4,analogRead(2); lcd.shu(10,5,i); lcd.Update(); if(i=1) if(analogRead(0)L ,把顯示灰度檢測(cè)值得程序, 路口判斷的程序,無(wú)路口時(shí)循跡的程序放在一起,就形成了完整的,針對(duì)圖(圖二)的循跡程序。 將檢測(cè)好的設(shè)定的左中右灰度的中間值,填寫進(jìn)入就可以進(jìn)行循跡了,當(dāng)然參數(shù)的具體數(shù)值還需要調(diào)試。 需要注意的是 使用的變量要定義。、 變量如需要賦值一定要記得賦值。如i,L,M,R。,這張圖紙路口很多,但是我們只需要將每個(gè)路口分開,單獨(dú)研究,在組合在一起,也

7、就不難了。我們先來根據(jù)規(guī)則分析一下任務(wù)。 沿著黑色引導(dǎo)線循跡 路口處要按黑線的指定方 向行進(jìn)。 路口4處喇叭響起,路口5處喇叭滅掉。7處要順時(shí)針繞行,進(jìn)入繞行軌道時(shí)紅色探測(cè)燈亮起,走出繞行軌道紅色探測(cè)燈滅掉(機(jī)器人的眼睛)。 進(jìn)入基地后,機(jī)器人的機(jī)身需要進(jìn)入基地(投影二分之一以上)。 停止后紅色探測(cè)燈開啟,喇叭響三秒。 圖紙有規(guī)定時(shí)間t,除結(jié)束循跡外只能在休息站處停止。,圖三,顯示灰度和路口變量的程序,為了方便,這里的變量不再用i而是用lukou。 lcd.Clear(); lcd.shu(0,0,analogRead(0); lcd.shu(0,2,analogRead(1); lcd.sh

8、u(0,4,analogRead(2); lcd.shu(10,5,lukou); lcd.Update();,循跡的程序,這里電機(jī)的參數(shù)是需要調(diào)試,修改的。 if(analogRead(0)L) Lmotor.run(3500);Rmotor.run(1000); if(analogRead(1)M) Lmotor.run(3500);Rmotor.run(1000); if(analogRead(0)R) Lmotor.run(3500);Rmotor.run(1000); ,路口的判斷程序 if(i=1) if(analogRead(0)L&analogReadM&analogReadR)) i=2; ,我們和剛才一樣,將程序分成幾塊來編寫。 1、顯示灰度檢測(cè)值,和路口變量的程序。 2、非路口時(shí)的循跡程序。 3、路口時(shí)的程序。 4、特定路口的制定動(dòng)作。 5、利用電機(jī)轉(zhuǎn)速和休息站調(diào)整機(jī)器人完成任務(wù)的時(shí)間。,我們不難發(fā)現(xiàn),每個(gè)路口的檢測(cè)程序,格式都是一樣的,只需要將每個(gè)路口需要做的動(dòng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論