徐小艷,崔雪英
(銅陵學院電氣工程學院,安徽 銅陵 244000)
在科技不斷提高,企業規模化生產的背景下,自動化迅速成為工農業的主流。在工農業生產的自動化過程中,顏色的識別及分揀在食品、醫藥、化工等行業都有著重要意義。如制藥行業中將不同顏色的藥丸分離開、農產品顏色識別確定果實的成熟度等。本文設計了一種以顏色識別傳感TS3200 為基礎,以51 單片機為核心的顏色識別及分揀系統。
系統是以51 單片機為核心,擴展合適的外圍電路,完成了對產品的顏色識別及分揀。其結構框圖如圖1 所示。

圖1 分揀系統結構框圖
整個系統以微處理器為中心,包括顏色信息的采集及分揀兩大部分。顏色傳感器將采集到的顏色信息送入微處理器,微處理器對信息進行運算、處理識別,處理后的顏色識別信息作為輸出信號,驅動單片機的執行機構進行相應的分揀操作。整個系統由顏色識別電路模塊、直流電機驅動模塊、語音播報模塊等部分組成。
系統硬件的微處理器采用89C51,主要由顏色識別電路、分揀電路及語音播報電路三個部分組成。
首先系統利用紅外線傳感器檢測需要識別的物品是否準備好,然后通過顏色傳感器檢測出被分揀物品顏色信息信號,并將信號發送給單片機,單片機通過接收到的信號信息進行相應的分揀操作。
顏色識別選用顏色識別傳感器TCS3200,它是一款可編程光到頻率的轉換器芯片。內部有紅、綠、藍和清除四種濾波器,一塊顏色到頻率轉換芯片TCS3200 RGB 及4 個白色LED 燈。其轉換原理是當被測物反射光中紅、綠、藍三色光線分別透過相應濾波器到達TCS3200 RGB 感應芯片時,其內置的振蕩器會輸出相應方波,方波頻率與所感應的光強成正比關系,其OUT 輸出信號的頻率也與內置振蕩器的頻率成正比[11]。當選定一個顏色濾波器時,它只允許某種特定的原色通過,阻止其他原色的通過。例如:當選擇紅色濾波器時,入射光中只有紅色可以通過,藍色和綠色都被阻止,這樣就可以得到紅色光的光強;同理,選擇其他的濾波器,就可以得到藍色光和綠色光的光強,通過這三個值,就可以分析投射到TCS3200 傳感器上的光的顏色[12]。此處P1.1、P1.0可用來選擇不同的比例因子。P1.4、P1.3 用來選擇濾波模式,顏色傳感器的頻率脈沖輸出連接到單片機外中斷0 進行脈沖計數。
將OUT 輸出信號頻率和內置頻率的比例因子設好后,將OUT 輸出信號頻率轉換成被測物體的三原色RGB 值,還需要進行白平衡校正來得到RGB 比例因子。使芯片對所檢測的“白色”中的三原色時輸出的RGB 值相等。經過白平衡后,TSC3200 在控制器中能準確反饋出被測物體的實際顏色。顏色識別電路原理圖如圖2 所示。

圖2 顏色識別電路原理圖
物品的分揀系統依據顏色識別的結果來驅動相應的步進電機的轉動,這樣電機的轉動就可以將不同顏色的樣本送入相應的區域。這里選用四相八拍電動機28BYJ48。
28BYJ48 原理是將電脈沖變為角位移,當收到一個脈沖,電機就按預定的程序轉一個特定角度。單片機引腳輸出電流不足以驅動負載,故此處電機驅動采用ULN2003 芯片,它是一個單片高電壓、高電流的達林頓晶體管陣列集成電路。單片機的P2.4~P2.7 連接ULN2003 的輸入引腳,其輸出連接電機的四相線圈,達到驅動電路的目的。其電路如圖3 所示。

圖3 步進電機驅動電路原理圖
語音播報電路采用語音芯片ISD4004,其工作于SPI 串行接口。當系統得到顏色識別結果時,調用事先存儲好的語音模塊來播報信息。此時,語音播報信號有效,開始取信號單元地址,后取信號單元內容,再判斷是否滿足播報條件,如滿足則播報,反之則繼續取信號單元地址,最后判斷是否播報結束。通過對SPI 控制寄存器的設置可以實現錄放、錄音、信息檢索等功能。語音播報電路原理圖如圖4 所示。

圖4 語音播報電路原理圖
為了完成顏色識別與分揀的功能,程序設計采用了自上而下的模塊化設計,主要由主程序和子程序構成,主程序完成系統的初始化及物品的檢測及播報。子程序有顏色識別子程序、分揀子程序和播報子程序等。顏色識別子程序首先完成白平衡調節,確定顏色初值,得出比例因子,然后再對物體顏色進行校準識別,得到RGB 的亮度值。分揀子程序主要完成不同電機驅動程序設計,其相關流程如圖5 所示。

圖5 主程序流程圖
系統初始化不僅包括單片機的初始化,還包括TCS3200、電機驅動及播報芯片等的初始化。系統需對TCS3200 的白平衡、輸出比例因子及通信參數等進行初始化。當用TCS3200 顏色識別時,用白平衡后的參數與所測顏色的RGB 的值進行對照調整。參數調整有兩種:①選通三種顏色的濾波器對TCS3200 的輸出脈沖依次進行計數,當計數到255 時停止計數,分別計算每個通道所用的時間。這些時間作為實際測試時TCS3200 每種濾波器所采用的時間基準,在這段時間內所測得的脈沖數就是所對應的RGB的值。②設置定時器為一固定時間(如10 ms),選通三種濾波器,計算此時間段內TCS3200 的輸出脈沖數,從而計算出比例因子,通過這個比例因子可將這些脈沖數變為255[7]。在實際測試時,使用同樣的時間進行計數,把測得的脈沖數再乘以求得的比例因子,然后就可以得到所對應的RGB 的值。
此處采用第二種方法進行參數調整,然后對白平衡處理后進行顏色識別,其流程如圖6 所示。

圖6 顏色識別子程序
本設計采用C51 語言進行設計,在keil51 編譯器分模塊編譯仿真,并將系統軟件調入protues 軟件進行系統仿真,然后利用單片機開發板對顏色識別和分揀電路分別進行硬件仿真調試。實驗結果顯示,此系統能準確地對紅、綠、藍等顏色進行識別并分揀,并且可以根據市場需求更換電機驅動模塊。