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

下載本文檔

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

文檔簡介

1、機器人循跡詳解,機器人利用灰度傳感器,在沿著黑色引導(dǎo)線循跡的過程中,會遇到很多種情況,其中一種情況就是如圖所示的路口。 在路口時,黑色引導(dǎo)線往往有多個方向,那么機器人該怎么辦呢?,路口判斷:機器人在遇到路口時,需要我們用程序告訴機器人該怎么走(左拐、右拐、停止等或做出其它動作)。,路口的概念,什么是路口:機器人在循跡過程中,會遇到三個灰度都能檢測到黑線的情況,我們把它稱之為三灰度路口。,是否檢測到路口處的判定方法,如何讓機器人判斷三個灰度呢? 可以使用 if 函數(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); ,這段程序可以讓機器人沿 著簡單的一條黑線循跡。 如果將這段非路口循跡的 程序,和路口判斷時的程序 放在一起,是不是就可以讓 機器人在循跡時,遇到路口 后右拐,然后繼續(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 ,在機器人循跡的過程中,需要針實際情況,對機器人的 灰度設(shè)定值進行調(diào)整,那么我們就需要將灰度檢測到的值顯示在液晶屏上。 lcd.Clear(); lcd.shu(0,0,analogRead(0); lcd.shu(0,2,analogRead(1); lcd.shu(0,4,analogRead(2); lcd.Update();,多路口循跡,如果循跡任務(wù)中不止有一個路口,而是有多個路口,該怎么辦呢?,圖二,1,2,3,多路口解決辦法,如果循跡圖中有多個路口,就可以引入變量的概念,用變量表示機器人遇到路口的情況。 定義的變量可以是字符x、y、i等,也可以是字符串如lukou等。一般

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

5、圖紙,我們讓機器人左轉(zhuǎn) ,如何讓這三個路口建立聯(lián)系呢?,我們已經(jīng)把三個路口時機器人需要做的動作都已程序?qū)懥顺鰜?,但是,如何讓這些路口建立聯(lián)系呢? 利用變量i,來讓三個路口建立起練習(xí),這樣機器人就知道是到了第幾個路口了。 建立聯(lián)系之后,在執(zhí)行完第一個路口之后,機器人就會進入等待第二個路口的狀態(tài)(循跡)。,if(i=1) if(analogRead(0)L delay(700); ,int i; int L= ,M= ,R= ;/將檢測好的灰度設(shè)定值填寫進去 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 ,把顯示灰度檢測值得程序, 路口判斷的程序,無路口時循跡的程序放在一起,就形成了完整的,針對圖(圖二)的循跡程序。 將檢測好的設(shè)定的左中右灰度的中間值,填寫進入就可以進行循跡了,當(dāng)然參數(shù)的具體數(shù)值還需要調(diào)試。 需要注意的是 使用的變量要定義。、 變量如需要賦值一定要記得賦值。如i,L,M,R。,這張圖紙路口很多,但是我們只需要將每個路口分開,單獨研究,在組合在一起,也

7、就不難了。我們先來根據(jù)規(guī)則分析一下任務(wù)。 沿著黑色引導(dǎo)線循跡 路口處要按黑線的指定方 向行進。 路口4處喇叭響起,路口5處喇叭滅掉。7處要順時針繞行,進入繞行軌道時紅色探測燈亮起,走出繞行軌道紅色探測燈滅掉(機器人的眼睛)。 進入基地后,機器人的機身需要進入基地(投影二分之一以上)。 停止后紅色探測燈開啟,喇叭響三秒。 圖紙有規(guī)定時間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();,循跡的程序,這里電機的參數(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、顯示灰度檢測值,和路口變量的程序。 2、非路口時的循跡程序。 3、路口時的程序。 4、特定路口的制定動作。 5、利用電機轉(zhuǎn)速和休息站調(diào)整機器人完成任務(wù)的時間。,我們不難發(fā)現(xiàn),每個路口的檢測程序,格式都是一樣的,只需要將每個路口需要做的動

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論