历史上的今天
返回首页

历史上的今天

今天是:2025年03月09日(星期日)

正在发生

2021年03月09日 | 基于机器视觉的太阳能电池片外观缺陷检测

2021-03-09 来源:eefocus

引言


随着国内外对清洁能源需求的增加以及各国政府对清洁能源补助的提高,光伏组件的需求也在快速增长。为保证产能及组件品质的可靠性,高精度、高速太阳能电池片的全自动焊机成为光伏企业的首选。目前这些设备大多依赖进口,然而进口设备高昂的价格很大程度上增加了太阳能发电的成本,急需研制出高水平的太阳能电池片焊接设备来满足市场的需求。电池片焊接设备的精度、速度与电池片的完整性相关。传统的检测方法精度低、速度慢,而且部分还需依赖人工操作,不能满足市场要求,而基于机器视觉的检测方法能有效地解决这些问题。


机器视觉技术与人类通过眼睛获取信息的方式是一致的,光学图像的采集就好比是机器在用“眼睛”获取信息,检测算法就是机器在用“大脑”思考的过程。而光学图像定位方法又分为灰度定位和几何定位,基于灰度定位的算法是通过分析模板图像的灰度值与待测物体图像的灰度值的相关性大小来判断物体的位置。由于该算法与图像的每一个像素点的灰度值关系密切,所以它对光照的亮度变化非常敏感。而在实际生产当中工件对光的吸收、反射不可能完全一致,从而会影响定位的准确率和通过率,因此采用几何定位方式。


1 太阳能电池片表面缺陷检测系统设计


系统硬件方面由3部分构成:处理芯片STM32F103RBT6、图像传感器模块OV7670、串口通信SP232。其设计框图如图1所示。软件方面,主要由3个功能模块构成:OV7670模块程序、图像处理算法程序、SP232通信程序。


系统工作过程:首先由OV7670模块获取图像,在STM32F103RBT6中读取,通过图像处理算法进行计算,得到的结果由SP232上传给上位机。



1.1 系统硬件设计


1.1.1 STM32F103RBT6处理器


STM32F103RBT6是基于CortexM3的32位处理器,最高工作频率为72 MHz,具有128 KB的Flash程序存储器和20 KB的RAM。其有4个计时器、16个定时器、16个模/数转换器。串行通信有2个SPI、2个I2C总线、3个USART、1个USB和CAN总线,接口类型也有多种,在与其他器件链接时可以更加方便。内核具有突出的中断处理能力,其实时性强,系统存储要求低,并且功耗和成本很低,具有广泛的应用领域。


1.1.2 OV7670模块


OV7670图像传感器体积小、工作电压低,适合嵌入式应用。OV7670具有高灵敏度,适合低照度应用,提供单片VGA摄像头和影像处理器的所有功能。通过SCCB总线控制,兼容I2C总线接口,可以输出整帧、子采样、取窗口等方式的各种分辨率为8位的影像数据。VGA图像最高达到30 fps,可以完全控制图像质量、数据格式和传输方式。图像处理功能过程包括伽马曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程。OV7670图像传感器的功能模块包括:感光阵列、模拟信号处理、A/D转换、测试图案发生器、数字信号处理器、图像缩放、时序发生器、数字视频端口、SCCB接口、LED和闪光灯输出控制。其功能框图如图2所示。



OV7670数据位D0~D7与MCU的PA口A0~A7连接,读数据时钟位 RCLK与PC1连接,读指针复位位RRST与PC2连接,片选信号位OE与PC3连接,写指针复位位WRST与PC4连接,写入FIFO使能位WEN与PC5连接,同步信号检测位VSY与PD2连接,SCL是SCCB时钟口与PC11连接,SDA是SCCB的数据口与PC12连接,初始化OV7670可通过SCL和SDA。OV7670与STM32F103RBT6的连接电路如图3所示。



1.2 软件设计


1.2.1 常见缺陷类型


根据制作材料的不同,可以把太阳能电池分为单晶硅太阳能电池、多晶硅太阳能电池和非晶硅太阳能电池3种。对于特定材料的太阳能电池片,可以设计出适合该类型太阳能电池片表面缺陷检测的系统。本文是针对单晶硅太阳能电池片进行表面缺陷检测的。在太阳能电池片的生产加工过程中(表面腐蚀、制绒、扩散、表面成膜、网印、钝化、烧结等),可能由于某些工艺缺陷或者生产环境的影响造成太阳能电池片表面的断栅、缺角、色差、脏污、裂纹等缺陷。基于机器视觉的太阳能电池片表面缺陷检测系统主要用于检测太阳能电池板片表面的断栅、缺角和裂纹3种主要工艺缺陷。缺陷的具体形态如图4所示。



缺角和裂纹主要是在制绒的过程中导致的,传统制绒的方法是机械刻槽法,通过利用V型刀在硅表面摩擦形成规则的V型槽,从而形成规则的、反射率低的表面结构。正是这种方法经常会破坏硅片,形成裂纹或者缺角。尽管工艺不断改进,开始使用化学制绒法,但是由于成本高,该方法还未得到普及。断栅主要出现在丝网印刷过程中。丝网印刷是指利用丝网图形部分网孔透浆料,非图文部分不透浆料。印刷时在丝网一端倒入浆料,用刮刀在丝网的浆料部位施加压力,同时朝丝网另一端移动。刮板压力不适会导致浆料的漏印,或者由于图形部分的杂质造成漏印而导致断栅。


1.2.2 表面缺陷检测系统的结构示意图


太阳能电池片表面缺陷检测系统的结构示意图如图5所示。在光照下,OV7670摄像机对待测电池片进行图像采集传送到计算机中,通过图像处理得出缺陷图像,最后对缺陷进行标识和数据统计。


光照单元是系统的一个重要组成部分。由于太阳能电池板表面的强反射性,不合理的光源类型和照明方式都会导致图像灰度的不均匀,从而影响后期的图像处理。光照单元的任务就是产生均匀的光照以便得到准确的物像位置关系,从而保证所获取图像的高对比度和清晰度。


图像采集单元是OV7670模块。该单元主要完成待测太阳能电池片的图像采集,并将采集到的数据传输给MCU,便于后期的数字图像处理。


计算机处理单元包括图像处理和缺陷识别。该单元主要是对采集图像进行基本图像处理,得到缺陷图像,然后标记缺陷和识别缺陷,最后通过计算机屏幕直观地显示出太阳能电池板的检测结果。


1.2.3 表面缺陷检测系统的软件流程


利用STM32F103RBT6来处理太阳能电池片的图像,程序代码在ST公司自带的库文件上编写。初始化阶段,先配置好STM32F103RBT6内部时钟、中断处理和USART、按键、OV7670、SP232等外设接口,再初始化按键、LED、OV7670模块、SP232。初始化成功之后,读取OV7670采集到的信息数据,读完段标记使能摄像头片选,每次读取一个MCU块,对它进行二值处理、像素点扫描、判断、旋转、上传数据至上位机,直到结束。


OV7670摄像机将摄取到的数据传送给MCU,MCU得到数据后首先读取相机的数据,并做二值处理,更新LCD显示。以图像中心为原点,寻找电池片左上角、右上角、左下角和右下角的坐标,用于计算旋转后的图像的宽和高。


判断完整性算法如下所示:


① 从第10行起(每行320点),取白点(0xff)的数据,连续取50行,计算白点的平均值WhiteTrueData。


② 从第10行起(每行320点),每行的行头取黑点(0x00)的数据,直到白点为止,连续取50行,计算黑点的平均值BlackTure Data。


③ 156×156的片子,有效行总共是224~232行,每一行的白点数约228~232点WhiteData(根据焦距不同,有效的行数、列数有所不同)。


④ 每一行,从白点处开始,将第232点后的数据统一清除为黑色。


⑤ 每一行,从第一点开始将第一点至白点为止的数据(BlackData),统一清除为黑色。


⑥ 在每一行的白点中寻找黑色点,如果连续3点或者连续两行在同样的偏移处找到2个以上的点,表明该处为缺少、裂缝、缺角或其他的不完整。


先判断所有的有效数是否在预置数之间,如果是,初步判断为完整的电池片;否则,为缺角。如果取得的有效数据在预置数之间,将取得的平均值与预置数比较,如果小于预置数10点以上,判断为有裂缝;片子基本完整,再判断是否有裂缝、空洞。从第0行起(每行320点),扫描240行,寻找连续的白点,如果连续的白点数据中有有效的黑点(0x00)数据,判断为裂缝或空洞;有裂缝的点数大于5处,判断为不完整。如果为不合格的电池片,可判断是否倾斜,将倾斜的片子旋转,或发送数据到上位机。从第0行起(每行320点),扫描240行,判断是否倾斜;查找黑色点,如果每一行均出现白色点,白色点的坐标不大于1/2(320),为有效白色点。


源程序代码如下:




OV7670_RRST=0;//开始复位读指针




OV7670_RCK=0;




OV7670_RCK=1;




OV7670_RCK=0;




OV7670_RRST=1;//复位读指针结束




OV7670_RCK=1;




for(i=0; i<240; i++){




change_num = 0;




change_bak_num = 0;




Temp_i = 0;




for(j=0; j<320; j++){




OV7670_RCK = 0;




color = (GPIOA->IDR)&0xFF;




OV7670_RCK = 1;




if(color < CompData){




change_num = 0;




Black_Data++;




}




else{




change_num = 0xfe;




White_Data++;




}




if(change_num != change_bak_num){




Temp_i++;




change_bak_num = change_num;




}




OV7670_RCK = 0;




color |= (GPIOA->IDR)&0xFF;




OV7670_RCK = 1;




}




if(Temp_i>2)break_dot++;




if(break_dot>5)cell_judge = 0;




//有裂缝的点数大于5处,判断为不完整




break_dot = 0;




}


太阳能电池片表面缺陷检测系统的软件流程图如图6所示。



2 处理结果分析


重点是对太阳能电池片表面的缺角、裂纹、空洞缺陷进行检测。实验对象是156 mm×156 mm的单晶硅太阳能电池片。实验中给出了太阳能电池片表面缺陷的系统检测图片的效果图以及从该系统得到的实验数据,并对该缺陷检测系统的识别率进行统计和分析。


实验统计表明,缺角的识别率高于95%,空洞的识别率基本达到90%,裂缝的识别率最低,只有86%。本程序经过不断优化以后,运行时间在1 s左右(不包含图片的显示时间)。


如果图片中包含缺陷的个数较少或者不包含缺陷时,运行时间在0.7 s左右(不包含图片的显示时间),基本达到实时性要求。另外,STM32F103RBT6一个很大的优点就是其官方提供了库函数,使其软件开发周期比较短。


效果图如图7所示。



结语


本文完成了太阳能电池片缺陷检测的设计方案,实现了太阳能电池片在线实时检测,这种方法提高了太阳能焊接机的生产效率。软件设计时,OV7670是模块化的,有接口函数,因此具有很强的可移植性。


虽然51单片机成本比STM32F103RBT6低一些,但是计算速度慢;DSP、ARM9、FPGA等虽然计算速度快,但用于太阳能单焊机上的嵌入式产品使用就显得成本较高。


综合考虑,以STM32F103RBT6结合OV7670模块作为太阳能单焊机上的检测设备具有较高的应用价值。


推荐阅读

史海拾趣

EZchip Technologies Ltd公司的发展小趣事

EZchip Technologies Ltd公司自创立之初,就以技术创新为核心驱动力。在21世纪初,网络通信行业飞速发展,对高性能的网络处理芯片需求激增。EZchip团队凭借其深厚的技术积累和对市场敏锐的洞察力,成功研发出了一款具有划时代意义的网络处理器芯片,该芯片以其高效的数据处理能力和低延迟特性迅速获得了市场的认可。随着技术的不断迭代和创新,EZchip逐渐在网络处理器领域建立了技术壁垒,成为了行业的佼佼者。

Geyer Electronic E K公司的发展小趣事

EZchip Technologies Ltd公司自创立之初,就以技术创新为核心驱动力。在21世纪初,网络通信行业飞速发展,对高性能的网络处理芯片需求激增。EZchip团队凭借其深厚的技术积累和对市场敏锐的洞察力,成功研发出了一款具有划时代意义的网络处理器芯片,该芯片以其高效的数据处理能力和低延迟特性迅速获得了市场的认可。随着技术的不断迭代和创新,EZchip逐渐在网络处理器领域建立了技术壁垒,成为了行业的佼佼者。

Defense Supply Center Columbus公司的发展小趣事

在电子行业,人才是企业最宝贵的财富。Defense Supply Center Columbus公司高度重视人才战略的实施。公司积极引进和培养各类人才,建立起一支高素质、专业化的团队。公司注重员工的培训和发展,为员工提供良好的工作环境和职业发展机会。同时,公司还建立了完善的激励机制和绩效考核体系,激发员工的工作积极性和创造力。这些人才战略的实施,为公司的发展提供了有力的人才保障和智力支持。

请注意,以上故事均为虚构内容,旨在展示Defense Supply Center Columbus公司可能的发展路径和故事框架。实际情况可能因公司具体情况和市场环境而有所不同。

康奈特(CNNT)公司的发展小趣事

面对数字化浪潮的冲击,康奈特积极响应并开始了数字化转型之路。公司引进了先进的智能制造设备和技术手段,实现了生产线的自动化和智能化升级。同时,公司还建立了数字化管理平台,实现了对生产、销售、库存等各个环节的实时监控和管理。这种数字化转型不仅提高了生产效率和质量稳定性,也为公司未来的发展奠定了坚实的基础。

爱普特半导体(APTSEMI)公司的发展小趣事

凭借卓越的产品性能和稳定的市场表现,爱普特半导体的市场占有率持续提升。目前,公司在国内非ARM核MCU市场的出货量已经位居第一,市场占有率也遥遥领先。这一成绩的取得,不仅彰显了爱普特在MCU行业的领先地位,也反映了公司在技术创新和市场拓展方面的强大实力。随着公司研发能力的不断提升和市场布局的逐步完善,相信爱普特在未来的市场竞争中将继续保持领先地位。

这些故事只是爱普特半导体发展过程中的一部分,它们共同展现了公司在电子行业中的崛起和成长。作为一家坚持自主创新、构建高端人才队伍、与大型企业战略合作、践行纯国产化发展理念并持续提升市场占有率的企业,爱普特半导体在电子行业的发展道路上正稳步前行。

Atlanta Micro公司的发展小趣事

Atlanta Micro的创立,源于几位对射频(RF)技术充满热情的工程师。他们看到了在航空航天和国防领域,高性能RF模块和组件的巨大需求,于是决定共同创业,致力于这一领域的研发。在创业初期,公司面临着资金短缺、市场竞争激烈等诸多挑战,但凭借着对技术的执着和不懈努力,Atlanta Micro逐渐在业界积累了声誉,并获得了初步的市场认可。

问答坊 | AI 解惑

硬件设计鸡毛蒜皮之一

鸡毛蒜皮之一:成本节约 现象一:这些拉高/拉低的电阻用多大的阻值关系不大,就选个整数5K吧 点评:市场上不存在5K的阻值,最接近的是4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍。20%精度的电阻阻值只 ...…

查看全部问答>

请各位高手指教,下面的电路能不能成立,不能成立的原因是什么?

电路是我自己画的,个人分析如下,有不对的地方希望大家指正:谢谢~ 1》通电,12V经R1到Q1的C极,经R2加至Q1的B极,Q1饱和导通,C极等于0 此时Q2,Q3,Q4的B极全部为0 Q2为PNP管,此时是导通状态,但对电路没影响 2》按S1, ...…

查看全部问答>

3W LED驱动整流桥输入端开槽与否

对之前3*1W的线路板进行改版;整流桥输入端是否需要开槽(多宽?);一个专业工程师说不用开;桥堆本身就过了安规的;现在市面上我买的大多数产品,输入端也大多有开槽的; 不知道有经验人士怎么看待这个问题?…

查看全部问答>

6833的开发流程

请教各位大侠:   我近期在使用MT68332的单片机。请教一下开发流程。我使用的工具sds。我的笔记本没有并口。请教如何使用串口开发…

查看全部问答>

DXP里原理图转换WORD时候匡怎么去掉

请大家帮个忙!我在DXP 里画的原理图拷到WORD格式,不过原理图的外面的匡没法去掉,我就需要复制原理图,不要外面的匡和右下脚的匡,有什么办法只能把原理图复制过去呢! 谢谢你们了!…

查看全部问答>

DLL文件调试问题

我新学EVC,碰到一个很怪的问题(个人认为)。我在模拟器上调试我要调用的DLL文件,用TRACE宏写的语句在监视窗口可以看到,但在PDA上调试的时候却看不到,连设置的断点也进不去,但在模拟器下可以。试了很多方法都没用,希望各位大侠指点下小弟呀。…

查看全部问答>

分享我CRC校验的源代码给大家

-- ****************************************************************************--版权所有:www.eeleader.com--------------------------------------------------------------设计日期:2010.3.4------------------------------------------- ...…

查看全部问答>

F2812 的C编译器好像不分char和int都用一个16位来存储??

F2812 的C编译器好像不分char和int都用一个16位来存储??这岂不是很浪费? 比如 const unsigned char gImage_background[1000] = {。。。。} 我把.econst  分配在长度为0x200word(1024byte)的内存里,被告知: [Linking...] \\" ...…

查看全部问答>

使用ADC12测MSP430X149的供电电源的方法

将149的××cc与DVcc接到电源的正极,××ss接到负极,然后使用ADC12测试。程序如下; #include <msp430x14x.h> void main(void) { volatile unsigned int i; WDTCTL = WDTPW+WDTHOLD; ADC12CTL0 = ADC12ON+SH ...…

查看全部问答>

D-LC谐振放大器D题172697592群

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 D-LC谐振放大器D题172697592群D-LC谐振放大器D题172697592群  …

查看全部问答>