避障機(jī)器人紅外測(cè)距模塊設(shè)計(jì)與調(diào)試_第1頁(yè)
避障機(jī)器人紅外測(cè)距模塊設(shè)計(jì)與調(diào)試_第2頁(yè)
避障機(jī)器人紅外測(cè)距模塊設(shè)計(jì)與調(diào)試_第3頁(yè)
避障機(jī)器人紅外測(cè)距模塊設(shè)計(jì)與調(diào)試_第4頁(yè)
避障機(jī)器人紅外測(cè)距模塊設(shè)計(jì)與調(diào)試_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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ī)器人紅外測(cè)距模塊設(shè)計(jì)與調(diào)試一、實(shí)訓(xùn)目的1、了解模數(shù)轉(zhuǎn)換器的基本功能;2、了解紅外測(cè)距模塊的基本功能及技術(shù)規(guī)格;3、掌握紅外傳感器工作原理。 二、實(shí)訓(xùn)設(shè)備1 硬件:HOST機(jī)一臺(tái)、基于機(jī)器人項(xiàng)目驅(qū)動(dòng)的嵌入式教學(xué)實(shí)訓(xùn)平臺(tái)一套;2 軟件:Siliconlab IDE開(kāi)發(fā)環(huán)境、調(diào)試器。三、實(shí)訓(xùn)原理紅外距離感應(yīng)模塊是專為機(jī)器人設(shè)計(jì)的測(cè)障傳感器,如圖所示。它通過(guò)發(fā)射紅外線并測(cè)量紅外線被反射的強(qiáng)度來(lái)輸出反映和物體距離的電壓信號(hào),有效距離 1080厘米。紅外測(cè)距傳感器紅外測(cè)距功能編號(hào)名稱/功能1VCC 電源線2GND 地線3Vo 輸出信號(hào)線4發(fā)射管5接收管紅外傳感器基于三角測(cè)量原理。紅外發(fā)射器按照一定的

2、角度發(fā)射紅外光束,當(dāng)遇到物體以后,光束會(huì)反射回來(lái),如圖所示。反射回來(lái)的紅外光線被CCD檢測(cè)器檢測(cè)到以后,會(huì)獲得一個(gè)偏移值L,利用三角關(guān)系,在知道了發(fā)射角度a,偏移距L,中心矩X,以及濾鏡的焦距f以后,傳感器到物體的距離D就可以通過(guò)幾何關(guān)系計(jì)算出來(lái)了。四、實(shí)訓(xùn)步驟1、正確連接PC 機(jī)、調(diào)試器和嵌入式教學(xué)實(shí)訓(xùn)平臺(tái),連接紅外測(cè)距模塊;2、打開(kāi)嵌入式教學(xué)實(shí)訓(xùn)平臺(tái)電源;3、打開(kāi)工程,編譯、鏈接、進(jìn)入調(diào)試、運(yùn)行程序,觀察lcd屏上顯示的測(cè)量值,移動(dòng)機(jī)器人,觀察lcd屏上測(cè)量值的變化(思考測(cè)量值的變化的原理)4、測(cè)量傳感器的輸出特性曲線。 在實(shí)驗(yàn)中需要中的函數(shù)及功能說(shuō)明函數(shù)名:unsigned char G

3、etIR_Distance(unsigned char channle)函數(shù)說(shuō)明:獲取紅外傳感器感測(cè)距離函數(shù)名:void ADC_PortInit()函數(shù)說(shuō)明:ADC引腳初始化函數(shù)名:void ADC_Init()函數(shù)說(shuō)明:ADC初始化函數(shù)名:unsigned char ADC_DistanceGet(unsigned char AD_port)函數(shù)說(shuō)明:獲取AD_port端口紅外傳感器的值函數(shù)名:void ADC_ConvertStart()函數(shù)說(shuō)明:AD轉(zhuǎn)換啟動(dòng)函數(shù)名:void AD_PortSelection(AD_port)函數(shù)說(shuō)明:AD轉(zhuǎn)換端口配置函數(shù)名:unsigned int A

4、DC_AvrDataGet(unsigned int *AD_data)函數(shù)說(shuō)明:獲取平均值函數(shù)名:double SensorDistanceProcess(double x )函數(shù)說(shuō)明:ADC值距離轉(zhuǎn)換#include "Sensor_AD.h"#define AD_NUM 10/*/! 函數(shù)名:unsigned char GetIR_Distance(unsigned char channle)/! 函數(shù)說(shuō)明:獲取紅外傳感器感測(cè)距離*/unsigned char GetIR_Distance(unsigned char channle)xdata unsigned in

5、t ucIRDisValue = 0;if(channle<0 | channle>10)return 0;ucIRDisValue = ADC_DistanceGet(channle);ucIRDisValue = (int)SensorDistanceProcess(ucIRDisValue);if(ucIRDisValue>255)ucIRDisValue = 255;return (char)ucIRDisValue;unsigned int GetIRDistance(unsigned char channle)xdata unsigned int ucIRDisV

6、alue = 0;if(channle<0 | channle>10)return 0;ucIRDisValue = ADC_DistanceGet(channle);return ucIRDisValue;/*/! 函數(shù)名:unsigned char GetIRCol(unsigned char AD_Point)/! 函數(shù)說(shuō)明:獲取灰度傳感器感測(cè)灰度值*/unsigned int GetIRCol(unsigned char ad_channle)xdata unsigned int ucGreyValue;if(ad_channle<0 | ad_channle>

7、9)return 0;ucGreyValue = ADC_DistanceGet(ad_channle);return (ucGreyValue);/*/! 函數(shù)名:void ADC_PortInit()/! 函數(shù)說(shuō)明:ADC引腳初始化/!-/! 引腳圖:/!-/! 引腳 端口 AMX0P/!/! AD0-P1.7-0x07/! AD1-P2.0-0x08/! AD2-P2.1-0x09/! AD3-P2.2-0x0A/! AD4-P2.3-0x0B/! AD5-P2.4-0x0C/! AD6-P2.5-0x0D/! AD7-P2.6-0x0E/! AD8-P2.7-0x0F/! AD9-P3

8、.0-0x10*/void ADC_PortInit()unsigned char SFRPAGE_save = SFRPAGE;SFRPAGE = CONFIG_PAGE;/當(dāng)有語(yǔ)音的時(shí)候,P1口不能AD初始化P1MDIN &= 0x80; /P1.7模擬輸入P1SKIP |= 0x80; /交叉開(kāi)關(guān)跳過(guò)模擬引腳P2MDIN = 0x00; /P2模擬輸入P2SKIP = 0xFF; /交叉開(kāi)關(guān)跳過(guò)模擬引腳/P3MDIN &= 0x01; /P3.0模擬輸入 /P3SKIP |= 0x01; /交叉開(kāi)關(guān)跳過(guò)模擬引腳XBR1 = 0x40; /交叉開(kāi)關(guān)使能SFRPAGE = S

9、FRPAGE_save;/*/! 函數(shù)名:void ADC_Init()/! 函數(shù)說(shuō)明:ADC初始化*/void ADC_Init()unsigned char SFRPAGE_save = SFRPAGE;ADC_PortInit();SFRPAGE = CONFIG_PAGE;ADC0CN= 0xC0; /跟蹤模式,開(kāi)啟轉(zhuǎn)換ADC0CF = (SYSCLOCK/3000000 - 1) << 3;ADC0CF &= 0x04; /右端對(duì)齊EIE1 &= 0x08; /禁止ADC中斷/AD0EN = 1;REF0CN = 0x08;SFRPAGE = SFRPAG

10、E_save;/*/! 函數(shù)名:unsigned char ADC_DistanceGet(unsigned char AD_port)/! 函數(shù)說(shuō)明:獲取AD_port端口紅外傳感器的值*/unsigned int ADC_DistanceGet(unsigned char AD_port)xdata unsigned char AD_counter=0;xdata unsigned char i = 0;xdata unsigned char adc0_h,adc0_l;xdata unsigned int ad_test;xdata unsigned int ADC_DataStore1

11、0 = 0,0,0,0,0,0,0,0,0,0;if(AD_port>0x0A)return 0xFF;AD_PortSelection(AD_port);ADC_ConvertStart();for(AD_counter=0;AD_counter<10;AD_counter+) while(!AD0INT);adc0_h = ADC0H;adc0_h &= 0x03;adc0_l = ADC0L; ADC_DataStoreAD_counter = (unsigned int)(adc0_h)<<8) + (unsigned int)adc0_l;/ADC_D

12、ataStoreAD_counter = (unsigned int)(adc0_l);AD0INT = 0;ADC_ConvertStart();i+;/ADC_FlagClear(); /ADC_DataStore0 = ADC_AvrDataGet(ADC_DataStore);/return SensorDataAD_port0;ad_test = ADC_AvrDataGet(ADC_DataStore);/ad_test+;/return (ADC_AvrDataGet(ADC_DataStore);return(ad_test);/*/! 函數(shù)名:void ADC_Convert

13、Start()/! 函數(shù)說(shuō)明:AD轉(zhuǎn)換啟動(dòng)*/void ADC_ConvertStart()unsigned char SFRPAGE_save = SFRPAGE;SFRPAGE = CONFIG_PAGE;AD0EN = 1;/EA = 0;AD0INT = 0;AD0BUSY = 1;SFRPAGE = SFRPAGE_save;/*/! 函數(shù)名:void AD_PortSelection(AD_port)/! 函數(shù)說(shuō)明:AD轉(zhuǎn)換端口配置*/void AD_PortSelection(unsigned char port_unm)unsigned char SFRPAGE_save =

14、SFRPAGE;SFRPAGE = CONFIG_PAGE;switch(port_unm)case 0x01: AMX0P = 0x07; break;case 0x02: AMX0P = 0x08; break;case 0x03: AMX0P = 0x09; break;case 0x04: AMX0P = 0x0A; break;case 0x05: AMX0P = 0x0B; break;case 0x06: AMX0P = 0x0C; break;case 0x07: AMX0P = 0x0D; break;case 0x08: AMX0P = 0x0E; break;case 0

15、x09: AMX0P = 0x0F; break;case 0x0A: AMX0P = 0x10; break;default: break;AMX0N = 0x1F; /負(fù)輸入端選擇VDDSFRPAGE = SFRPAGE_save;/*/! 函數(shù)名:unsigned int ADC_AvrDataGet(unsigned int *AD_data)/! 函數(shù)說(shuō)明:獲取平均值*/unsigned int ADC_AvrDataGet(unsigned int *AD_data)xdata unsigned int ucAD_avragy,k;xdata unsigned int *uiAD_

16、data = AD_data;xdata unsigned char i,j;xdata unsigned int AD_Array10;for(i=0;i<10;i+)AD_Arrayi = AD_datai;for(i=0;i<10;i+)for(j=0;j<10-i;j+)if(AD_Arrayj>AD_Arrayj+1)k = AD_Arrayj;AD_Arrayj = AD_Arrayj+1;AD_Arrayj+1 = k; ucAD_avragy = AD_Array3 + AD_Array4 + AD_Array5; return ucAD_avragy/3;/*/! 函數(shù)名:void ADC0_ISR (void) interrupt 10/! 函數(shù)說(shuō)明:ADC中斷函數(shù)*/*void ADC0_ISR (void) interrup

溫馨提示

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