![避障机器人红外测距模块设计与调试_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/7c2d5138-83bb-422d-b4d9-a124b5d20829/7c2d5138-83bb-422d-b4d9-a124b5d208291.gif)
![避障机器人红外测距模块设计与调试_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/7c2d5138-83bb-422d-b4d9-a124b5d20829/7c2d5138-83bb-422d-b4d9-a124b5d208292.gif)
![避障机器人红外测距模块设计与调试_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/7c2d5138-83bb-422d-b4d9-a124b5d20829/7c2d5138-83bb-422d-b4d9-a124b5d208293.gif)
![避障机器人红外测距模块设计与调试_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/7c2d5138-83bb-422d-b4d9-a124b5d20829/7c2d5138-83bb-422d-b4d9-a124b5d208294.gif)
![避障机器人红外测距模块设计与调试_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/7c2d5138-83bb-422d-b4d9-a124b5d20829/7c2d5138-83bb-422d-b4d9-a124b5d208295.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、避障机器人红外测距模块设计与调试一、实训目的1、了解模数转换器的基本功能;2、了解红外测距模块的基本功能及技术规格;3、掌握红外传感器工作原理。 二、实训设备1 硬件:HOST机一台、基于机器人项目驱动的嵌入式教学实训平台一套;2 软件:Siliconlab IDE开发环境、调试器。三、实训原理红外距离感应模块是专为机器人设计的测障传感器,如图所示。它通过发射红外线并测量红外线被反射的强度来输出反映和物体距离的电压信号,有效距离 1080厘米。红外测距传感器红外测距功能编号名称/功能1VCC 电源线2GND 地线3Vo 输出信号线4发射管5接收管红外传感器基于三角测量原理。红外发射器按照一定的
2、角度发射红外光束,当遇到物体以后,光束会反射回来,如图所示。反射回来的红外光线被CCD检测器检测到以后,会获得一个偏移值L,利用三角关系,在知道了发射角度a,偏移距L,中心矩X,以及滤镜的焦距f以后,传感器到物体的距离D就可以通过几何关系计算出来了。四、实训步骤1、正确连接PC 机、调试器和嵌入式教学实训平台,连接红外测距模块;2、打开嵌入式教学实训平台电源;3、打开工程,编译、链接、进入调试、运行程序,观察lcd屏上显示的测量值,移动机器人,观察lcd屏上测量值的变化(思考测量值的变化的原理)4、测量传感器的输出特性曲线。 在实验中需要中的函数及功能说明函数名:unsigned char G
3、etIR_Distance(unsigned char channle)函数说明:获取红外传感器感测距离函数名:void ADC_PortInit()函数说明:ADC引脚初始化函数名:void ADC_Init()函数说明:ADC初始化函数名:unsigned char ADC_DistanceGet(unsigned char AD_port)函数说明:获取AD_port端口红外传感器的值函数名:void ADC_ConvertStart()函数说明:AD转换启动函数名:void AD_PortSelection(AD_port)函数说明:AD转换端口配置函数名:unsigned int A
4、DC_AvrDataGet(unsigned int *AD_data)函数说明:获取平均值函数名:double SensorDistanceProcess(double x )函数说明:ADC值距离转换#include "Sensor_AD.h"#define AD_NUM 10/*/! 函数名:unsigned char GetIR_Distance(unsigned char channle)/! 函数说明:获取红外传感器感测距离*/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;/*/! 函数名:unsigned char GetIRCol(unsigned char AD_Point)/! 函数说明:获取灰度传感器感测灰度值*/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);/*/! 函数名:void ADC_PortInit()/! 函数说明: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;/当有语音的时候,P1口不能AD初始化P1MDIN &= 0x80; /P1.7模拟输入P1SKIP |= 0x80; /交叉开关跳过模拟引脚P2MDIN = 0x00; /P2模拟输入P2SKIP = 0xFF; /交叉开关跳过模拟引脚/P3MDIN &= 0x01; /P3.0模拟输入 /P3SKIP |= 0x01; /交叉开关跳过模拟引脚XBR1 = 0x40; /交叉开关使能SFRPAGE = S
9、FRPAGE_save;/*/! 函数名:void ADC_Init()/! 函数说明:ADC初始化*/void ADC_Init()unsigned char SFRPAGE_save = SFRPAGE;ADC_PortInit();SFRPAGE = CONFIG_PAGE;ADC0CN= 0xC0; /跟踪模式,开启转换ADC0CF = (SYSCLOCK/3000000 - 1) << 3;ADC0CF &= 0x04; /右端对齐EIE1 &= 0x08; /禁止ADC中断/AD0EN = 1;REF0CN = 0x08;SFRPAGE = SFRPAG
10、E_save;/*/! 函数名:unsigned char ADC_DistanceGet(unsigned char AD_port)/! 函数说明:获取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);/*/! 函数名:void ADC_Convert
13、Start()/! 函数说明:AD转换启动*/void ADC_ConvertStart()unsigned char SFRPAGE_save = SFRPAGE;SFRPAGE = CONFIG_PAGE;AD0EN = 1;/EA = 0;AD0INT = 0;AD0BUSY = 1;SFRPAGE = SFRPAGE_save;/*/! 函数名:void AD_PortSelection(AD_port)/! 函数说明:AD转换端口配置*/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; /负输入端选择VDDSFRPAGE = SFRPAGE_save;/*/! 函数名:unsigned int ADC_AvrDataGet(unsigned int *AD_data)/! 函数说明:获取平均值*/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;/*/! 函数名:void ADC0_ISR (void) interrupt 10/! 函数说明:ADC中断函数*/*void ADC0_ISR (void) interrup
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育部工作计划
- 公立幼儿园后勤工作计划
- 商务谈判谈判合同范本
- 河南省城镇住房租赁合同范本
- 锂矿石采购合同范本
- 江西财经大学现代经济管理学院《电子封装结构与设计》2023-2024学年第二学期期末试卷
- emc合同协议范本
- 吉林师范大学博达学院《物理化学ll》2023-2024学年第二学期期末试卷
- 聘请电影制片人合同范本
- 中央民族大学《勘查地球物理》2023-2024学年第二学期期末试卷
- 零件的工艺分析及毛坯选择
- 整套教学课件《特殊教育概论》
- 财务管理法律风险防范课件
- 管理学原理(南大马工程)
- 人事档案办理委托书模板
- 地埋管地源热泵系统岩土热响应试验、地埋管外径及壁厚、岩土体热物性参数
- 采掘基础知识
- 初中生物 七年级 《植物体的结构层次》 教学设计
- 即兴口语(姜燕)-课件-即兴口语第四章PPT-中国传媒大学
- 金字塔量化交易系统
- 报批稿20160301-浙江嘉化能源化工股份有限公司年产16万吨多品种脂肪醇(酸)产品项目
评论
0/150
提交评论