引言
隨著國內(nèi)外對清潔能源需求的增加以及各國政府對清潔能源補助的提高,光伏組件的需求也在快速增長。為保證產(chǎn)能及組件品質(zhì)的可靠性,高精度、高速太陽能電池片的全自動焊機成為光伏企業(yè)的首選。目前這些設備大多依賴進口,然而進口設備高昂的價格很大程度上增加了太陽能發(fā)電的成本,急需研制出高水平的太陽能電池片焊接設備來滿足市場的需求。電池片焊接設備的精度、速度與電池片的完整性相關。傳統(tǒng)的檢測方法精度低、速度慢,而且部分還需依賴人工操作,不能滿足市場要求,而基于機器視覺的檢測方法能有效地解決這些問題。
機器視覺技術與人類通過眼睛獲取信息的方式是一致的,光學圖像的采集就好比是機器在用“眼睛”獲取信息,檢測算法就是機器在用“大腦”思考的過程。而光學圖像定位方法又分為灰度定位和幾何定位,基于灰度定位的算法是通過分析模板圖像的灰度值與待測物體圖像的灰度值的相關性大小來判斷物體的位置。由于該算法與圖像的每一個像素點的灰度值關系密切,所以它對光照的亮度變化非常敏感。而在實際生產(chǎn)當中工件對光的吸收、反射不可能完全一致,從而會影響定位的準確率和通過率,因此采用幾何定位方式。
1 太陽能電池片表面缺陷檢測系統(tǒng)設計
系統(tǒng)硬件方面由3部分構成:處理芯片STM32F103RBT6、圖像傳感器模塊OV7670、串口通信SP232。其設計框圖如圖1所示。軟件方面,主要由3個功能模塊構成:OV7670模塊程序、圖像處理算法程序、SP232通信程序。
系統(tǒng)工作過程:首先由OV7670模塊獲取圖像,在STM32F103RBT6中讀取,通過圖像處理算法進行計算,得到的結果由SP232上傳給上位機。
1.1 系統(tǒng)硬件設計
1.1.1 STM32F103RBT6處理器
STM32F103RBT6是基于CortexM3的32位處理器,最高工作頻率為72 MHz,具有128 KB的Flash程序存儲器和20 KB的RAM。其有4個計時器、16個定時器、16個模/數(shù)轉(zhuǎn)換器。串行通信有2個SPI、2個I2C總線、3個USART、1個USB和CAN總線,接口類型也有多種,在與其他器件鏈接時可以更加方便。內(nèi)核具有突出的中斷處理能力,其實時性強,系統(tǒng)存儲要求低,并且功耗和成本很低,具有廣泛的應用領域。
1.1.2 OV7670模塊
OV7670圖像傳感器體積小、工作電壓低,適合嵌入式應用。OV7670具有高靈敏度,適合低照度應用,提供單片VGA攝像頭和影像處理器的所有功能。通過SCCB總線控制,兼容I2C總線接口,可以輸出整幀、子采樣、取窗口等方式的各種分辨率為8位的影像數(shù)據(jù)。VGA圖像最高達到30 fps,可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式。圖像處理功能過程包括伽馬曲線、白平衡、飽和度、色度等都可以通過SCCB接口編程。OV7670圖像傳感器的功能模塊包括:感光陣列、模擬信號處理、A/D轉(zhuǎn)換、測試圖案發(fā)生器、數(shù)字信號處理器、圖像縮放、時序發(fā)生器、數(shù)字視頻端口、SCCB接口、LED和閃光燈輸出控制。其功能框圖如圖2所示。
OV7670數(shù)據(jù)位D0~D7與MCU的PA口A0~A7連接,讀數(shù)據(jù)時鐘位 RCLK與PC1連接,讀指針復位位RRST與PC2連接,片選信號位OE與PC3連接,寫指針復位位WRST與PC4連接,寫入FIFO使能位WEN與PC5連接,同步信號檢測位VSY與PD2連接,SCL是SCCB時鐘口與PC11連接,SDA是SCCB的數(shù)據(jù)口與PC12連接,初始化OV7670可通過SCL和SDA。OV7670與STM32F103RBT6的連接電路如圖3所示。
1.2 軟件設計
1.2.1 常見缺陷類型
根據(jù)制作材料的不同,可以把太陽能電池分為單晶硅太陽能電池、多晶硅太陽能電池和非晶硅太陽能電池3種。對于特定材料的太陽能電池片,可以設計出適合該類型太陽能電池片表面缺陷檢測的系統(tǒng)。本文是針對單晶硅太陽能電池片進行表面缺陷檢測的。在太陽能電池片的生產(chǎn)加工過程中(表面腐蝕、制絨、擴散、表面成膜、網(wǎng)印、鈍化、燒結等),可能由于某些工藝缺陷或者生產(chǎn)環(huán)境的影響造成太陽能電池片表面的斷柵、缺角、色差、臟污、裂紋等缺陷?;跈C器視覺的太陽能電池片表面缺陷檢測系統(tǒng)主要用于檢測太陽能電池板片表面的斷柵、缺角和裂紋3種主要工藝缺陷。缺陷的具體形態(tài)如圖4所示。
缺角和裂紋主要是在制絨的過程中導致的,傳統(tǒng)制絨的方法是機械刻槽法,通過利用V型刀在硅表面摩擦形成規(guī)則的V型槽,從而形成規(guī)則的、反射率低的表面結構。正是這種方法經(jīng)常會破壞硅片,形成裂紋或者缺角。盡管工藝不斷改進,開始使用化學制絨法,但是由于成本高,該方法還未得到普及。斷柵主要出現(xiàn)在絲網(wǎng)印刷過程中。絲網(wǎng)印刷是指利用絲網(wǎng)圖形部分網(wǎng)孔透漿料,非圖文部分不透漿料。印刷時在絲網(wǎng)一端倒入漿料,用刮刀在絲網(wǎng)的漿料部位施加壓力,同時朝絲網(wǎng)另一端移動。刮板壓力不適會導致漿料的漏印,或者由于圖形部分的雜質(zhì)造成漏印而導致斷柵。
1.2.2 表面缺陷檢測系統(tǒng)的結構示意圖
太陽能電池片表面缺陷檢測系統(tǒng)的結構示意圖如圖5所示。在光照下,OV7670攝像機對待測電池片進行圖像采集傳送到計算機中,通過圖像處理得出缺陷圖像,最后對缺陷進行標識和數(shù)據(jù)統(tǒng)計。
光照單元是系統(tǒng)的一個重要組成部分。由于太陽能電池板表面的強反射性,不合理的光源類型和照明方式都會導致圖像灰度的不均勻,從而影響后期的圖像處理。光照單元的任務就是產(chǎn)生均勻的光照以便得到準確的物像位置關系,從而保證所獲取圖像的高對比度和清晰度。
圖像采集單元是OV7670模塊。該單元主要完成待測太陽能電池片的圖像采集,并將采集到的數(shù)據(jù)傳輸給MCU,便于后期的數(shù)字圖像處理。
計算機處理單元包括圖像處理和缺陷識別。該單元主要是對采集圖像進行基本圖像處理,得到缺陷圖像,然后標記缺陷和識別缺陷,最后通過計算機屏幕直觀地顯示出太陽能電池板的檢測結果。
1.2.3 表面缺陷檢測系統(tǒng)的軟件流程
利用STM32F103RBT6來處理太陽能電池片的圖像,程序代碼在ST公司自帶的庫文件上編寫。初始化階段,先配置好STM32F103RBT6內(nèi)部時鐘、中斷處理和USART、按鍵、OV7670、SP232等外設接口,再初始化按鍵、LED、OV7670模塊、SP232。初始化成功之后,讀取OV7670采集到的信息數(shù)據(jù),讀完段標記使能攝像頭片選,每次讀取一個MCU塊,對它進行二值處理、像素點掃描、判斷、旋轉(zhuǎn)、上傳數(shù)據(jù)至上位機,直到結束。
OV7670攝像機將攝取到的數(shù)據(jù)傳送給MCU,MCU得到數(shù)據(jù)后首先讀取相機的數(shù)據(jù),并做二值處理,更新LCD顯示。以圖像中心為原點,尋找電池片左上角、右上角、左下角和右下角的坐標,用于計算旋轉(zhuǎn)后的圖像的寬和高。
判斷完整性算法如下所示:
① 從第10行起(每行320點),取白點(0xff)的數(shù)據(jù),連續(xù)取50行,計算白點的平均值WhiteTrueData。
② 從第10行起(每行320點),每行的行頭取黑點(0x00)的數(shù)據(jù),直到白點為止,連續(xù)取50行,計算黑點的平均值BlackTure Data。
③ 156×156的片子,有效行總共是224~232行,每一行的白點數(shù)約228~232點WhiteData(根據(jù)焦距不同,有效的行數(shù)、列數(shù)有所不同)。
④ 每一行,從白點處開始,將第232點后的數(shù)據(jù)統(tǒng)一清除為黑色。
⑤ 每一行,從第一點開始將第一點至白點為止的數(shù)據(jù)(BlackData),統(tǒng)一清除為黑色。
⑥ 在每一行的白點中尋找黑色點,如果連續(xù)3點或者連續(xù)兩行在同樣的偏移處找到2個以上的點,表明該處為缺少、裂縫、缺角或其他的不完整。
先判斷所有的有效數(shù)是否在預置數(shù)之間,如果是,初步判斷為完整的電池片;否則,為缺角。如果取得的有效數(shù)據(jù)在預置數(shù)之間,將取得的平均值與預置數(shù)比較,如果小于預置數(shù)10點以上,判斷為有裂縫;片子基本完整,再判斷是否有裂縫、空洞。從第0行起(每行320點),掃描240行,尋找連續(xù)的白點,如果連續(xù)的白點數(shù)據(jù)中有有效的黑點(0x00)數(shù)據(jù),判斷為裂縫或空洞;有裂縫的點數(shù)大于5處,判斷為不完整。如果為不合格的電池片,可判斷是否傾斜,將傾斜的片子旋轉(zhuǎn),或發(fā)送數(shù)據(jù)到上位機。從第0行起(每行320點),掃描240行,判斷是否傾斜;查找黑色點,如果每一行均出現(xiàn)白色點,白色點的坐標不大于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;
//有裂縫的點數(shù)大于5處,判斷為不完整
break_dot = 0;
}
太陽能電池片表面缺陷檢測系統(tǒng)的軟件流程圖如圖6所示。
2 處理結果分析
重點是對太陽能電池片表面的缺角、裂紋、空洞缺陷進行檢測。實驗對象是156 mm×156 mm的單晶硅太陽能電池片。





