引言
隨著國內外對清潔能源需求的增加以及各國政府對清潔能源補助的提高,光伏組件的需求也在快速增長。為保證產能及組件品質的可靠性,高精度、高速太陽能電池片的全自動焊機成為光伏企業的首選。目前這些設備大多依賴進口,然而進口設備高昂的價格很大程度上增加了太陽能發電的成本,急需研制出高水平的太陽能電池片焊接設備來滿足市場的需求。電池片焊接設備的精度、速度與電池片的完整性相關。傳統的檢測方法精度低、速度慢,而且部分還需依賴人工操作,不能滿足市場要求,而基于機器視覺的檢測方法能有效地解決這些問題。
機器視覺技術與人類通過眼睛獲取信息的方式是一致的,光學圖像的采集就好比是機器在用“眼睛”獲取信息,檢測算法就是機器在用“大腦”思考的過程。而光學圖像定位方法又分為灰度定位和幾何定位,基于灰度定位的算法是通過分析模板圖像的灰度值與待測物體圖像的灰度值的相關性大小來判斷物體的位置。由于該算法與圖像的每一個像素點的灰度值關系密切,所以它對光照的亮度變化非常敏感。而在實際生產當中工件對光的吸收、反射不可能完全一致,從而會影響定位的準確率和通過率,因此采用幾何定位方式。
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模塊作為太陽能單焊機上的檢測設備具有較高的應用價值。
上一篇:關于STM32數據手冊中的定時器信號
下一篇:STM32固件庫3.3版本在STM3210e-eval開發板上的移植
推薦閱讀
史海拾趣
在發展過程中,Facon遇到了許多技術難題。然而,他們從未放棄過對技術的追求和突破。經過數年的研究和實踐,Facon成功研發出了一款具有劃時代意義的低功耗芯片,該芯片在保持高性能的同時,大大降低了能耗,為電子產品的續航能力帶來了革命性的提升。這一技術突破讓Facon在行業中聲名鵲起,吸引了眾多合作伙伴的關注。
為了進一步提升技術實力和市場競爭力,Datapro International Inc公司開始尋求與國內外知名企業的戰略合作。他們與一些在數據存儲和處理領域具有領先地位的企業建立了合作關系,共同研發新產品、拓展新市場。
通過戰略合作,Datapro International Inc公司獲得了更多的技術資源和市場機會。同時,他們也從合作伙伴身上學到了許多先進的管理理念和市場策略。這些經驗和知識為Datapro International Inc公司的未來發展提供了有力的支持。
作為一家技術驅動的公司,Baumer Electric Ag始終注重研發投入和技術升級。公司不斷引進先進的生產設備和技術手段,提高生產效率和產品質量。同時,Baumer還積極與高校、科研機構等合作,開展前沿技術研究和新產品開發。這些舉措為公司的持續發展提供了強大的技術支持和創新動力。
這五個故事展示了Baumer Electric Ag公司在電子行業中的發展歷程。從創業初期的堅持與突破,到關鍵人才的引入與領導層的更迭,再到股份制改革與產品創新的結合,以及國際化戰略與出口業務的拓展和持續投資與技術升級,Baumer Electric Ag憑借其卓越的技術實力和創新精神,逐步在電子行業中樹立起了自己的品牌形象和市場地位。
為了進一步擴大市場份額和提升品牌影響力,Crystek公司積極拓展國際市場,與全球多家知名企業建立了合作關系。通過與這些企業的深入合作,Crystek公司的產品得以廣泛應用于無線、微波無線電、電信、工業、企業、航空航天和政府部門等各個領域。同時,公司還積極參加國際電子展覽和技術交流會議,與全球同行交流學習,不斷提升自身的技術水平和市場競爭力。
隨著公司規模的擴大和業務的增長,Cermetek Microelectronics公司開始實施國際化戰略。公司積極拓展海外市場,與多個國家和地區的客戶建立了合作關系。同時,公司還在海外設立了研發中心和生產基地,以更好地服務全球客戶。這種全球布局不僅提升了公司的國際競爭力,也為公司的長遠發展奠定了堅實的基礎。
該設計利用0809的進行模數轉換,仿真利用滑動變阻仿真AD590的模擬量。以一單鍵盤來控制攝氏溫度和華氏溫度的轉換。 [ 本帖最后由 houanchan 于 2009-5-19 13:31 編輯 ]… 查看全部問答∨ |
|
怎么樣從一個瘋狂下載者成為一個學習者(轉) 為了方便廣大網友,各種網站也應運而生。當網絡的建設和發展正進行的如火如荼,喧鬧之中,搭配學習這壺美酒的,竟是一瓶名叫資料下載的毒藥,更糟糕的是,美酒和毒藥已經被灌到了同一個杯子里,渾然一 ...… 查看全部問答∨ |
|
移植eboot遇到的問題 到EbootInitEtherTransport死機 我的板子是mini2440 在移植官方的5.0 bsp,現在發現我的板子OEMEthGetSecs()這個函數時死機,我發現應該是我的板子應該有問,因為以前在wince系統下也發現他的時鐘是不會走一秒的。接下來我把這個函數去掉,eboot就往下走了, 移植了dm9000的驅動& ...… 查看全部問答∨ |
大家好! 我現在想調用酷派手機(wince5.0)的照相機來進行拍照,用SHCameraCapture這個api,發現wince5.0好像根本不支持這個api,因為在編譯時SHCAMERACAPTURE都說是沒有定義,我也引用了#include <aygshell.h>,以及#pragma &nb ...… 查看全部問答∨ |
data sheet中是這么講的: SD mode switch 1 : SD mode When this mode switch is set to the on state, the IF counter will count every time a stop condition arrives over the I2C circuit. --------------------- SD mode 是指什么模式? ...… 查看全部問答∨ |