邵 华,邱元芳
(1.宁波城市职业技术学院,浙江 宁波 315100;2.宁波永新光学股份有限公司,浙江 宁波 315040)
印制电路板(PCB)是电气装置、电子仪器及电子计算机等电类设备中必不可少的部件,而且随着国内电子工业的快速发展以及集成电路的广泛应用,制作PCB板的各项精度指标要求越来越高[1]。
自动定位冲孔机,主要用于加工PCB板中各种用途的孔(包括引线孔、中继孔、机械安装孔、定位孔等)。它通过机器视觉的处理方式,实时连续地在所获图像中查找符合要求的圆孔中心位置,同时计算出冲孔钻头中心与当前圆孔中心的偏差,把偏差结果发送给XY运动控制系统以移动冲孔钻头到孔心上方,最后进行冲孔[2]。该设备能够大幅度地提高PCB定位孔加工精度与速度。本文系统地介绍了一种通过快速Hough变换来进行圆心定位的基本算法以及以S3S6410为控制核心的自动定位冲孔机系统的软硬件设计与实现。
Hough变换是一种用于区域边界形状描述的经典方法,在1962年作为专利被发表至今已有50多年时间,它的主要思想是将模型从图像空间变换到参数空间,用大多数边界点均满足的某种参数形式来描述图像空间中的曲线,由于具有一些明显优点和良好性质,它引起了国内外许多学者和工程技术人员的普遍关注。
经典的Hough变换方法见文献[3-5],已知圆的一般方程为:
式中:(a,b)为圆心坐标,r为圆的半径。
把X-Y平面上的圆转换到(a,b,r)参数空间,则图像空间中过任意一点的圆映射为参数空间中的一个三维锥面,图像空间中同一圆上的点对应于参数空间中的所有三维锥面必然交于一点。通过检测该点可以得到圆的相关参数,图像平面的方程转化为参数平面上的示意图如图1所示。
在经典Hough变换的执行过程中,需要对图像中的每一个边界像素点进行运算,而且Hough变换检测圆需要在三维参数空间(a,b,r)中采用三维累加器进行处理,因此运算数据量非常庞大。鉴于此,基于经典Hough变换的统计聚类思想,结合PCB板圆孔半径r能预先获知的实际情况,本文提出了一种广义的Hough变换算法来快速提取亚像素级的圆心坐标。
首先,在圆的边缘上任意选取一点A作为起始点,如图2所示,然后沿着圆边缘顺时针(或逆时针)方向间隔n个像素点(n<r/5)取一点A′,将这两个点A与A′组成圆的第一个点组,做AA′弦的中垂线l1,取得l1在AA′远方与圆的交点P1。
图1 圆的Hough参数空间Fig.1 Hough parameter space of circle
图2 圆心定位示意图Fig.2 Schematic diagram of center location
至此,由A、A′和P1三点可以算出一个圆心坐标O1。设定A 点坐标为(xa,ya),A′点坐标为(xa′,ya′),P1点坐标为(xp1,yp1),则圆心O1坐标(xo1,yo1)可以通过下式求取:
同理,只要在待测圆边缘上间隔n个像素点选取2 N个边缘点,然后将这2 N个边缘点间隔为n像素的边缘点两两连接(即得到N条弦),再分别获取这N条弦的垂直平分线与圆边缘的交点Pi(0<i<N+1),至此即可通过式(2)算出该圆的N个圆心坐标Oi(0<i<N+1)。然后,通过下式:
对圆心Oi(1<i<N)的X坐标值与Y坐标值分别进行中值滤波。最后,通过下式
求取这N-2个圆心坐标的算术平均值作为冲孔圆心坐标。通过该算法得到的冲孔圆心坐标能够达到亚像素级别。
嵌入式定位冲孔系统按模块功能来划分,可分为图像采集解码模块、图像处理及显示模块、电机驱动模块三个主要部分。S3C6410是整个定位冲孔系统的核心部件,除了提供图像数据传输通道、触摸LCD显示模块、电机驱动数据外,还要通过其内置的Camera模块来控制数字视频解码芯片TVP5150对模拟CCD摄像头进行图像视频的AD转换,以及利用图像算法完成对圆心的定位及步进电机位移数据的计算。电机驱动模块采用驱动器加步进电机模式进行控制,驱动器分别采用SH2024B2和SH2046M步进电机,驱动器分别控制定位步进电机和控制汽缸的电磁阀,系统框图如图3所示。
图3 定位冲孔系统整体框图Fig.3 Block diagram of punching machine control system
图像采集解码模块的主要功能是获取当前所需冲孔的PCB板实时图像。系统所采用的模拟CCD摄像头分辨率为640×480,每秒能输出25帧PAL制式图像信号。由于S3C6410芯片本身无法识别PAL制式信号,因此需要通过视频编解码将PAL制式信号转化为S3C6410可识别的数字信号,系统选用了低功耗视频编解码芯片TVP5150作为视频解码处理芯片。TVP5150可以对NTSC/PAL/SECAM等各制式信号进行自动识别与切换,可以输出8位4∶2∶2的ITU-R BT.656信号或者8位4∶2∶2的ITU-R BT.601信号,这和S3C6410的Camera模块的输入信号格式一致,为视频格式转换节约了大量的工作。
模块采用1.8V作为数字电源和模拟电源电压,3.3V作为I/O口的驱动电压,将信号输入端口AIPIA作为模拟图像信号输入端口,然后通过S3C6410芯片的I2C总线接口对视频解码芯片TVP5150进行配置,将从CCD摄像头采集到的PAL制式信号转换成数字信号YCbCr。
此外,模块还需将TVP5150的输出口YOUT[7:0]和S3C6410的输入端口YDATA[7:0]相连,用于数据传输,将S3C6410的Camera Interface中的帧同步信号XciVSYNC、行同步信号XciHREF及像素时钟信号XciPCLK等几个引脚分别与TVP5150的相应的信号引脚HSYNC、VSYNC及SCLK/PCLK连接,进行传输时序控制。图像传输控制时序如图4所示。
图4 图像传输控制时序Fig.4 Image transmission sequence
图像处理及显示模块由S3C6410和LCD触摸屏构成。S3C6410是基于16/32-bit RISC ARM1176JZF-S内核的低成本、低功耗、高性能微处理器,工作频率最高可达533MHz,功耗为200mW,内部集成了许多功能强大的硬件加速器,像视频处理、移动图像处理、显示控制和图像缩放等[6]。
S3C6410在本系统中主要使用了其自带的Camera模块和LCD控制模块。在Camera模块中采用ITU-R 601YCbCr 8位模式输入信号,通过帧同步信号XciVSYNC、行同步信号XciHREF及像素时钟信号XciPCLK等几个引脚来控制视频信号从输入端口XciYDATA[7:0]输入。
在LCD控制模块中,采用RGB接口模式进行视频显示。S3C6410通过RGB_VSYNC、RGB_HSYNC、RGB_VCLK和RGB_VDEN等几个引脚来控制图像从RGB_VD[23:0]进入LCD显示。由于S3C6410内部集成了VDMA模块专门用于显示DMA,通过使用该DMA-VDMA通道,可以不通过CPU,直接将视频数据显示在屏幕上。这样可以很大程度上减轻CPU资源占有率,节省系统资源。
当系统设定工作模式为全自动模式时,其整个工作流程如图5所示。
(1)系统启动后,首先进行冲孔钻头复位及参数设置,然后检测是否有待测圆模版,若没有则加载基本模版;
(2)扫描视频可见工作区,若检测有设定圆MARK点则进行下一步,否则移动XY电机继续扫描下一图像位置;
(3)通过吸盘固定PCB板,对待测圆进行进一步识别,若不满足圆要求则移动XY电机继续扫描下一图像位置;
(4)通过广义Hough变换算法计算待测圆心;
(5)系统压下板卡固定PCB,移动XY步进电机,使冲孔钻头位置到圆心坐标处,摄像头后退,钻头冲下;
(6)抬起板卡,退下吸盘,继续扫描下一图像位置。
在参数设置中,特别需要注意校准像素间距和实际物理距离的映射关系。
图5 定位冲孔系统工作流程Fig.5 Flow chart of the working process of the positioning punching system
为测算嵌入式冲孔机的系统整体误差,选用多组不同的PCB薄膜片(分别为黑圆图像、白环图像、黑环图像等三组)分别进行冲孔测试。首先分别拍摄获得冲孔前图像和冲孔后图像(测试前需先将PCB薄膜片固定于工作台,并在每次拍摄前进行电机复位,以保证前后两次拍摄的图像位置一致);然后采用NI公司的Vision Assistant软件进行圆心坐标测算(冲孔前图像采用由外向内测算圆心坐标,冲孔后图像采用由内向外测算圆心坐标),如图6所示(该图列中第1列为冲孔前图像,第2列为冲孔后图像);最后根据下式
其中x1、x2分别为冲孔前后的X轴圆心坐标,y1、y2分别为冲孔前后的Y轴圆心坐标,mx为系统X 轴方向像素步进比6.95,my为系统Y轴方向像素步进比6.87,λ为步进电机的步进直线距离2.5μm,将两次圆心坐标的像素差转换为物理距离差Δl进行分析,测算结果如表1所示。
表1 多组PCB薄膜片冲孔误差统计表Tab.1 Punching error statistical table of multiple PCB sheet
通过测试实验可知,该嵌入式冲孔机针对各类较复杂背景下的图形进行圆心定位和冲孔能够获得一个相对准确、稳定的结果,基本满足实际冲孔需求。
该嵌入式冲孔机系统采用ARM11处理器来处理图像数据的采集与处理、步进电机的控制信号处理等工作。在PCB圆孔光电图像定位中,为提高检测精度、降低内存空间、减少计算时间,利用快速Hough变换检测圆心,然后进行中值滤波和算术滤波,得到最终圆心坐标。经过现场初步的整机调试,各项性能指标达到了预期设计目标,即冲孔误差为小于18μm,钻孔速度平均每个为0.35s。
[1]袁 鹏,吴忻生.PCB板定位孔打孔机系统设计与实现[C]∥International Conference on Computational Intelligence and Industrial Application,武汉:Wuhan Institute of Technology,2010:359-362.
[2]边 巍,刘奎武.基于 ARM 的带线缝合针打孔机数控系统设计[J].机床与液压,2012,40(8):137-139.
[3]章毓晋.图像分割[M].北京:科学出版社,2001.
[4]柏长冰,齐 春,宋福民,等.Hough变换快速检测圆形PCB Mark[J].光电工程,2005,32(9):75-78.
[5]王 磊,陈临强.基于弦中点 Hough变换的同心圆检测方法[J].计算机应用,2009,29(7):1937-1939.
[6]庄 可,林 斌,程 亮.S3C4510B芯片在远程数字视频监控系统中的应用[J].光学仪器,2005,27(5):38-42.