实验二红外测距传感器实验

上传人:工**** 文档编号:458243648 上传时间:2024-01-24 格式:DOC 页数:8 大小:451.50KB
返回 下载 相关 举报
实验二红外测距传感器实验_第1页
第1页 / 共8页
实验二红外测距传感器实验_第2页
第2页 / 共8页
实验二红外测距传感器实验_第3页
第3页 / 共8页
实验二红外测距传感器实验_第4页
第4页 / 共8页
实验二红外测距传感器实验_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《实验二红外测距传感器实验》由会员分享,可在线阅读,更多相关《实验二红外测距传感器实验(8页珍藏版)》请在金锄头文库上搜索。

1、.信息工程学院实验报告成 绩:指导教师(签名):课程名称: 传感器原理及应用 实验工程名称: 实验二 红外测距传感器实验 实验时间:2016.10.8 班级: : *: 一、实 验 目 的1. 学习 CC2530 单片机 ADC 模块的使用。2. 学习红外测距传感器的使用。二、实 验 原 理 1. CC2530 节点与红外测距传感器的硬件接口红外线测距传感器模块GP2Y0A21YK0F(1). 红外测距传感器模块(GP2Y0A21YK0F)引脚OUT:模拟量输出接口(AD 模块)GND:外接 GNDVCC:数字量输出接口(0 和 1) 外接 5V 电源(2) . 传感器模块与 CC2530 模

2、块之间的连接2. ADC(1). 简介CC2530单片机的ADC支持多达14位的模拟数字转换,具有多达12位的ENOB有效数字位。它包括一个模拟多路转换器,具有多达8个各自可配置的通道;以及一个参考电压发生器。转换结果通过DMA写入存储器。还具有假设干运行模式。ADC模块的方框图如下所示:ADC的主要特性如下: 可选的抽取率,这也设置了分辨率7到12位 8个独立的输入通道,可承受单端或差分信号 参考电压可选为部单端、外部单端、外部差分或AVDD5 产生中断请求 转换完毕时的DMA触发 温度传感器输入 电池测量功能(2). 存放器简介本次实验中主要涉及到ADC模块的存放器:数据的换算:例如:在

3、CC2530 中配置 ADC 的参考电压为 AVDD5(3.3V),抽取率为 512(12 位有效数据),由于在实验中采用单端转换方式,所以实际数据只有 11 位。这时,ADC 采集到的数据记为 *,则ADC采集数据转换为电压(单位:V):V = * * 3.3 / 20483. GP2Y0A21YK0F 红外测距传感器(1). 概述夏普 GP2Y0A21YK0F 测距传感器是基于 PSD 的微距传感器,其有效的测量距离在 80cm ,有效的测量角度大于 40 度,输出信号为模拟电压,在 0 到 8cm 左右的围与距离成正比非线性关系,在 10-80cm 的距离成反比非线性关系,平均功耗为 3

4、0mA,反响时间约为 5ms,并且对背景光及温度的适应性较强。GP2Y0A21YK0F 传感器的默认的测距分辨率为 1mm。由于 GP2Y0A21YK0F 传感器采用的是 PSD 光信号调制法,因此其输出的信号电压并不是标准的直流电压,而是 叠加了波幅约为 0.2V,频率 1KHz 的方波,由于波幅到达 0.2V,这就影响了分辨率。如果不进展信号处理,分辨率的精度仅能到达 1mm。而如果经过有效处理,在正常情况下可以到达 0.1mm以上的精度,完全可以满足一般工程定距等方面的需求。Sharp 的红外传感器都是基于一个原理,三角测量原理。红外发射器按照一定的角度发射红外光束,当遇到物体以后,光束

5、会反射回来,反射回来的红外光线被 CCD 检测器检测到以后,会获得一个偏移值L,利用三角关系,在知道了发射角度 a,偏移距 L,中心矩 *,以及滤镜的焦距 f 以后,传感器到物体的距离 D 就可以通过几何关系计算出来了。传感器特点: 根本不受背景光及温度的影响,能满足大局部工程应用的性能要求,有很高的性价比,具有很好的工程应用价值。(2). 使用方法本实验利用 CC2530 的 ADC 模块采集红外测距传感器输出的模拟电压数据,然后换算成电压值,在根据数据手册上的特性曲线,如下列图所示:将特性曲线通过 MATLAB 可以拟合出计算公式,直接根据电压值计算出距离,假设测量出的电压为 voltag

6、e(V),待测距离为 distance(cm),则 distance = 26.757 * voltage-1.236。三、实 验 容 与 步 骤 1. 将仿真器的一端 JTAG 接口与一个 CC2530 模块相连,并翻开CC2530节点的电源,再将仿真器的另一端用 USB 接口与 PC 计算机相连。2. 用 MiniUSB 线将 CC2530 节点与计算机的 USB 口连接起来后,翻开串口调试器软件,设置波特率 57600,校验位 None,数据位 8,停顿位 1,然后点击翻开串口按钮,如下列图所示:说明:串口号可以在设备管理器看到,具体方法如下列图所示:3. 用 IAR Embedded

7、Workbench for 8051 8.10 翻开配套传感器实中的“SerialPort.Edition18.IRDMSMain.eww工程文件。4. 点击 IAR 功能菜单上的绿色下载按钮 ,进入程序下载页面,如下列图所示:5. 程序下载完成后,点击 IAR 开发环境中的运行程序按钮运行程序,如下列图所示:此外,也可以通过点击其它按钮实现对当前程序的调试(单步、断点、暂停、步入等功能)。6. 扩展实验为了能够更加直观地观察到传感器工作的状况,在实验过程中可以利用光盘中配套的上位机软件 CurveDisplay 来观察传感器的数据曲线。操作步骤(1). 将仿真器的一端 JTAG 接口与一个

8、CC2530 模块相连,并翻开 CC2530 节点的电源,再将仿真器的另一端用 USB 接口与 PC 计算机相连。(2). 用 MiniUSB 线将 CC2530 节点与计算机的 USB 口连接起来后,翻开配套传感器实验中的“CurveDisplayCurveDisplay.e*e上位机软件,选择正确的串口号后,再设置波特率 57600,校验位 None,数据位 8,停顿位 1,最后点击翻开连接按钮,如下所示:(3). 用 IAR Embedded Workbench for 8051 8.10 翻开配套传感器实验中的“Curve.Edition18.IRDMSMain.eww工程文件,然后通

9、过 IAR 将程序下载到 CC2530 模块中。程序下载完成后,点击 IAR 开发环境中的运行程序按钮运行程序。四、实 验 结 果 及 分 析:1. 程序正常运行后,每采集一次传感器数据,红色 LED 闪烁一下,与此同时串口调试器显示信息功能扩展,实现按键按一下传感器采样一次如下列图所示:2. 在实验过程中,将传感器水平正对着墙壁或障碍物远离移动,可以在串口调试软件上看到相应ADC 采集到的电压数据也发生相应的变化,其数值越小说明两者之间的距离越大。3. 扩展实验现象(1). 程序正常运行后,在 CurveDisplay 软件中可以观察到传感器的数据曲线,如下列图所示:(2) . 在实验过程中

10、,将传感器水平正对着墙壁或障碍物远离移动,可以在 CurveDisplay 软件上的传感器数据曲线也发生相应的变化,如下列图所示:五、实 验 总 结:通过这次学习和操作,我学到了对CC2530 单片机 ADC 模块的使用,并懂的了红外测距传感器的使用。以及通过自己对其功能扩展,实现按键控制传感器的采样。这次的实验操作让我受益匪浅。六、源 程 序 清 单 加上必要的注释主要代码如下:#include #include /GPIO_LED定义(1:点亮,0:熄灭)#define GPIO_GLED P1_0#define GPIO_RLED P1_1/GPIO_KEY定义(0:被按下,1:未按下)

11、#define GPIO_SW1 P1_2#define GPIO_SW2 P1_3void InitClock(void) /初始化时钟 unsigned int i; /turn on 16MHz RC and 32MHz *OSC SLEEPCMD &= 0*04; /wait for 32MHz *OSC stable while(!(SLEEPSTA & 0*40); /chip bug workaround asm(nop); /延时63us for(i = 0; i 504; i+) asm(nop); /Select 32MHz *OSC and the source for

12、32K clock CLKCONCMD = 0*00; /Wait for the change to be effective while(CLKCONSTA != 0*00); /turn off 16MHz RC SLEEPCMD = 0*80;void InitGPIO(void) /初始化GPIO /GPIO_RLED引脚(P1_0,通用IO,输出) P1SEL &= 0*01; P1DIR |= 0*01; /GPIO_GLED引脚(P1_1,通用IO,输出) P1SEL &= 0*02; P1DIR |= 0*02; /GPIO_SW1引脚(P1_2,通用IO,输入) P1SEL

13、 &= 0*04; P1DIR &= 0*04; /GPIO_SW2引脚(P1_3,通用IO,输入) P1SEL &= 0*08; P1DIR &= 0*08;void InitUART(void) /初始化串口USART0 /P05.2配置为外设IO P0SEL |= 0*3C; /USART 0 I/O location: Alternative 2 location PERCFG &= 0*01; /UART mode U0CSR |= 0*80; /无流控制,无校验,1位停顿位,8位数据位,起始位为低电平,停顿位为高电平 U0UCR = 0*02; /波特率57600 U0GCR |=

14、 0*0A; U0BAUD = 216; /使能串口接收器 U0CSR |= 0*40;void UART_SendStr(const unsigned char *str) /通过串口发送字符串 while(*str) /发送一个字符 U0DBUF = *str+; /等待发送完毕 while(!UT*0IF); /去除发送中断标志 UT*0IF = 0; void Float2Str(void *str, float Num, unsigned char FractLen) /将float型数据转换为字符串(FractLen:小数位数1-6) unsigned char *ptr = (unsigned char *)str); unsigned char FractCache6 = 0; unsigned char i = FractLen, j; unsigned char tmp; unsigned char sign = (unsigned char)(Num 0); unsigned long trunc; /整数局部 unsigned long fract; /小数局部(4位) if (sign) Num *=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号