版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、使用紅外線前燈探測道路,寶貝車機器人使用紅外線兩極管LED作為前燈,他們發(fā)射紅外光,在一些情況下,紅外線從物體反射從機器人前進的方向折回。寶貝車機器人的眼睛是紅外檢測器。紅外檢測器發(fā)出信號來表明它們是否檢測到從物體反射回的紅外線。寶貝車機器人的大腦,MCS-51微控制器據(jù)此做出判斷并基于這個傳感器的輸入控制伺服電機。,紅外檢測器,IR(紅外線)檢測器有內(nèi)置的光濾波器,除了需要我們用它的內(nèi)部的光敏二極管傳感器檢測的980 nm紅外線,它幾乎不允許其它光通過。紅外檢測器也有一個電子濾波器,它只允許大約 38.5 kHz 的信號通過。換句話說,檢測器只尋找每秒閃爍 38,500次的紅外光。,任務(wù)一:
2、搭建并測試IR發(fā)射和探測器對,元件清單: (1) 兩個紅外檢測器 (2) 兩個IR LEDs (3) 兩對IR LED套管 (4) 兩個220 電阻 (紅-紅-棕) (5) 兩個1 k電阻 (棕-黑-紅),測試紅外發(fā)射探測器,本任務(wù)中,你要用P1_4發(fā)送持續(xù)1秒的 38.5kHz的紅外光,如果紅外光被小車路徑上的物體反射回來,紅外檢測器將給微控制器發(fā)送一個信號,讓它知道已經(jīng)檢測到反射回的紅外光,發(fā)送1 ms 頻率為 38.5 kHz的紅外信號 for( counter=0;counter 38;counter+) P1_4=1; delay_nus(13); P1_4=0; delay_nus
3、(13); irDetectLeft=P1_5state();,當(dāng)沒有IR信號返回時,探測器的輸出狀態(tài)為高。當(dāng)它探測到被物體反射的 38500 Hz和聲時,它的輸出為低。當(dāng)發(fā)送紅外信號后, IR探測器的輸出處于低狀態(tài)不到1毫秒,因此當(dāng)發(fā)送完后立即將IR探測器的輸出存儲到變量中是很重要的。這些存儲的值會顯示在調(diào)試終端或被機器人用來導(dǎo)航。,例程: TestLeftIrPair.c,#include #include int P1_5state(void) return (P1,while(1) for( counter=0;counter 38;counter+) P1_4=1; delay_nu
4、s(13); P1_4=0; delay_nus(13); irDetectLeft=P1_5state(); printf(irDetectLeft=%dn,irDetectLeft); delay_nms(100); ,驗證當(dāng)你放一個物體在IR組前時,調(diào)試終端是否會顯示0,當(dāng)你將物體移開時,它是否顯示1。,任務(wù)二:物體檢測和紅外干涉的實地測試,元件清單: (1) 兩個紅色LED (2) 兩個220 電阻 (紅-紅-棕),for(i=0;i1;i+) ; 這是一個for空操作語句,它什么也不做,但能產(chǎn)生延時。我們可以用示波器測量,它能產(chǎn)生約12us延時。,例程TestIrPairsAndIn
5、dicators.c,#include #include int P1_5state(void) return (P1,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+) ; /延時1ms左右,irDetectLeft=P1_5state(); irDetectRight=P3_6state(); if(irDetectLeft=0) P1_2=1; else P1_2=0; if(irDetectRight=0) P3_4=1;
6、 else P3_4=0; delay_nms(100); ,驗證當(dāng)檢測器檢測到物體時,每個檢測器旁的LED是否會發(fā)光。,該你了遠程測試和范圍測試 拔掉連接在寶貝車機器人上的串口電纜,將其放到幾個不同的物體之前,以測試IR探測器的范圍。 測試對不同顏色物體的探測范圍,對什么顏色的物體探測的范圍最遠,什么顏色的物體探測的范圍最近?,任務(wù)三:紅外檢測范圍調(diào)整,任務(wù)三:紅外檢測范圍調(diào)整,更小的電阻使通過LED的電流更多。更多的電流使LED更亮。 本任務(wù)中,你將檢測LED和IR LED串不同電阻值的效果。,元件清單: 本節(jié)中需要一些特殊的部件: (1) 兩個470 電阻 (黃-紫-棕) (2) 兩個2
7、20 電阻(紅-紅-棕) (3) 兩個2 k 電阻 (紅-黑-紅) (4) 兩個4.7 k 電阻 (黃-紫-紅),該你了測試LED亮度 觀察電路中用220 電阻時,連接到P2_3的LED的亮度。 用470 電阻代替連接P2_3和右邊LED陰極的220 電阻。 注意觀察現(xiàn)在LED的亮度。 用2 k電阻代替。 用4.7 k電阻代替。 ,該你了測試IR LED的范圍 用1 k的電阻替代原電阻。用一個尺子測量離IR LED最遠的可以探測到面對IR LED的一張紙的距離,在表7-2中記錄測量數(shù)據(jù)。 用4.7 k的電阻代替連接P1_4到IR LED陽極的1 k電阻。 確定能夠檢測到同一張紙的最遠距離,記錄
8、數(shù)據(jù)。 用2 k電阻代替。 用470 電阻代替。 用220 的電阻代替。,表7-2 檢測距離與電阻的關(guān)系 IR LED電阻() 最遠檢測距離 4700 2000 1000 470 220,任務(wù)四:探測和避開障礙物,if(irDetectLeft=0),例程RoamingWithIr.c,#include #include #include #define LeftIR P1_5 /左邊紅外接收連接到P15 #define RightIR P3_6 /右邊紅外接收連接到P36 #define LeftLaunch P1_4 /左邊紅外發(fā)射連接到P14 #define RightLaunch P3
9、_5 /右邊紅外發(fā)射連接到P35 int IRLaunch(unsigned char IR) unsigned int counter; if(IR=L) for(counter=0;counter1000;counter+),LeftLaunch=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); LeftLaunch=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); ,els
10、e for(counter=0;counter1000;counter+)/右邊發(fā)射 RightLaunch=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); RightLaunch=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); ,void Forward(void) /向前行走子程序 P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; dela
11、y_nus(1300); P1_0=0; delay_nms(20); ,void Left_Turn(void) /左轉(zhuǎn)子程序 int 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); ,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_nm
12、s(20); ,void Backward(void) /向后行走子程序 int i; for( i=1;i=65;i+) P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); ,int main(void) bit irDetectLeft,irDetectRight; int i,counter; while(1) IRLaunch(R); irDetectRight = RightIR; /右邊接收 IRLaunch(L); irDetectLeft = LeftIR; /左邊接收
13、,if(irDetectLeft=0) ,在每個脈沖之間采樣以避免碰撞,這個程序使用稍微不同的方法來使用驅(qū)動脈沖。除了兩個存儲IR檢測器輸出的狀態(tài)以外,它還使用兩個16位的無符號數(shù)變量來設(shè)置發(fā)送的脈沖持續(xù)時間。 bit irDetectLeft; bit irDetectRight; pulseLeft; pulseRight; 在while循環(huán)中,發(fā)送 38.5 kHz的IR信號給每個IR LED。當(dāng)1 ms脈沖被發(fā)送后,變量立即存儲IR檢測器的輸出狀態(tài)。這是很有必要的,因為如果你等待的時間太長,無論是否發(fā)現(xiàn)物體,將返回沒有探測到物體的狀態(tài)0。,在ifelse語句中,程序不是發(fā)送脈沖或調(diào)用導(dǎo)航程序而是設(shè)置發(fā)送的脈沖持續(xù)時間。,if(irDetectLeft=0) ,else if(irDetectRight=0)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息技術(shù)(信創(chuàng)版)(微課版)課件全套 徐麗 項目1-6 計算機基礎(chǔ) - 其他常用軟件的應(yīng)用-1
- 十八項醫(yī)療核心制度解讀
- 2026年劇本殺運營公司員工晉升與調(diào)崗管理制度
- 2026年及未來5年中國金融軟件行業(yè)市場競爭格局及投資前景展望報告
- 2025年社區(qū)智慧健康管理服務(wù)平臺技術(shù)創(chuàng)新與市場前景研究報告
- 體檢科各檢查室制度
- 產(chǎn)科護理與跨學(xué)科合作
- 人事四項制度
- 機動車檢測站培訓(xùn)內(nèi)容課件
- 中國科學(xué)院空間應(yīng)用工程與技術(shù)中心2025年校園招聘備考題庫及1套完整答案詳解
- 醫(yī)療器械胰島素泵市場可行性分析報告
- 地鐵施工現(xiàn)場防臺風(fēng)措施
- 種植業(yè)合作社賬務(wù)處理
- 【麗江玉龍旅游薪酬制度的創(chuàng)新研究6100字】
- 公司兩權(quán)分離管理制度
- 車輛叉車日常檢查記錄表
- 廣東高校畢業(yè)生“三支一扶”計劃招募考試真題2024
- 膠帶機硫化工藝.課件
- 種雞免疫工作總結(jié)
- 河南省商丘市柘城縣2024-2025學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 河南省信陽市2024-2025學(xué)年高二上學(xué)期1月期末英語試題(含答案無聽力原文及音頻)
評論
0/150
提交評論