第十四講 紅外線導(dǎo)航_第1頁(yè)
第十四講 紅外線導(dǎo)航_第2頁(yè)
第十四講 紅外線導(dǎo)航_第3頁(yè)
第十四講 紅外線導(dǎo)航_第4頁(yè)
第十四講 紅外線導(dǎo)航_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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、第十四講 紅外線導(dǎo)航使用紅外線前燈探測(cè)道路寶貝車機(jī)器人使用紅外線兩極管LED作為前燈,他們發(fā)射紅外光,在一些情況下,紅外線從物體反射從機(jī)器人前進(jìn)的方向折回。寶貝車機(jī)器人的眼睛是紅外檢測(cè)器。紅外檢測(cè)器發(fā)出信號(hào)來(lái)表明它們是否檢測(cè)到從物體反射回的紅外線。寶貝車機(jī)器人的大腦,MCS-51微控制器據(jù)此做出判斷并基于這個(gè)傳感器的輸入控制伺服電機(jī)。 第十四講 紅外線導(dǎo)航紅外檢測(cè)器紅外檢測(cè)器 IR(紅外線)檢測(cè)器有內(nèi)置的光濾波器,除了需要我們用它的內(nèi)部的光敏二極管傳感器檢測(cè)的980 nm紅外線,它幾乎不允許其它光通過(guò)。紅外檢測(cè)器也有一個(gè)電子濾波器,它只允許大約 38.5 kHz 的信號(hào)通過(guò)。換句話說(shuō),檢測(cè)器只

2、尋找每秒閃爍 38,500次的紅外光。第十四講 紅外線導(dǎo)航任務(wù)一:搭建并測(cè)試IR發(fā)射和探測(cè)器對(duì)元件清單: (1) 兩個(gè)紅外檢測(cè)器 (2) 兩個(gè)IR LEDs (3) 兩對(duì)IR LED套管 (4) 兩個(gè)220 電阻 (紅-紅-棕) (5) 兩個(gè)1 k電阻 (棕-黑-紅)第十四講 紅外線導(dǎo)航測(cè)試紅外發(fā)射探測(cè)器 本任務(wù)中,你要用P1_4發(fā)送持續(xù)1秒的 38.5kHz的紅外光,如果紅外光被小車路徑上的物體反射回來(lái),紅外檢測(cè)器將給微控制器發(fā)送一個(gè)信號(hào),讓它知道已經(jīng)檢測(cè)到反射回的紅外光發(fā)送1 ms 頻率為 38.5 kHz的紅外信號(hào)for( counter=0;counter 38;counter+) P

3、1_4=1; delay_nus(13); P1_4=0; delay_nus(13); irDetectLeft=P1_5state(); 當(dāng)沒(méi)有IR信號(hào)返回時(shí),探測(cè)器的輸出狀態(tài)為高。當(dāng)它探測(cè)到被物體反射的 38500 Hz和聲時(shí),它的輸出為低。當(dāng)發(fā)送紅外信號(hào)后, IR探測(cè)器的輸出處于低狀態(tài)不到1毫秒,因此當(dāng)發(fā)送完后立即將IR探測(cè)器的輸出存儲(chǔ)到變量中是很重要的。這些存儲(chǔ)的值會(huì)顯示在調(diào)試終端或被機(jī)器人用來(lái)導(dǎo)航。第十四講 紅外線導(dǎo)航例程: TestLeftIrPair.c l#include l#include lint P1_5state(void) l lreturn (P1&0 x

4、20)?1:0; l lint main(void) l lbit irDetectLeft; lwhile(1) l lfor( counter=0;counter 38;counter+) l lP1_4=1; ldelay_nus(13); lP1_4=0; ldelay_nus(13); l lirDetectLeft=P1_5state(); lprintf(irDetectLeft=%dn,irDetectLeft); ldelay_nms(100); l l 驗(yàn)證當(dāng)你放一個(gè)物體在IR組前時(shí),調(diào)試終端是否會(huì)顯示0,當(dāng)你將物體移開(kāi)時(shí),它是否顯示1。 第十四講 紅外線導(dǎo)航任務(wù)二:物體檢

5、測(cè)和紅外干涉的實(shí)地測(cè)試元件清單: (1) 兩個(gè)紅色LED(2) 兩個(gè)220 電阻 (紅-紅-棕) for(i=0;i1;i+) ; 這是一個(gè)for空操作語(yǔ)句,它什么也不做,但能產(chǎn)生延時(shí)。我們可以用示波器測(cè)量,它能產(chǎn)生約12us延時(shí)。 第十四講 紅外線導(dǎo)航例程TestIrPairsAndIndicators.c #include #include int P1_5state(void) return (P1&0 x20)?1:0; int P3_6state(void) return (P3&0 x40)?1:0; int main(void) int irDetectLeft,

6、irDetectRight; while(1) for( counter=0;counter125;counter+) P1_4=1; P3_5=0; for(i=0;i1;i+) ; P1_4=0; P3_5=0; for(i=0;i1;i+) ;/延時(shí)1ms左右第十四講 紅外線導(dǎo)航irDetectLeft=P1_5state(); irDetectRight=P3_6state(); if(irDetectLeft=0) P1_2=1; else P1_2=0; if(irDetectRight=0) P3_4=1; else P3_4=0; delay_nms(100); 驗(yàn)證當(dāng)檢測(cè)器檢

7、測(cè)到物體時(shí),每個(gè)檢測(cè)器旁的LED是否會(huì)發(fā)光。第十四講 紅外線導(dǎo)航該你了遠(yuǎn)程測(cè)試和范圍測(cè)試 拔掉連接在寶貝車機(jī)器人上的串口電纜,將其放到幾個(gè)不同的物體之前,以測(cè)試IR探測(cè)器的范圍。 測(cè)試對(duì)不同顏色物體的探測(cè)范圍,對(duì)什么顏色的物體探測(cè)的范圍最遠(yuǎn),什么顏色的物體探測(cè)的范圍最近?第十四講 紅外線導(dǎo)航任務(wù)三:紅外檢測(cè)范圍調(diào)整任務(wù)三:紅外檢測(cè)范圍調(diào)整更小的電阻使通過(guò)LED的電流更多。更多的電流使LED更亮。本任務(wù)中,你將檢測(cè)LED和IR LED串不同電阻值的效果。元件清單: 本節(jié)中需要一些特殊的部件: (1) 兩個(gè)470 電阻 (黃-紫-棕) (2) 兩個(gè)220 電阻(紅-紅-棕) (3) 兩個(gè)2 k 電

8、阻 (紅-黑-紅) (4) 兩個(gè)4.7 k 電阻 (黃-紫-紅) 該你了測(cè)試LED亮度 觀察電路中用220 電阻時(shí),連接到P2_3的LED的亮度。 用470 電阻代替連接P2_3和右邊LED陰極的220 電阻。 注意觀察現(xiàn)在LED的亮度。 用2 k電阻代替。 用4.7 k電阻代替。 第十四講 紅外線導(dǎo)航該你了測(cè)試IR LED的范圍 用1 k的電阻替代原電阻。用一個(gè)尺子測(cè)量離IR LED最遠(yuǎn)的可以探測(cè)到面對(duì)IR LED的一張紙的距離,在表7-2中記錄測(cè)量數(shù)據(jù)。 用4.7 k的電阻代替連接P1_4到IR LED陽(yáng)極的1 k電阻。 確定能夠檢測(cè)到同一張紙的最遠(yuǎn)距離,記錄數(shù)據(jù)。 用2 k電阻代替。 用

9、470 電阻代替。 用220 的電阻代替。 表7-2 檢測(cè)距離與電阻的關(guān)系 IR LED電阻() 最遠(yuǎn)檢測(cè)距離 4700 2000 1000 470 220 第十四講 紅外線導(dǎo)航任務(wù)四:探測(cè)和避開(kāi)障礙物 if(irDetectLeft=0)&(irDetectRight=0)/兩邊同時(shí)接收到紅外線 Backward(); Left_Turn(); Left_Turn(); else if(irDetectLeft=0)/只有左邊接收到紅外線 Backward(); Right_Turn(); else if(irDetectRight=0)/只有右邊接收到紅外線 Backward();

10、 Left_Turn(); else Forward(); 第十四講 紅外線導(dǎo)航例程RoamingWithIr.c #include #include #include #define LeftIR P1_5 /左邊紅外接收連接到P15 #define RightIR P3_6 /右邊紅外接收連接到P36 #define LeftLaunch P1_4 /左邊紅外發(fā)射連接到P14 #define RightLaunch P3_5 /右邊紅外發(fā)射連接到P35 int IRLaunch(unsigned char IR) unsigned int counter; if(IR=L) for(cou

11、nter=0;counter1000;counter+) 第十四講 紅外線導(dǎo)航LeftLaunch=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); LeftLaunch=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); else for(counter=0;counter1000;counter+)/右邊發(fā)射 RightLaunch=1; _nop_(); _nop_(); _

12、nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); RightLaunch=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 第十四講 紅外線導(dǎo)航void Forward(void) /向前行走子程序 P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); void Left_Turn(void) /左轉(zhuǎn)子程序 int

13、i; for( i=1;i=26;i+) P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); 第十四講 紅外線導(dǎo)航void Right_Turn(void) /右轉(zhuǎn)子程序 int i; for( i=1;i=26;i+) P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); void Backward(void) /向后行走子程序 int i; for( i=1;i=65;i+)

14、 P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); 第十四講 紅外線導(dǎo)航int main(void) bit irDetectLeft,irDetectRight; int i,counter; while(1) IRLaunch(R); irDetectRight = RightIR; /右邊接收 IRLaunch(L); irDetectLeft = LeftIR; /左邊接收 第十四講 紅外線導(dǎo)航if(irDetectLeft=0)&(irDetectRight=0)/

15、兩邊同時(shí)接收到紅外線 Backward(); Left_Turn(); Left_Turn(); else if(irDetectLeft=0)/只有左邊接收到紅外線 Backward(); Right_Turn(); else if(irDetectRight=0)/只有右邊接收到紅外線 Backward(); Left_Turn(); else Forward(); 第十四講 紅外線導(dǎo)航在每個(gè)脈沖之間采樣以避免碰撞這個(gè)程序使用稍微不同的方法來(lái)使用驅(qū)動(dòng)脈沖。除了兩個(gè)存儲(chǔ)IR檢測(cè)器輸出的狀態(tài)以外,它還使用兩個(gè)16位的無(wú)符號(hào)數(shù)變量來(lái)設(shè)置發(fā)送的脈沖持續(xù)時(shí)間。 bit irDetectLeft; b

16、it irDetectRight; pulseLeft; pulseRight; 在while循環(huán)中,發(fā)送 38.5 kHz的IR信號(hào)給每個(gè)IR LED。當(dāng)1 ms脈沖被發(fā)送后,變量立即存儲(chǔ)IR檢測(cè)器的輸出狀態(tài)。這是很有必要的,因?yàn)槿绻愕却臅r(shí)間太長(zhǎng),無(wú)論是否發(fā)現(xiàn)物體,將返回沒(méi)有探測(cè)到物體的狀態(tài)0。 第十四講 紅外線導(dǎo)航在ifelse語(yǔ)句中,程序不是發(fā)送脈沖或調(diào)用導(dǎo)航程序而是設(shè)置發(fā)送的脈沖持續(xù)時(shí)間。 if(irDetectLeft=0)&(irDetectRight=0) pulseLeft=1300; pulseRight=1700; else if(irDetectLeft=0) pulseLeft=1700; pulseRight=1700; else if

溫馨提示

  • 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)論