位移测量.光学模块和光电转换电路图的绘制和
本方案顺利完成了位移测量、光学模块组建和光电转换电路图的绘制和PCB的制作,程序也编译无误。以下提供光学模块(图4.1)和(图4.2)光电转换电路板的实物照片的展示。

图4.1 光学模块
图4.2光电转换电路板
在完成整个方案的过程中,基本上分为三步走:第一步,激光器发射出激光通过激光镜头和准直镜后将激光准直为平行光束,之后平行光束通过半透半反棱镜、
波片、物镜后将激光聚焦到反射镜平面,然后反射镜将激光放射,激光按相同光路放回至半透半反棱镜,由于棱镜作用将光路转折90°角,最后激光通过双柱面镜后到达QP50-6-TO8四象限光电探测器感光区。第二步,QP50-6-TO8四象限光电探测器受激光光束激发产生电流信号输出至光电转换电路,电流信号经过光电转换电路后输出离焦电压信号。第三步,通过KL25Z128LV飞思卡尔板的AD引脚对离焦电压信号进行采样并通过程序计算得出相应的离焦电压信号值,然后通过逐次比较的方式判断离焦电压信号值所属值域并进行离焦量求取,最后将离焦量通过LED数码管进行显示输出。
以上三步都可以实现,且整合在一起也能够相互衔接,但是也存在一些问题。例如光学模块中的透镜无法做到彻底的防尘工作;光电转换电路板的输出存在噪声印象;KL25Z128LV飞思卡尔板与光电转换电路板直接引线直接存在感应电动势,影响AD数据采集的精确度等问题都需要考虑和解决。
虽然本方案现阶段只是一个实验品,且系统各部件都是组装而成。但是一点都不影响他的发展前景。在之后的过程中,可以通过CAD将光学模块设计成一个可调节的透镜套筒,实现各部件自由组装拆卸且对透镜起到防尘作用;可以对光电转换电路进行优化,通过增加滤波电路及其他环节实现电路输出优化,减小误差;可以在光电转换电路的基础之上加入AD采样功能和显示功能,提高集成化;可以增加串口输出功能,将测量结果传送至计算机,通过软件技术实现平面平整度测量及3D图像显示。
由于前期设计所得的离焦量线性变化趋势仅能作为设计之初参考,实际离焦量变化趋势与理想设计的离焦量变化趋势相近,但有局部变化且具体值不同。因此需要对离焦量与离焦信号进行逐部测量并通过程序设计进行标定。
具体测量结果如下所示:
刻度值(mm) |
测量值(V) |
平均值(V) |
2 |
4.8311 |
4.7923 |
4.8194 |
4.8517 |
4.8436 |
4.8411 |
4.82962 |
1.9 |
4.7645 |
4.7324 |
4.7231 |
4.7498 |
4.9341 |
4.7823 |
4.78434 |
1.8 |
4.6314 |
4.6026 |
4.62739 |
4.6549 |
4.5518 |
4.601 |
4.607538 |
1.7 |
4.5434 |
4.2498 |
4.513 |
4.51739 |
4.4827 |
4.4398 |
4.440538 |
1.6 |
4.4849 |
4.3877 |
4.4373 |
4.4144 |
4.4231 |
4.4123 |
4.41496 |
1.5 |
4.32 |
4.3368 |
4.2949 |
4.3456 |
4.2857 |
4.3123 |
4.31506 |
1.4 |
4.2278 |
4.3112 |
4.291 |
4.1559 |
4.1862 |
4.2389 |
4.23664 |
1.3 |
4.2007 |
4.1958 |
4.186 |
4.164 |
4.1818 |
4.1845 |
4.18242 |
1.2 |
4.1301 |
4.0286 |
4.0841 |
4.0307 |
4.0601 |
4.0038 |
4.04146 |
1.1 |
3.9484 |
3.9638 |
4.005 |
3.991 |
4.0598 |
4.0001 |
4.00394 |
1 |
4.007 |
4.009 |
3.9982 |
4.0605 |
3.9433 |
3.9978 |
4.00176 |
0.9 |
4.05 |
3.9688 |
3.93506 |
3.9645 |
3.95 |
3.9667 |
3.957012 |
0.8 |
3.8899 |
3.8911 |
3.8642 |
3.98 |
3.9094 |
3.9457 |
3.913383333 |
0.7 |
3.76419 |
3.819 |
3.8334 |
3.742 |
3.8789 |
3.7325 |
3.794998333 |
0.6 |
3.6258 |
3.652 |
3.61101 |
3.6086 |
3.6576 |
3.632 |
3.631168333 |
0.5 |
3.5088 |
3.5172 |
3.5764 |
3.5592 |
3.5746 |
3.5422 |
3.5464 |
0.4 |
3.3836 |
3.351 |
3.3826 |
3.2781 |
3.3921 |
3.3281 |
3.352583333 |
0.3 |
3.233 |
3.1786 |
3.276 |
3.3008 |
3.2474 |
3.2268 |
3.243766667 |
0.2 |
3.1794 |
3.218 |
3.1904 |
3.1778 |
3.2382 |
3.2124 |
3.2027 |
0.1 |
3.2102 |
3.2185 |
3.1714 |
3.173 |
3.2346 |
3.1466 |
3.192383333 |
0 |
3.111 |
3.1667 |
3.1458 |
3.1786 |
3.115 |
3.0159 |
3.122166667 |
-0.1 |
2.9373 |
2.8113 |
2.928 |
2.9148 |
2.9615 |
2.9365 |
2.9149 |
-0.2 |
2.8977 |
2.8223 |
2.80839 |
2.7995 |
2.8402 |
2.9105 |
2.846431667 |
-0.3 |
2.5942 |
2.7302 |
2.6561 |
2.5825 |
2.6149 |
2.6103 |
2.631366667 |
-0.4 |
2.4584 |
2.5342 |
2.5282 |
2.5649 |
2.4386 |
2.5268 |
2.508516667 |
-0.5 |
2.309 |
2.3327 |
2.3212 |
2.2879 |
2.3201 |
2.2746 |
2.307583333 |
-0.6 |
2.1369 |
2.1694 |
2.0891 |
2.1022 |
2.1124 |
2.1055 |
2.11925 |
-0.7 |
1.9243 |
1.8575 |
1.9681 |
1.9919 |
1.95004 |
1.95 |
1.940306667 |
-0.8 |
1.81706 |
1.7048 |
1.8109 |
1.8295 |
1.7152 |
1.8177 |
1.782526667 |
-0.9 |
1.789 |
1.6884 |
1.7573 |
1.7892 |
1.6702 |
1.7208 |
1.735816667 |
-1 |
1.6607 |
1.5131 |
1.6774 |
1.6721 |
1.6657 |
1.6141 |
1.63385 |
-1.1 |
1.5858 |
1.4419 |
1.6103 |
1.5377 |
1.6002 |
1.6162 |
1.56535 |
-1.2 |
1.4657 |
1.3753 |
1.3976 |
1.4716 |
1.4931 |
1.4195 |
1.437133333 |
-1.3 |
1.2951 |
1.2242 |
1.3474 |
1.3474 |
1.3076 |
1.4442 |
1.32765 |
-1.4 |
1.1733 |
1.0229 |
1.2411 |
1.2362 |
1.2506 |
1.191 |
1.18585 |
-1.5 |
0.9548 |
0.8947 |
1.0626 |
1.01801 |
1.1129 |
1.0335 |
1.012751667 |
-1.6 |
0.8205 |
0.8104 |
0.8495 |
0.8101 |
0.8496 |
0.8563 |
0.832733333 |
-1.7 |
0.7328 |
0.7491 |
0.8104 |
0.7829 |
0.7489 |
0.7318 |
0.759316667 |
-1.8 |
0.6822 |
0.6933 |
0.70446 |
0.6986 |
0.6595 |
0.6428 |
0.680143333 |
-1.9 |
0.4531 |
0.3797 |
0.4415 |
0.4416 |
0.4696 |
0.3683 |
0.425633333 |
-2 |
0.313 |
0.3354 |
0.3577 |
0.3801 |
0.3298 |
0.324 |
0.34 |
将计算所得的离焦信号值逐次进行if判断,判断得出离焦信号所在区。然后对于离焦信号进行换算得出离焦量。
if(FES-4.8<0.06 && FES-4.8>-0.1)//-20//
{
dis=2;
}
if(4.74078<FES && FES<4.82762)//-20--19//
{
dis=(FES-4.74078)*100/(4.82762-4.74078);
dis=(1900+dis)/1000;
}
if(4.613618<FES && FES<4.74078)//-19--18
{
dis=(FES-4.613618)*100/(4.74078-4.613618);
dis=(1800+dis)/1000;
}
if(4.497258<FES && FES<4.613618)//-18--17
{
dis=(FES-4.497258)*100/(4.613618-4.497258);
dis=(1700+dis)/1000;
}
if(4.42948<FES && FES<4.497258)//-17--16
{
dis=(FES-4.42948)*100/(4.497258-4.42948);
dis=(1600+dis)/1000;
}
if(4.3166<FES && FES<4.42948)//-16--15
{
dis=(FES-4.3166)*100/(4.42948-4.3166);
dis=(1500+dis)/1000;
}
if(4.22842<FES && FES<4.3166)//-15--16
{
dis=(FES-4.22842)*100/(4.3166-4.22842);
dis=(1400+dis)/1000;
}
if(4.18566<FES && FES<4.22842)//-14--15
{
dis=(FES-4.18566)*100/(4.22842-4.18566);
dis=(1300+dis)/1000;
}
if(4.05621<FES && FES<4.18566)//-13--14
{
dis=(FES-4.05621)*100/(4.18566-4.05621);
dis=(1200+dis)/1000;
}
if(3.9936<FES && FES<4.05621)//-12--13
{
dis=(FES-3.9936)*100/(4.05621-3.9936);
dis=(1100+dis)/1000;
}
if(4.0036>FES && FES>3.9936)//-11--12
{
dis=(FES-3.9936)*100/(4.0036-3.9936);
dis=(1000+dis)/1000;
}
if(3.95929<FES && FES<4.0036)//-10--11//
{
dis=(FES-3.95929)*100/(4.0036-3.95929);
dis=(900+dis)/1000;
}
if(3.91338<FES && FES<3.95929)//-9--10//
{
dis=(FES-3.8089)*100/(3.95929-3.91338);
dis=(800+dis)/1000;
}
if(3.7949<FES && FES<3.91338)//-8--9
{
dis=(FES-3.7949)*100/(3.91338-3.7949);
dis=(700+dis)/1000;
}
if(3.63<FES && FES<3.7949)//-7--8
{
dis=(FES-3.63)*100/(3.7949-3.63);
dis=(600+dis)/1000;
}
if(3.5464<FES && FES<3.63)//-6--7
{
dis=(FES-3.5464)*100/(3.63-3.5464);
dis=(500+dis)/1000;
}
if(3.3778<FES && FES<3.5464)//-5--6
{
dis=(FES-3.3778)*100/(3.3778-3.3303);
dis=(400+dis)/1000;
}
if(3.24406<FES && FES<3.3778)//-4--5
{
dis=(FES-3.24406)*100/(3.3778-3.24406);
dis=(300+dis)/1000;
}
if(3.2027<FES && FES<3.24406)//-3--4//
{
dis=(FES-3.2027)*100/(3.24406-3.2027);
dis=(200+dis)/1000;
}
if(3.19238<FES && FES<3.2027)//-2--3//
{
dis=(FES-3.19238)*100/(3.2027-3.19238);
dis=(100+dis)/1000;
}
if(3.12216<FES && FES<3.19238)//-1--2//
{
dis=(FES-3.12216)*100/(3.19238-3.12216);
dis=(0+dis)/1000;
}
if(FES-3.1<0.06)//0
{
dis=0;
}
if(2.91488<FES && FES<3.19238)//1-0
{
dis=(3.19238-FES)*100/(3.19238-2.91488);
dis=(0+dis)/1000;
}
if(2.8464<FES && FES<2.91488)//2-1
{
dis=(2.91488-FES)*100/(2.91488-2.8464);
dis=(100+dis)/1000;
}
if(2.6313<FES && FES<2.8464)//3-2
{
dis=(2.8464-FES)*100/(2.8464-2.6313);
dis=(200+dis)/1000;
}
if(2.5085<FES && FES<2.6313)//4-3
{
dis=(2.6313-FES)*100/(2.6313-2.5085);
dis=(300+dis)/1000;
}
if(2.3126<FES && FES<2.5085)//5-4
{
dis=(2.5085-FES)*100/(2.5085-2.3126);
dis=(400+dis)/1000;
}
if(2.1358<FES && FES<2.3126)//6-5
{
dis=(2.3126-FES)*100/(2.3126-2.1358);
dis=(500+dis)/1000;
}
if(1.975<FES && FES<2.1358)//7-6
{
dis=(2.1358-FES)*100/(2.1358-1.975);
dis=(600+dis)/1000;
}
if(1.8079<FES && FES<1.975)//8-7
{
dis=(1.975-FES)*100/(1.975-1.8079);
dis=(700+dis)/1000;
}
if(1.73855<FES && FES<1.8079)//9-8
{
dis=(1.8079-FES)*100/(1.8079-1.73855);
dis=(800+dis)/1000;
}
if(1.66308<FES && FES<1.73855)//10-9
{
dis=(1.73855-FES)*100/(1.73855-1.66308);
dis=(900+dis)/1000;
}
if(1.5772<FES && FES<1.66308)//11-10
{
dis=(1.66308-FES)*100/(1.66308-1.5772);
dis=(1000+dis)/1000;
}
if(1.39811<FES && FES<1.5772)//12-11
{
dis=(1.5772-FES)*100/(1.5772-1.39811);
dis=(1100+dis)/1000;
}
if(1.3513<FES && FES<1.39811)//13-12
{
dis=(1.39811-FES)*100/(1.39811-1.3513);
dis=(1200+dis)/1000;
}
if(1.2217<FES && FES<1.3513)//14-13
{
dis=(1.3513-FES)*100/(1.3513-1.2217);
dis=(1300+dis)/1000;
}
if(1.0399<FES && FES<1.2217)//15-14
{
dis=(1.2217-FES)*100/(1.2217-1.0399);
dis=(1400+dis)/1000;
}
if(0.8504<FES && FES<1.0399)//16-15
{
dis=(1.0399-FES)*100/(1.0399-0.8504);
dis=(1500+dis)/1000;
}
if(0.7593<FES && FES<0.8504)//17-16
{
dis=(0.8504-FES)*100/(0.8504-0.7593);
dis=(1600+dis)/1000;
}
if(0.6891<FES && FES<0.7593)//18-17
{
dis=(0.7593-FES)*100/(0.7593-0.6891);
dis=(1700+dis)/1000;
}
if(0.4351<FES && FES<0.6891)//19-18
{
dis=(0.6891-FES)*100/(0.6891-0.4351);
dis=(1800+dis)/1000;
}
if(0.34<FES && FES<0.4351)//20-19
{
dis=(0.4351-FES)*100/(0.4351-0.34);
dis=(1900+dis)/1000;
}
if(0<FES && FES<0.34)//20
{
dis=2;
}