基于CCD衍射法测量细丝直径

2019-09-10 04:13王皓樊明贞
科学导报·学术 2019年32期

王皓 樊明贞

摘要:激光干涉计量技术可以直接测量细丝直径,方便快捷,而且相当精准,在工业生产领域应用非常广泛。本系统使用He-Ne激光器产生的激光束,垂直照射待测细丝,发生衍射现象,进而发生衍射条纹。然后使用线阵CCD将衍射条纹转换成电信号,经A/D转换将数据送入计算机将衍射条纹的光强分布进一步进行了分析,最终达到实验目的,再根据有关衍射公式算出细丝直径。本文主要介绍光路设计、信号处理及软件设计。

关键词:线阵CCD直径测量;衍射法;细丝直径

1.前言

在工业生产和科学实验中,经常碰到尺寸较小的细丝直径的测量问题。细丝直径测量的方法有许多,传统测量方法通常有两种:一种是细丝称重法,即称出一定长度的细丝的重量后,把细丝看成为均匀细长的圆柱体,然后根据材料的密度计算出细丝的直径;另一种方法是用游标卡尺或螺旋测微器手工测量。以上两种方法浪费较多的人力物力,而且测量的不一定准确,更无法满足现代工业制造技术对零部件的高精度,准确性的要求。

近年来,伴随着光学技术的进步与电子技术的迅速发展,在生产生活等领域中广泛使用着大量光电器件。其中,CCD由于具有光电转换的能力,并且使用方便快捷,而且相当精准等优点,被较多的使用在非接触式直径测量领域。相比接触式的直径测量方式,非接触直径测量具有测试速度快,精度高,对环境要求低等特点,因此在生产生活中被广泛使用。

通过对线阵CCD特性及工作原理的分析,本文对基于线阵CCD的非接触直径测量系统进行了研究,并结合本课题的特点(测量细丝直径),设计了一种基于线阵CCD非接触直径测量系统。

2.CCD衍射法测量原理与装置

2.1 测量原理

衍射法测量细丝直径,其使用的理论基础是夫琅和费衍射,平行激光束照射细丝,在接收屏上得到同样的明暗相间的条纹。激光是利用某些物质原子中的粒子受激发而发出的光,其相位、方向、频率完全相同,颜色很纯,能量高度集中,本课题使用He-Ne激光器提供激光束。根据巴比涅原理可知,直径为d的细丝产生的衍射图样与宽度为d的狭缝衍射图样相同。在观察屏上光斑明亮分布为:。当时,I=0,出现暗纹,每一侧的暗纹是等间距的。由于实际上很小,设第k级暗纹到光轴的距离为,则有。式中:,為暗纹间距。可见,只需测出暗纹间距S及细丝到衍射屏的距离L,就可计算出细丝的直径d。

2.2 测量装置

在以上测量原理的基础上,依照测量原理设计测量装置,进而实验测算。本设计使用Arduino为控制中心元件,传感器为线性CCD-TSL1401CL模块,线性CCD-TSL1401CL会根据接收屏上得到同样的明暗相间的条纹而输出不同频率的方波;进而将此方波输入至Arduino,通过方波数据即可得出暗纹间距S,然后根据其他几个必要的参数根据测量原理公式,最终得到直径d。具体测量系统如图1。

3.CCD模块程序设计

激光衍射会出现明暗相间的条纹呈现在衍射屏,外部的模拟信号量需要转变成数字量才能进一步的由arduino单片机进行处理,线性CCD-TSL1401CL很方便的将数据采集下来传输到单片机上。这就需要对arduino进行编程,具体程序如下:

int piexl[128]={0};int CCD_SI =2;int CCD_CLK=3;int i;int exp_time=500;

void setup()

{pinMode(2,OUTPUT);pinMode(3,OUTPUT);pinMode(A0,INPUT);

Serial.begin(115200); delay(500);}

void CAI(void)

{digitalWrite(CCD_SI,HIGH);digitalWrite(CCD_CLK,HIGH)digitalWrite(CCD_SI,LOW);

digitalWrite(CCD_CLK,LOW);for(i=0;i<128;i++)

{digitalWrite(CCD_CLK,HIGH);digitalWrite(CCD_CLK,LOW);}

delayMicroseconds(exp_time);digitalWrite(CCD_SI,HIGH);

digitalWrite(CCD_CLK,HIGH);digitalWrite(CCD_SI,LOW);

piexl[0] =analogRead(A0)/4;if(piexl[0] <25)piexl[0] =0;

if(piexl[0] ==255)piexl[i]=254; digitalWrite(CCD_CLK,LOW); for(i=1;i<128;i++)

{ digitalWrite(CCD_CLK,HIGH);piexl[i]=analogRead(A0)/4;

if(piexl[i]<25)piexl[i]=0;digitalWrite(CCD_CLK,LOW);}

digitalWrite(CCD_CLK,HIGH);digitalWrite(CCD_CLK,LOW);for(i=0;i<128;i++)

{Serial.write(piexl[i]);}

Serial.write(255);}

void loop()

{ CAI();delayMicroseconds(100);}

4.数据采集与处理

4.1 线性CCD数据采集

本实验以头发丝作为测量细丝直径的实验对象。经过多次试验,在黑暗条件下明暗相间的条纹更加明显,有利于线性CCD的数据采集。经系统对模拟量采集后,通过线性CCD成像软件导出了线性CCD波形图,如下图2所示:

4.2 数据处理

在对于实验数据处理中首先要计算出CCD比例,进而通过CCD接收到计算机上的图像的像素点数计算出物体在CCD表面实际图像的亮纹或暗纹间距。经计算,本实验所使用的线性CCD-TSL1401CL的CCD比例为:16个像素点对应1mm。

首先利用CCD传感器参数中像素点与距离之间的关系测得暗斑的间距:,∆----CCD比例,N----像素点个数。测量分析得到待测细丝的暗斑平均间距为16像素点,头发丝到衍射屏的距离测量多组数据取平均值,如表1:

平均值:L=(86.66+86.68+86.71+86.74)÷4=86.70mm。相鄰暗纹距离:

可得S=0.1mm,由上式可得

通过实验测得头发丝d的直径为0.055mm。将实验测得值的数据与头发丝原值作对比相差不大,说明本测量系统基本能够实现对细丝的测量要求。

5.结论

本文以线性CCD传感器为主要光电器件,arduino单片机为主要控制器件,通过对线性CCD模块程序进行设计,很方便的将数据采集下来传输到单片机上,进而通过数据处理得到细丝直径。通过本实验可以更好克服传统测量方法的效率低、精确度低的缺点,更好的满足现在工业生产中对零部件精确度的要求。测量数据的准确性是此次测量细丝直径实验准确性的保证。通过多次测量数据取平均值,减小了测量误差,这保证了细丝直径的准确性。将实验得出细丝直径值与头发丝原值作对比相差不大,因此此方案是可行的。本方案成本低,结构简单,易学易用,在数据采集与处理领域,具备一定的研究价值。

参考文献:

[1] 覃立平,赵子珍,莫玉香.用激光衍射法测量细丝直径[J].实验科学与技术,2014年,12卷第1期:1-7.

[2] 刽新凯,郑亚茹.利用光学衍射方法测量金属丝的直径[J].辽宁师范大学学报.2003.11:2-5.

[3] 袁丽成.用光学衍射的方法测量金属丝的直径[J].物理通报.2000.10:39-41.

[4] 和志忠.基于线阵CCD的非接触直径测量系统研究[D].河北工业大学,2014.

(作者单位:山东建筑大学机电工程学院)