目录
第一章 绪论 2
1.1 课题的背景和意义 2
1.2 国内外现况 3
1.3 本课题主要研究内容 4
1.最小的单芯片系统的硬件设计; 4
2.液晶屏的硬件设计; 4
3.警告声光报警电路; 4
4.硬件功能测试程序。 4
1.4 开发环境介绍 4
- 开发环境 4
- 运行环境 5
第二章 硬件介绍 6
2.1 STC89C52概述 6
图2-1 51单片机管脚图 6
1 主电源引脚 7
2 时钟源 7
3 控制,选通或复用 7
4 多功能I/O端口 7
2.2 keilC51的开发环境 8
2.2 Nokia/诺基亚5110 LCD 9
图2-2 Nokia5110显示屏 10
2.3 GP2Y0A02YK0F红外激光测距模块 10
1、距离测量范围: 20 to 150 cm 10
- 信号输出类型:电压模拟信号 10
- 包装尺寸:29.5×13×21.6 mm 10
- 功耗: 标称值33 mA 10
- 供电电压:4.5 to 5.5 V 10
6.精度和采集的AD位数以及转化计算公式相关,10AD一般能达到0.1CM 10
图2-3 测距原理 12
图2-4传感器数值曲线图 12
第三章 硬件系统介绍 13
3.1 红外激光测距的实现构想 13
3.2 结构框图 13
图3-1 结构框图 13
3.3 系统硬件结构电路图 14
图3-2 整体电路图 14
3.3.1 ISP电路 14
图3-3 下载与擦除电路 15
3.3.2 稳压电路 15
图3-4 稳压电路 15
3.3.3 显示模块Nokia5110lcd 15
图3-5 5110显示电路 16
3.3.4 键盘 16
图3-6 按键 17
3.3.5红外激光测距模块 17
图3-7 测距模块 17
3.3.6复位电路 17
图3-8 复位电路 18
3.3.7 时钟电路 18
图3-9 时钟电路 19
3.3.8蜂鸣器电路 19
图3-10 蜂鸣器电路 19
3.4测距原理与测距方法的选择 20
3 3.1相位激光测距 20
3.4.2脉冲法激光测距 20
3.4.3 激光三角法测距 21
3.4.4激光的选择 22 - 采用红外激光的发光二级管,结构很简单,体积小,成本较低 23
- 对红外的调制很简单,能够实现编码发射 23
- 红外线不会通过阻碍物 23
- 具有低耗能,反应快的特点 24
- 具有极强的在干扰环境下工作的能力 24
- 不会对环境造成污染,基本上对于人畜无害 24
第四章 软件系统设计 25
4.1 系统软件流程图 25
图4-1 软件流程图 25
4.2 部分代码 26
LCD部分 26
c -= 32; 27
x <<= 3; 27
y <<= 1; 27
第五章 实物制作与调试说明 31
5.1 材料的选择 31
5.2 电路板PCB的设计 31
5.3 印刷电路板的制作 32
5.4 单片机测试 32
5.5 电路调试 32
5.6 红外激光测距的调试 33
第六章 总结 33
第一章 绪论
1.1 课题的背景和意义
这个项目的需求是不用进行接触测量,开发出运行快速,准确度高,而且具有能够忍受强干扰,体积小,重量轻的激光测距仪。激光测距仪作为一种不用进行接触测量仪器已被广泛用在遥感探测,精密测量,建筑安全,安全防卫监控,智慧控制等领域,覆盖了各种技术学科。目前广泛使用的激光测距仪,主要用脉冲和相位式,还有激光三角法测距,三角测距的特点是简便、精度高,不用考虑接收发射时间。测量准确度受光学系统和CCD成像系统的限制,对接收器件要求高,同时不能测量透明物体。
激光有多种特性,方向性好,亮度高,单色性好,能够用来进行距离测量。基于编码发射的激光测距仪具有多种特点。尤其是在恶劣的室外环境条件下,利用激光测距不受天气因素的影响,不需要大气能见度,可以全天候观测,也不受地面反射和抗电磁干扰能力,在保密性上有着很大的优势。许许多多的行业需要这种测量仪器,所以具有很广阔的前景。毕业设计的目的是设计一种简单的手持式激光测距仪。采用了夏普GP2Y0A02YK0F测距传感器模块,采用三角测量方法。
1.2 国内外现况
国外许多大学,公司,研究机构进行了激光测距仪的研究。主要有芬兰的奥卢大学、美国的施瓦茨电光公司、埃克森公司等。施瓦茨电光公司为美国国家数据中心研制了无人自动激光海浪测量系统;为美国公路管理局研制了用来监控车辆的激光无人感应系统,从而提高了交通利用率;;还开发研制了军机坠毁激光报警系统。埃克森美孚开发用于海上石油开发的脉冲测距系统。 1992年亚特兰大激光公司为警方专门开发了手持式激光测距测速仪,用于车辆的距离和速度。 美国于1998年开发出了美国塔斯科测距能力800米相机类型LD激光测距仪。美国徕卡展出实用的小LD测距仪,测量距离0.2〜30米。自1995年以来,国际上对人眼安全的激光测距仪研制很快,已经进行了在波长范围800〜900nm的,峰值功率的10W,脉冲宽度为20〜50ns的,重复率1〜10kHz时,测量10米〜1公里非合作目标激光测距仪的研究。
在原有的固体气体激光测距仪基础上,在80年代开始研究。目前,基本技术已经被用于主要是为了解决工程问题,开发各种应用上。航天科工集团八三五八所研制出精度0.5m,测程200m,数据率100Hz的激光测距仪。中国计量学院的电子所通过与国外的同行合作,研制成功了一种测距达到1千米,精度达到一米,使用线性放大技术的方便携带的激光测距仪。国内公司也开展了研究,位于常州的来赛公司研制半导体激光测距仪,它的探测距离达到200m、测距的精度也达到0.5m。西南技术物理研究所还研究了激光高的表,它的工作范围2—800米,测量精度达到1m,使用工作波长为905nm,一秒钟内重复发射一百次。激光器波长范围是从375nm~1650nm。现在,在市场上有多种的手持激光测距仪器,有一种是半导体激光仪,它发射的激光频率大约是905nm和1540nm。还有一种是是GAY激光,它工作的波长为1064nm。现在,人们越来越追求设备的安全性和无害性,所以对身体有危害的1064nm的YAG激光目前在外国的便携激光测距中完全取消了。因为如果它不小心照到使用者的皮肤和眼睛的话,皮肤会受伤,尤其眼睛的伤害可能是一辈子的事。
1.3 本课题主要研究内容
利用红外激光传感器,以单片机为核心,开发设计手持红外激光测距仪,并进行调试。主要包括;
1.最小的单芯片系统的硬件设计;
(1)在上电复位电路自动复位和手动复位。
(2)晶体振荡器电路与无源晶振电路。
(3)发光二极管电路。
2.液晶屏的硬件设计;
(1)选择5110的LCD。
3.警告声光报警电路;
(1)报警输出电路采用蜂鸣器进行报警。
4.硬件功能测试程序。
(1)对于每个模块进行调试。
(2)整体进行调试。
1.4 开发环境介绍
- 开发环境
Intel(R)Core TM(2) CPU T2379 1.73GHz
2G内存 250G硬盘
Microsoft® Windows™ XP Professional
Microsoft Visual C++ 6.0 中文版 - 运行环境
Intel® Pentium® 2及以上处理器,32M以上内存,4G以上硬盘
Microsoft® Windows™ 9X/NT/2000/XP操作系统
800*600或以上的屏幕分辨率
第二章 硬件介绍
2.1 STC89C52概述
单片机是一种集成电路芯片,是采用超大规模技术吧具有数据处理能力的中央处理器CPU随机存储器RAM,只读存储器ROM,多种I/O口和中断系统,定时器计数器等功能(还包括显示驱动电路,模拟多路转换器,A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
因为单片机也是重要的计算机分支领域,所以对其的分类也是十分重要的和必要的。而在将其分类时,我们可以根据单片机本身的发展情况和应用领域,粗略的将其分为如下几个类型:专用型,通用型,非总线型,总线型,工控型,家电型。具体各个类型的用途和发展情况就不一一的详述了。
想要实现系统功能,就必须完成单片机与电路或外部功能信息交流。这时就需要用到管脚将它们相连接达到通连的效果,同时我们也称管脚将单片机的外特性表现出来。科技的进步,单片机也更加注重体积和外观了,所以科学家想出了让很多引脚是双功能或多功能的。就现在的情况来说,51单片机的封装形式是多种多样,本设计就以40线双列直播式封装形式为例尽心详细介绍,如图2-1所示。
图2-1 51单片机管脚图
1 主电源引脚
VCC—40脚。正常运行和编程校验电源为+5V,有些产品可放宽至2.7~6.0V。
VSS—20脚。电路接地。
2 时钟源
XTAL1—19脚。一般外接晶振的引脚。当单片机直接采用外部振荡信号源接地电平。
XTAL2—18脚。外接晶振的另一引脚。当单片机直接采用外部振荡信号源则作为输入端口。
3 控制,选通或复用
RST/Vpd—9脚。作为单片机复位信号输入端口。
ALE/PROG—30脚。作为输出允许地址锁存信号的输出端口,当编程入写时也是编程脉冲的输入端。
PSEN—29脚。作为连接外部程序存储器的选通信号输出端口,输出低电平时有效。
EA/Vpp—31脚。作为连接外部或内部程序存储器的选通信号输入端口,输入低电平时有效。
4 多功能I/O端口
P0 口—32~39脚。8位漏极开路双向I/O口。
P1 口—1~8脚,具有内部上拉电路8位准双向I/O口。
P2 口—21~28脚,具有内部上拉电路8位准双向I/O口。
P3 口—10~17脚,具有内部上拉电路的准双向I/O口,实际是个特殊的第二变异功能端口。
51单片机就是通过外部封装的40条脚组合成各不相同的应用系统。
51单片机核心组成部分则如下:
主要是由算术逻辑单元,累加器和寄存器组成的运算器;由指令寄存器,时序发生器和操作控制器的程序计数器和由程序计数器,指令寄存器,时序发生器和操作控制器组成的控制器以及主要寄存器。
2.2 keilC51的开发环境
KeilC51是由某公司出产的是拥有完美的开发环境使用C语言进行51单片机编程的软件开发系统。由于是使用的C语言进行编程,相信更加容易被广大使用者接受,因为相比于汇编语言C语言有更加多的使用对象而且C语言更加容易可读和维护也是相当容易可以学习的。而且KeilC51的装备还是很精良的:C编译器,宏汇编,连接器和库管理以及最重要的仿真调试器。
KeilC51 安装的要求(1)Pentium 或相应兼容处理器PC;(2)Windows 95,98,NT4.0操作系统;(3)至少16MB RAM 和20MB 硬盘空间。
具体的安装步骤:第一步双击安装源文件,则出现Keil软件安装画面,安装画面提示在安装之前应当先关闭其他应用程序;第二步单机下一步按钮,出现版权对话框,选择同意选项;第三步单机下一步按钮,出现安装路径对话框,系统有默认的安装的路径,也可以选择其他的安装路径;第四步单机“NEXT”按钮,出现用户信息对话框,需要填写各项信息;第五步单击下一步按钮,进入正常安装界面,显示安装进度和安装文件信息;第六步安装好了之后系统会自动跳转到安装完成界面,最后点击“Finish”安装结束。
代码优化:在Keil配置中默认的配置可以进行简单的程序开发,许多配置会影响应用程序代码的质量,如果适当的修改参数,可以改善代码空间,那将会提高开发效率。C51编译器有6种不同级别的优化:(1)常亮合并,一个表达式或地址计算式内的几个常量合并成一个常量(2)跳转优化,跳转反演或扩张为最终目标地址(3)无用代码消除,将不可执行的代码从程序中删除(4)寄存器变量,自动变量和函数自变量尽可能放在寄存器中没有为这些变量保留数据存储空间(5)参数通过寄存器传递,通过寄存器最多可传递三个函数自变量(6)全局共用的子表达式消除,将在一个函数中多次出现的子表达式和地址计算式尽可能只计算一次。
单片机的C语言对与Windows系统 和对于 Dos系统 的集成开发环境 (IDE)分别对应的是μVision和Ishell,IDE能够完成从编辑到编译到连接再到调试最后到仿真的整个开发流程。开发人员在编辑C或汇编源文件的时候,可以选择使用IDE本身或者其它编译器都是可以的。开发人员可以使用C51及C51编译器编译生成目标文件(.obj)。开发人员解决目标文件时可以通过LIB51来创建生成库文件,或者将其与库文件绑在一起通过L51以这种方法来生成绝对目标文件(.abs)。开发人员可以使用OH51 将abs文件转换变成标准的hex 文件,再将生成的文件通过调试器dScope51进行源代码调试或者也可以通过仿真器直接对目标板进行调试。
Keil C51开发软件的优点:
(1)Keil C51在生成的目标代码的速度效率方面有很大的优势,在生成的汇编代码排布也是很紧凑而且可以使读者很快的理解。开发大型软件Keil C51也能够体现出高级语言在软件开发方面的部分优势。
(2)C语言无论是在功能上,结构,可读性和可以维护上与汇编相比都更加容易学习也更加有优势。相信只有先用过汇编语言后,再使用C来开发软件的才会在这方面有更加深刻的感悟。
2.2 Nokia/诺基亚5110 LCD
Nokia的液晶显示屏除了使用在移动电话中,也可以作为各种便携设备的电子显示屏,我们可以看看它与其他产品的区别:
●84x48 的点阵LCD,可显示4 行汉字,
●接口线很少,包括信号与电源线只有9条,能够让串行口和CPU之间直接对话。也能够和各种类型的单片机进行通信,如AVR 单片机的SPI、MCS51的串口模式0等,数据传输迅速,写入数据无延时。
●如果想安装显示屏或显示屏损坏了想更换新的,十分方便,因为它是使用导电胶让模块与印制版连接,更本不需要到导线,用金属钩就可以连接。
●LCD 控制器与晶片已经绑定,模块的大小可以做到很小。
●使屏幕正常的工作的电流在200μA 以下,是低电流,具有省电模式。
用Nokia5110液晶的四大理由
1)具有成本效益,LCD1602可以显示32个字符,而Nokia5110差不多,可以显示15个汉字,30个字符。Nokia5110裸屏仅8.8元,LCD1602一般15元左右,LCD12864一般50~70元。
2)接口简单,仅4根I/O线就可使用,LCD1602是11根I/O线,LCD12864是12根。
3)速度迅速,是LCD12864的20倍,是LCD1602的40倍。
下面就是5110显示屏的实物图,如图2-2
图2-2 Nokia5110显示屏
2.3 GP2Y0A02YK0F红外激光测距模块
1、距离测量范围: 20 to 150 cm
2. 信号输出类型:电压模拟信号
3. 包装尺寸:29.5×13×21.6 mm
4. 功耗: 标称值33 mA
5. 供电电压:4.5 to 5.5 V
6.精度和采集的AD位数以及转化计算公式相关,10AD一般能达到0.1CM
GP2Y0A02YK0F它是夏普的一款红外激光测距模块。它一共有三部分构成,红外发光二极管,位置检测电路和信号处理三部分组成。在所用的三角测量中,有许多因素是不会影响到传感器的测量精度的,比如被测物体的材质,环境的温湿度,还有测量所需要的时间。当需要测量师,传感器所输出经过处理的电压和探测距离为负相关,有一条电压与距离的曲线。我们就可以通过测量电压得出距离,所以我们能够在很多场合使用它们,像测量距离和避开障碍。
在最近的数十年中,夏普开发了很多红外激光传感器。这些传感器体积小,能耗也很小。 工作原理: 基本夏普的红外传感器多是基于三角法测量的原理。通过发射一束特定角的光,通过红外激光的对象后,光束会反射回来,如下图所示。CCD检测器对反射后的红外光进行检测,并将得到移动的数值l,就可以利用在初中学过的几何知识进行计算,在原有就知道的一些值,像光发射的角度a,发射镜头和接受镜头中心的距离X,滤镜固有的焦距f后,我们就可以通过简单计算算出距离d。
从图2-3的三角测量原理中我们可以知道,如果测量的距离非常小的时候,光的移动值就可以很大,非常简单,CCD检测器就会根本看不到这个光,也就不会测到移动值了,这个时候电压就为0,也就是距离很远。还有一点,如果测距的距离很远,偏移的距离会非常小,这个时候如果CCD检测器精度不够的话,就不能够准确的测量这个值,所以想要测量的距离远,那个CCD的分辨率就一定要高。
图2-3 测距原理
非线性输出: SharpGS2XX系列传感器不是线性的。因此,我们要在现实生活中使用的时候进行修正数据。对传感器输出电压和测量距离画出一条曲线,就可以在实际使用中获得真实有效的值。图2-4是典型Sharp的GP2Y0A02YK0F的输出曲线图。从上图中,可以看到,当探测距离小于10厘米时,输出的电压急剧下降,可以看到物体的距离越来越远了,单从电压看距离远了。
图2-4传感器数值曲线图
第三章 硬件系统介绍
3.1 红外激光测距的实现构想
为了实现红外激光测距,在硬件设计中,我们可以使红外激光发射驱动电路驱动发射头的红外二极管发出红外激光,当红外激光由CCD接收到,并通过电压转换,将其转换为可测量的电压值,因为接收到的光距离CCD中心距离会随距离的缩小而增大,红外接收电路转化的电压值会随之增强。又因为电压与距离成比例,通过对转换的电压的计算,我们可以知道红外发射模块与接收模块的距离。
我们采用LCD显示屏动态显示变化中的距离, LCD显示器与STC89C52芯片的P0口与P2.0-2.5接口相接,在接受激光过程中,STC89C52芯片内部会将电压模拟量通过A/D转换将其转化为可显示的数字量,然后通过LCD显示器显示出。键盘与AT89C52芯片的P1.3、P1.4、P1.5引脚相接,通过键盘接口可以实现设置距离的报警值。而通行串口通过P3.0,P3.1进行下载与擦除。
3.2 结构框图
图3-1 结构框图
3.3 系统硬件结构电路图
整个红外测距系统由STC12C5A芯片、红外激光测距模块、键盘、A/D转换电路与LCD显示器等构成,如图3-2所示。
图3-2 整体电路图
3.3.1 ISP电路
通过下载引脚为P3.0、P3.1,也就是RXD和TXD进行程序下载与擦除 ,如图3-3所示。
ISP 即(In-System Programming)在系统可编程,就是在电路板上器件可以被编入最终的用户代码, 不用从电路板上拆下原件,已经编程的器件也可以用ISP 方式擦除或再编程,ISP技术是未来发展方向。
XL2000的ISP部份是业界首创的得前卫产品,它完美的将编辑器的可靠性与下载的方便性融合到一起。经单片机控制时序, 将并口ISP 兼容能力,可靠问题完全解决了。快速轻松的对目标板在系统编程,将相关引脚引入目标板中。
图3-3 下载与擦除电路
3.3.2 稳压电路
稳压电路是一种可以保持输出电压稳定值的电路,它无关于其它的一些因素,像输入的电压,负载为多少,环境的变化,还有电路本身的参数。这一种电路是可以持续输出稳定的直流电源,被广泛的采用。而在这个电路中,最重要的是lm7805了。
Lm7805稳压器能够让高于5V的直流电经过整压后以5V输出,lm7805作为三端稳压集成电路,是稳压电路中极其重要的一部分。我们可以看到,在7805中,有两个电容,它们分别是用作于输入输出的滤波电容,还有一个负载电阻。一般来说,如果7805输出的电流较大时,我们就应该考虑到散热,加个散热板。
我们可以看到lm7805连接着三个引脚,一根时接地,还有两根分别输入和输出电压,还有一种可以增加输出电压的得电路,在7805的2脚和地之间连接一个用作于稳压的二极管,我们可以将输出电压增加,增加的值为二极管的稳压值。
稳压电路如图3-4所示。
图3-4 稳压电路
3.3.3 显示模块Nokia5110lcd
5110液晶屏的6根引脚与51单片机的P2 I/O口的连接方式:
5110_RST <—> P2.0
5110_SCE <—> P2.1
5110_OSC <—> P2.2
MOS1(SDIN) <—> P2.3
MIS0(DC) <—> P2.4
SCK <—> P2.6
如图3-5所示为5110的连接方式。
图3-5 5110显示电路
3.3.4 键盘
我们设置键盘(图3-6)进行更改距离,所以使用一个单独的键盘按键输入单元,三个按钮,两个按钮和单片机的p35和p35相接,另一个与int1连接,通过键盘接口可以实现设置距离的报警值。
图3-6 按键
3.3.5红外激光测距模块
GP2Y0A02YK0F测距模块拥有三条接口,一个接地,一个接电源,一个是数据传输接口。它由PSD(position sensitive detector) 和IRED (infrared emitting diode) 以及信号处理电路三部分组成。三角测量法中,被测物体的材质,温度湿度,测量时间不会影响到传感器的测量精度。传感器输出电压正比于探测距离。通过测量电压检测对象就可得出距离,从而使传感器可以用于距离的测量,避障等场合。
图3-7显示了模块的连接方式。
图3-7 测距模块
3.3.6复位电路
复位电路(图3-8)设计能够直接关系到单片机系统工作的稳定性,因为单片机电源电压变化时刻不稳定,那么单片机不能立即投入工作,需要继续保持在复位状态,直到电源稳定,单片机才开始工作。复位电路有三种,有手动按键(上电)复位、自动上电复位和积分复位。在此说明最简单的上电复位:即上电后由于电容作用单片机延时一段时间后再开始工作(选择电解电容有正负极,耐压10V以上,容量10uF,使用时不可以接反,电容外壳上白为负极,黑为正极)。
图3-8 复位电路
3.3.7 时钟电路
单片机内核时钟相当于心脏,其的波形在XTAL1和XTAL2引脚上为波形,频率为所选晶振频率,在51单片机中,晶振频率一般选择为11.0592M或12M。频率决定单片机的速度,波形质量决定了单片机系统的稳定性,一般把两个滤波电容接在晶振两个引脚接,电容一般选择15~45pf。
单片机的时钟通常需要多种时钟,所以时钟振荡器有振荡器与分频器组成。
Mcs-51内部有一个可控高增益反相放大器,它是用于构成振荡器的。Xtal1和xtal2是该放大器的输入端与输出端。在片外跨接一个晶振和两匹配的电容c1与c2,就构成了自激振荡器,如图3-9。
晶体振荡器,简称晶振。在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。一般的晶振的负载电容为15p或12.5p ,如果再考虑元件引脚的等效输入电容,则两个22p的电容构成晶振的振荡电路就是比较好的选择。晶体振荡器也分为无源晶振和有源晶振这两种类型。无源晶振和有源晶振(谐振)的英文名称不同,无源晶振为crystal(晶体),而有源晶振则叫做oscillator(振荡器)。无源晶振需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振是一个完整的谐振振荡器。
图3-9 时钟电路
3.3.8蜂鸣器电路
NPN三极管的基极由IO口控制,P1.7高电平时三极管导通,蜂鸣器与电源的通路接通,蜂鸣器报警,P1.7低电平时三极管截止,蜂鸣器的通路断开不报警。如图3-10所示。
图3-10 蜂鸣器电路
3.4测距原理与测距方法的选择
3 3.1相位激光测距
由于它具有很高的准确度,一般情况下能够达到毫米级,为了能够有效的反射信号,并且为了能使被测量的物体限制在与仪器精度相关的某一个定位点上,对于这种测距仪一般都会配置有一个反射信号的镜子。
如果调节与光相关的角频率ω,在需要测定的距离D上面来回往返的相位延迟为φ,则可以算出对应时间t : t=φ/ω 将此关系代入(3-6)式距离D可表示为
D=1/2 ct=1/2 c·φ/ω=c/(4πf) (Nπ+Δφ) =c/4f (N+ΔN)=U(N+)
式中:
其中:
激光信号来回φ–总相位延迟。
ω–角频率调制信号,ω=2πF。
U–值等于四分之一波长调制单元长度
波长调制N–勘测线包含一半的数量。
Δφ–信号线和所测量的相位延迟时间产生较少的π部分。调制波是勘测线ΔN–波长包括小于一半的小数部分。
半ΔN=φ/ω在给定调制和标准大气条件,的频率的C /(4πf)是一个常数,然后测量到一半测量线的距离包含测量和少量的小数部分的波长测量测量N或φ,由于现代精密加工技术和无线电测向技术发展阶段,φ是为了实现高的测量精度。
由于没有一个相角φπ的可通过测量不同的方法,通常是最广泛使用的测量延迟和相位的数字测量阶段进行,目前的近程激光测距仪用在数字测量原理,为了获得相位φ。
3.4.2脉冲法激光测距
事实上,该原理类似于超声波的相位法测距,从可能的最大大约几百米,精度可达到毫米级,但根据从使用相法这一原理是有限的,不能扩展,这种方法广泛应用于国外。脉冲激光一般为使用红外激光器,包括近红外和远红外激光的激光,这两者分别发出可见和不可见的光点。在此技术基础,我们所需要的激光连续性,所以测距仪要求速度慢,瘦肉,峰值输出功率能够高重复率的良好和广泛的。脉冲激光测距的原理是:
现在讲一讲脉冲激光测距的原理:
首先当确定激光测距的目标时,就发射一束光脉冲,光脉冲经过光学透镜后,就有一束在透镜内进入激光的反馈电路中,他记载着发射时间,在光电转换和整流滤波后,电平信号转换成数字开始时间结束转换芯片;另一种是由脉冲激光束的发散角透镜压缩的飞行漫目标障碍物的开始遇到后,激光返回到电路的激光接收处理部,以同样的方式,由光电转换和信号放大级滤波器,整流所得到的时间 - 数字转换器芯片来结束的定时的末尾,以完成测量过程。
其中D是测量距离,T为测量点的分析,花,空气中的速度c激光传输(假设你已经设置了环境参数测量)的时间之间的往返,n是测量大气折射率,所以容易得到:D = CT / 2N
3.4.3 激光三角法测距
在被测物体表面上方,用一束激光以一定的角度照射,激光在物体表面发生反射或散射,在另一个角度用成像系统对激光反射或散射光进行汇聚成像,被测物体上激光照射所产生的光斑的位置变化,光反射或散射的角度也会变化,用光学系统对光线进行汇聚,光斑成像在CCD或者PSD位置传感器上,沿激光方向当被测物体发生移动时,位置传感器上的成像光斑就会发生移动,其位移对应物体移动距离,从而间接的实现激光测量。由于入射和反射光构成一个三角形,对光斑 位移的计算,几何三角和激光器运用其中,所以这种方法被称为激光三角测量法。
激光三角法位移测量的原理是,发射一束激光就会形成在被测物体的体表上以某一角度聚焦,然后从另一角度反射回来,对反射激光光斑进行成像,发射的激光照到被测物体的表面也会有不同,所以散射或者反射回来的光也会有很大的不同,使用CCD光电探测器通过检测出光斑像的位置,就可以计算出主光线的角度,从而计算出物体表面激光照射点到测距仪之间的距离。
放在以前,因为技术原因,成本高和体积大等方面的因素,它的应用没能够普及开来。随着时代的发展,近年来电子技术在不断的发展,尤其是半导体激光器和CCD等光电图像探测电子芯片的发展,激光三角的测距仪在性能不断改善,体积也越来越小了,成本也下降了,也能从实验室中走出来了,从研究到实际。
用在测量传感器和被测目标之间直线距离的激光三角测距仪器已经出现了10多年了,随着一些数字电子原器件和拥有大功率数字信号处理器的联合使用让激光能够对于目标的颜色和背景噪音变得不是十分的敏感,使得激光三角的测量技术得到了长足的发展。
在这个时间内,市场上已经出现了一大批视觉相机,它是用来检测标签方向,探测一些物品的表面是否有一些缺陷,近年来则用来做更加复杂的事,比如孔径、沟槽间隙或者是机加工(成形)零部件上的通道等。
台阶高度测量
激光三角测量可以用在很多方面,像在于台阶的高度,确定被挤压的物品的形状和机器人的定位和控制,可以提供很好的分辨率。但是使用这种测量方法也有局限,原因是因为传感器的尺寸非常的小,测距距离很小,就意味着需要很多传感器,因此让这种方法贵又复杂。
将激光三角传感器和一种控制器相连接起来,就能够在直线上获得有用的二维数据。但是这种方式能够产生直线而不是一个点,而这种控制器应该能够输出横跨直线的距离数值。不过这种系统的局限在于过于巨大,而且传感器有移动部件,就会出现应震动和冲击而损坏。
在线测量对于三角激光测量来说是一个很重要的应用领域,它可以完成许许多多非接触式测量,这是接触式测量不能完成的任务。一般的光学测量在大地测绘和建筑工程中有非常多应用,其中的测量距离的方法基础原理是三角几何学。
在90年代左右,人们认识到可以将激光和三角测量原理相结合起来,也就形成了今天的激光三角测距器。它有很多优点,精度很高不会受到被测量物体性质的影响,比如材料、质地、形状、反射率。从白色到黑色,从塑料,金属到陶瓷。
3.4.4激光的选择
激光测距仪一般分为红光与红外激光,红外看不到。我们这里选择红外,下面为红外线的介绍和他的一些优点。
在最近的二十年来,红外辐射技术已经快速发展成了一门新兴技术科学。他被广泛的应用在很多重要的领域如医疗,军事,生产,科研。红外线的辐射也能够作为发展测量技术,空间科学技术和遥感技术的手段。
红外线作为电磁波的一种,它的波长有一定的范围,为0.6到1000μm。一般情况下,我们将红外线分成两部分;波长小于5.6的,离红色比较近的为近红外线;波长大于5.6的,我们将它称为是远红外线;将它们区分为远近红外线是相对的,也有的人将它们区分为近红外,中红外,远红外。波长2以下为近红外;波长为2到25为中红外,大于25为远红外。
世界上的红外线的产生跟温度是有很大的关系。自然界中所有的物体,只要温度大于绝对零度,都会辐射出红外线。它辐射的能量大小和发出的波长是有这个物体表面的温度决定的。根据黑体辐射,我们可以得到。物体表面浮射出的能量和温度的四次方成正比;物体温度越低,它的波长越长,随着物体表面的温度上升,它发出的波长也就越短,就是随温度升高,波长向近红外移动。
发射出的红外线一旦被物体吸收,红外辐射出的能量就可以转化为热能,它能够加快物体的温度上升。当红外线发生器发出的红外光照到某件物体表面的时候,它发射出的频率和物体分子运动的频率相同时,就会产生该物体分子的强烈振动,就会使该物体产生剧烈摩擦,温度就会上升。所以常常说红外线为热辐射线或者叫温度射线。可以根据这种射线的性质,利用红外辐射涂层的时候,能够照射这种涂层加快干燥。当发射一束红外激光时,能够有一部分被涂层吸收,转化为热能从涂层下方加热涂层。由于这一种涂层的自发热效应,能够加快有效地加热涂层。而且这种加热自内向外,自上而下,干燥过程与预热干燥相似,所以效果很好。
红外线不易散射,它具有很强的穿透能力 ,它能够穿过云雾等悬浮物,而且还具有抗干扰能力,对于环境影响较小,也不会干扰邻近的无线设备,因此能够得到很广泛的使用。
现在,有一些红外的发射器件和一些接收器件都能够发出和接受是波长在一定范围内的光,正好它们的波长能够匹配。红外它具有许许多多的特点,可以被吸收,反射,折射,散射和干涉。黑体是能够将所有光吸收的(包括红外辐射),还有能够将所有的光反射的为镜体,另外还有将所有光透射的透明体。严格来说,大自然中是不存在这三种物质的,只有部分反射,部分吸收的灰体。
红外的优点:
1.采用红外激光的发光二级管,结构很简单,体积小,成本较低
2.对红外的调制很简单,能够实现编码发射
3.红外线不会通过阻碍物
4.具有低耗能,反应快的特点
5.具有极强的在干扰环境下工作的能力
6.不会对环境造成污染,基本上对于人畜无害
第四章
软件系统设计
4.1 系统软件流程图
按工作原理与硬件结构分析可知系统主程序工作流程图(如图4-1)。在整个系统运行过程中。当红外系统被启动后,首先,对STC12C2单片机进行初始化。然后,当STC89C2单片机接收到红外接收电路传输的电压信号后,经A/D转换程序,将片外的模拟信号转换为单片机可识别的数字信号,并经电压和距离转换子程序,将变化的电压转换为距离。最后,在动态扫描LCD显示器上显示出来。主程序流程图上图所示。
图4-1 软件流程图
4.2 部分代码
LCD部分
写入八位比特数据
void writeByte(unsigned char wByte, unsigned char datOrCmd)
{
unsigned char i;
CS = 0; //使能
DC = datOrCmd; //1-数据 //0-指令
for(i = 8; i; i–) //8位数据, 先高后低
{
if(wByte & 0x80) {
DIN = 1;
}
else {
DIN = 0;
}
CLK = 0;
wByte <<= 1; //移位(延时)
CLK = 1; //上升沿写入
}
CS = 1; //禁止
}
清屏
void clear()//清屏
{
unsigned int i;
writeCmd(0x80);
writeCmd(0x40);
for(i = 504; i; i–){
writeDat(0x00);//将所有RAM写0
}
}
设置写数据位置
//x: 0 - 83
//y: 0 - 5
void moveTo(unsigned char x, unsigned char y)//设置写数据位置
{
writeCmd(x|0x80);
writeCmd(y|0x40);
}
设置写入字符
//x:0~9
//y:0~2
void writeChar(unsigned char x, unsigned char y, unsigned char c) //写一个字符