激光脉冲测距实验
1.实验目的
通过学习激光脉冲测距的工作原理;了解激光脉冲测距系统的组成;搭建室内模拟激光脉冲测距系统进行正确测距,为今后的工程设计奠定理论基础和工程实践基础。
2.实验原理
激光脉冲测距与雷达测距在原理上是完全相同的,如图2.1所示。
在测距点激光发射机发射激光脉冲,光脉冲经过光纤到达接收端,并被测距机上的探测系统接收。测出从激光发射时刻到被接收时刻之间的时间间隔t,根据已知光速,即可求出光纤的长度R为
R=/2 (2-1)
式中c为光速。真空中的光速是一个精确的物理常数
C1=299792458 m/s
光纤中的平均折射率n为
n=1.000275266
故光纤中的光速为
C=299710000
可见,激光测距的任务就是准确地测定时间间隔t。当不考虑光纤中光速的微小变化时,测距精度⊿R主要是由测时精度⊿t确定的
⊿R=C⊿t/2 (2-2)
实际脉冲激光测距机中是利用时钟晶体振荡器和脉冲计数器来测定时间间隔 t的。时钟晶体振荡器用于产生固定的频率的电脉冲振荡,脉冲计数器的作用是对晶体产生的电脉冲个数进行计数。设晶体振荡器产生的电脉冲频率为f,则脉冲间隔T=1/f。若从激光脉冲发出时刻脉冲计数器开始计数,到光脉冲被接收时刻停止计数。设这段时间内脉冲计数器共计得脉冲个数为m,则可计算出被测光纤的长度为
R=1/2cmT=cm/f=1.6m (2-3)
相应的测距精度为
⊿R =1/2Ct=c/(2f) (2-4)
可见,脉冲激光测距机的测距精度由晶振的频率决定。常用军用激光测距仪的晶振频率有15MHz、30MHz、75MHz和150MHz等,与其相对应的测距精度分别为正负10m、正负5m
、正负2m和正负1m。晶振的频率愈高,测距精度就愈高,
但随之而来的,不仅是计数器的技术难度增加,而且要求激光脉冲的宽度愈窄,激光器的难度也增加。
对脉冲测距系统,计数器的“开门”信号是由取出一小部分发射激光脉冲经光探测器转换成电信号形成的。这两个信号既可由同一探测器提供,也可以用两个探测器提供。
激光脉冲测距机由激光器、发射光学系统、接收及瞄准光学系统、取样及回波探测放大系统、技数及显示器和电源几部分组成,如图2.2所示
系统操作人员一旦下达发射激光命令,激光器发射一束窄激光脉冲,经发射光学系统扩束后射向接收系统,其中一小部分经取样后启动计数器开始计数。激光回波经测距机的接收和瞄准光学系统,聚焦到前面有窄带滤光片的光探测器上。由探测器将其转换成电信号,再经取样及回波探测放大系统处理后产生“关门”信号用于关闭计数器。由计数器计得的脉冲个数计算出光纤得电源 计数及显示器激光器 长度,再通过显示器显示出来。
3.实验装置
实验装置包括“激光脉冲发射/接收电路板”、电脑和“单片机开放板”。
1.激光脉冲发射/接收电路板组成及工作原理
激光脉冲发射/接收电路板原理框图如图2.3所示。图中EMP 3032为CPLD;MAX3656为激光驱动器;MAX3747为限幅放大器;T22为单端信号到分差信号转换芯片;T23为差分信号单短信号转换芯片;LD为半导体激光器;PD为光探测器。板子上端的EMP3032被编程为脉冲发生器,输出重复频率为1KHz,脉冲宽度为48ns的电脉冲信号。此信号经MAX3656放大后驱动LD发光。板子下端的EMP 3032被编程为计数器,对125MHz晶振计数器。其计数的开门信号来自上端的TX信号,关门信号来自PD的输出。计数器的计数结果采用12位二进制数据输出,对应时间范围为0~32.76us.
图2.3 发射/接收模块原理框图
发射/接收模块布局如图2.4所示,TX、RX1、RX2为三个Q9插座。其中,LD的
驱动信号由TX口输出;PD接收到的信号由RX输出。
2.接口管脚说明
插座J9为计数结果输出管脚,包括12位数据管脚和1位计数指示管脚:
? 数据管脚的高八位(从第12到5位)分别对应J9
的1、3、5、7、9、11、13、15;
数据管脚的低四位(从第4到11位)分别对应J9的16、14、12、10。高电平为1,低电平为0;
? 计数指示管脚为J9的第六位。计数指示为1表示
正在计数,0表示计数结束。
4.实验内容与要求
图2.4 实验系统组成框图
实验系统主要由激光脉冲发射/接收电路板(其上包括脉冲半导体驱动器、脉冲半导体激光器、光电探测接收系统、计数器)和单片机开发板(其上包括单片机及显示模块)组成。其中脉冲半导体激光驱动器产生重复频率为1KHz,脉冲宽度为24ns的电脉冲信号驱动半导体激光器工作,同时此脉冲信号作为计数器的开门信号启动计数器开始对高速晶振输出的脉冲个数计数。半导体激光器输出光脉冲耦合到光纤中,经过一定长度的光纤传输后再被光电探测器接收转换成电信号,经过放大后作为计数器的关门信号,使计数器停止计数。此时计数器计到的脉冲个数再乘以晶振的周期即为光脉冲在光纤中的传输时间,此时间乘以光在光纤中的传播速度即为光线的长度。单片机将计数器的计数值读入,计算出距离值并显示出来。
单片机程序:
/****************************************/
//-------------脉冲测距程序-------------//
//------//
/****************************************/
#include <reg52.h> //头文件
#define uchar unsigned char //两个宏定义 ,只是为了方便
#define uint unsigned int
uchar code SEG7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x80};
//数码管的编码
uchar SAV[6] = {10,10,10,10,10,10};
//初始化数码管,使其初始时均无显示
uchar code ACT[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //位选的编码
void delay(uchar); // 延时函数声明
void display(); //显示函数声明
void count(uint) //计算各个数码管显示数字大小函数的声明
uint Get_Data(); //读取数据函数声明
void main() //主函数
{uint Dis_Data;
Dis_Data = Get_Data()*16; //将读取的数据进行计算,得到距离
count(Dis_Data) //计算各个数码管显示数字大小
while(1) //主循环
{
display( ) //显示函数 };
}
void delay(uchar time) //延时函数
{
while(time>0) time-- }
void count(uint Con_Data) //计算各个数码管显示数字大小函数
{
SAV[0] = Con_Data%10; //计算个位数据
SAV[1] = Con_Data/10%10; //计算十位数据
SAV[2] = Con_Data/100%10; //计算百位数据
SAV[3] = Con_Data/100/10%10; //计算千位数据 }
void display( ) //显示函数
{
uchar i = 0;
for (i = 0; i<4 i++ ) //for循环用于进行循环显示
{
P0 = SEG7[SAV[i]] //显示函数的主体 ,P0作为字线输出
P2 = ACT[i];
delay(200);
P0 = 0xff
P0 = SEG7[11];
P2 = ACT[1]; //P2作为实验板的位线
delay(200) //延时函数
P0 = 0xff //防止出现余辉现象
}
}
uint Get_Data() //读取数据函数
{
uint Last_Data;
uchar Data;
/* */
P3 = 0xff;
// while(P3^3!=0); //检验数据传输是否完成
Data = P3 //读取P3口数据
Last_Data = Data&0xf0; //获取P3口数据的高四位
Last_Data = Last_Data<<4; //数据左移4位,因为读入的是高位
P1 = 0xff; //P1口置高,这是读取数据的需要
Data = P1; //读取P1口数据
Last_Data = Last_Data +Data; //高四位+第四位=周期数
/*以下为未接激光测距芯片时用来测试单片机算法的
Last_Data = 0xff&0xf0;
Last_Data = Last_Data<<4;
Data = 0x00;
Last_Data = Last_Data +Data;*/
return Last_Data
}
总结:
这个实验很有用,特别是对于我们电子类专业的学生,现在激光技术在工业、医疗、商业、科研、信息和军事等研究中应用的非常广泛。这是一次我们接触这方面的实验,在实验中我们将大一学习过的编程学以致用,同时此次实验也为我们提供了一个练习编程的机会。我认为作为一名工科生,单片机是我们大学生活中的一个玩伴,通过这门课程的学习,我们已熟悉地掌握单片机的基本操作,同时对激光测距有了基本的认识,,更重要的是我们通过相互帮助,相互学习完成了这个实验,实验同时提高了我们的实践动手能力。见到不少实验仪器,对实验的过程有了更全面的体会,注意到每一个实验都有各自的严谨性和特殊的方法。
建议:
1:该门实验选修课是一门综合性较高的科目,我们能够学到基础课程之外的很多东西,知识量较大,若能多安排几个课时与学分,就更好了。
2:每组若分为一大组,两小组的话这样可以加强同学间的协作,同时能够学到更多东西。
第二篇:基本长度测量测定实验报告
基本长度的测量
实验目的
1. 掌握游标和螺旋测微装置的原理,学会游标卡尺和螺旋测微器的正确使用
2.学习记录测量数据(原始数据)、掌握数据处理及不确定度的估算和实验结果表示的方法。
实验原理
1、游标卡尺构造及读数原理
游标卡尺主要由两部分构成,如(图2–1)所示:在一毫米为单位的主尺上附加一个能够滑动的有刻度的小尺(副尺),叫游标,利用它可以把主尺估读的那位数值较为准确地读出来。
图2–1
游标卡尺在构造上的主要特点是:游标上个分度格的总长度与主尺上()个分度格的长度相同,若主尺上最小分度为,游标上最小分度值为,则有
(2.1)
那么主尺与游标上每个分格的差值(游标的精度值或游标的最小分度值)是:
(2.2)
图2-7
常用的游标是五十分游标(=50),即主尺上49 mm与游标上50格相当,见图2–7。五十分游标的精度值=0.02mm.游标上刻有0、l、2、3、…、9,以便于读数。
毫米以上的读数要从游标“0”刻度线在主尺上的位置读出,毫米以下的数由游标(副尺)读出。
即:先从游标卡尺“0”刻度线在主尺的位置读出毫米的整数位,再从游标上读出毫米的小数位。
游标卡尺测量长度的普遍表达式为
(2.3)
式中, 是游标的“0”刻度线所在处主尺刻度的整刻度(毫米)数, 是游标的第 条线与主尺的某一条线重合, 。图2–8所示的情况,即 。
图2–8
在用游标卡尺测量之前,应先把量爪A、B合拢,检查游标的“0”刻度线是否与主尺的“0”刻度线重合。如不重合,应记下零点读数,加以修正,即待测量。其中,为未作零点修正前的读数值,为零点读数。可以正,也可以负。
使用游标卡尺时,可一手拿物体,另一手持尺,如图2–9所示。要特别注意保护量爪不被磨损。使用时轻轻把物体卡住即可读数。
图2–9
2、螺旋测微器(千分尺)
常见的螺旋测微器如(图2–10)所示。它的量程是25mm,分度值是0.01mm。
螺旋测微器结构的主要部分是一个微螺旋杆。螺距是0.5 mm。因此,当螺旋杆旋一周时,它沿轴线方向只前进0.5mm。
螺旋柄圆周上,等分为50格,螺旋杆沿轴线方向前进0.01 mm时螺旋柄圆周上的刻度转过一个分格
这就是所谓机械放大原理。
测量物体长度时,应轻轻转动螺旋柄后端的棘轮旋柄,推动螺旋杆,把待测物体刚好夹住时读数,可以从固定标尺上读出整格数,(每格0.5mm)。0.5mm以下 图2–10
的读数则由螺旋柄圆周上的刻度读出,估读到0.001mm这一位上。如图2–11(a)和(b),其读数分别为5.650 mm、5.150mm。
(1) 记录零点读数,并对测量数据作零点修正。
(2) 记录零点及将待测物体夹紧测量时,应轻轻转动棘轮旋柄推进螺杆,转动小棘轮时,只要听到发出喀喀的声音,即可读数。
图2–11
实验仪器
游标卡尺: 精度值:0.02mm 量程:125mm
螺旋测微器: 分度值:0.01mm 量程:25mm
被测物体: 小球;空心圆柱体。
实验内容
1.螺旋测微器测量圆球直径,不同位置测量6-8次,计算其不确定度,并写出测量结果的标准形式。
2.用游标卡尺测量空心圆柱体不同部分的外径、内径、高度,各测量6-8次。计算空心圆柱体的体积及其不确定度,并写出测量结果的标准形式。
数据处理:
1、用千分尺侧小钢球直径
根据测量原始数据,得小钢球直径测量值,数据如下表:
的测量值为:
A类不确定度为:
B类不确定度为:
总的不确定度
钢球直径测量结果:
2、用游标卡尺测量空心圆柱体的体积
根据测量原始数据记录,整理数据如下表:
D的A类不确定度为:
同理:
D的总的不确定度为
:
同理:
空心圆柱体的体积为:
的不确定度
根据:
有: ; ;
空心圆柱体的体积测量结果:
注: 实验室条件:1、温度:25.0℃; 2、大气压强:759mmHg;
3、湿度:65%