徐小艷,崔雪英
(銅陵學院電氣工程學院,安徽 銅陵 244000)
在科技不斷提高,企業(yè)規(guī)?;a(chǎn)的背景下,自動化迅速成為工農(nóng)業(yè)的主流。在工農(nóng)業(yè)生產(chǎn)的自動化過程中,顏色的識別及分揀在食品、醫(yī)藥、化工等行業(yè)都有著重要意義。如制藥行業(yè)中將不同顏色的藥丸分離開、農(nóng)產(chǎn)品顏色識別確定果實的成熟度等。本文設(shè)計了一種以顏色識別傳感TS3200 為基礎(chǔ),以51 單片機為核心的顏色識別及分揀系統(tǒng)。
系統(tǒng)是以51 單片機為核心,擴展合適的外圍電路,完成了對產(chǎn)品的顏色識別及分揀。其結(jié)構(gòu)框圖如圖1 所示。
圖1 分揀系統(tǒng)結(jié)構(gòu)框圖
整個系統(tǒng)以微處理器為中心,包括顏色信息的采集及分揀兩大部分。顏色傳感器將采集到的顏色信息送入微處理器,微處理器對信息進行運算、處理識別,處理后的顏色識別信息作為輸出信號,驅(qū)動單片機的執(zhí)行機構(gòu)進行相應(yīng)的分揀操作。整個系統(tǒng)由顏色識別電路模塊、直流電機驅(qū)動模塊、語音播報模塊等部分組成。
系統(tǒng)硬件的微處理器采用89C51,主要由顏色識別電路、分揀電路及語音播報電路三個部分組成。
首先系統(tǒng)利用紅外線傳感器檢測需要識別的物品是否準備好,然后通過顏色傳感器檢測出被分揀物品顏色信息信號,并將信號發(fā)送給單片機,單片機通過接收到的信號信息進行相應(yīng)的分揀操作。
顏色識別選用顏色識別傳感器TCS3200,它是一款可編程光到頻率的轉(zhuǎn)換器芯片。內(nèi)部有紅、綠、藍和清除四種濾波器,一塊顏色到頻率轉(zhuǎn)換芯片TCS3200 RGB 及4 個白色LED 燈。其轉(zhuǎn)換原理是當被測物反射光中紅、綠、藍三色光線分別透過相應(yīng)濾波器到達TCS3200 RGB 感應(yīng)芯片時,其內(nèi)置的振蕩器會輸出相應(yīng)方波,方波頻率與所感應(yīng)的光強成正比關(guān)系,其OUT 輸出信號的頻率也與內(nèi)置振蕩器的頻率成正比[11]。當選定一個顏色濾波器時,它只允許某種特定的原色通過,阻止其他原色的通過。例如:當選擇紅色濾波器時,入射光中只有紅色可以通過,藍色和綠色都被阻止,這樣就可以得到紅色光的光強;同理,選擇其他的濾波器,就可以得到藍色光和綠色光的光強,通過這三個值,就可以分析投射到TCS3200 傳感器上的光的顏色[12]。此處P1.1、P1.0可用來選擇不同的比例因子。P1.4、P1.3 用來選擇濾波模式,顏色傳感器的頻率脈沖輸出連接到單片機外中斷0 進行脈沖計數(shù)。
將OUT 輸出信號頻率和內(nèi)置頻率的比例因子設(shè)好后,將OUT 輸出信號頻率轉(zhuǎn)換成被測物體的三原色RGB 值,還需要進行白平衡校正來得到RGB 比例因子。使芯片對所檢測的“白色”中的三原色時輸出的RGB 值相等。經(jīng)過白平衡后,TSC3200 在控制器中能準確反饋出被測物體的實際顏色。顏色識別電路原理圖如圖2 所示。
圖2 顏色識別電路原理圖
物品的分揀系統(tǒng)依據(jù)顏色識別的結(jié)果來驅(qū)動相應(yīng)的步進電機的轉(zhuǎn)動,這樣電機的轉(zhuǎn)動就可以將不同顏色的樣本送入相應(yīng)的區(qū)域。這里選用四相八拍電動機28BYJ48。
28BYJ48 原理是將電脈沖變?yōu)榻俏灰?,當收到一個脈沖,電機就按預(yù)定的程序轉(zhuǎn)一個特定角度。單片機引腳輸出電流不足以驅(qū)動負載,故此處電機驅(qū)動采用ULN2003 芯片,它是一個單片高電壓、高電流的達林頓晶體管陣列集成電路。單片機的P2.4~P2.7 連接ULN2003 的輸入引腳,其輸出連接電機的四相線圈,達到驅(qū)動電路的目的。其電路如圖3 所示。
圖3 步進電機驅(qū)動電路原理圖
語音播報電路采用語音芯片ISD4004,其工作于SPI 串行接口。當系統(tǒng)得到顏色識別結(jié)果時,調(diào)用事先存儲好的語音模塊來播報信息。此時,語音播報信號有效,開始取信號單元地址,后取信號單元內(nèi)容,再判斷是否滿足播報條件,如滿足則播報,反之則繼續(xù)取信號單元地址,最后判斷是否播報結(jié)束。通過對SPI 控制寄存器的設(shè)置可以實現(xiàn)錄放、錄音、信息檢索等功能。語音播報電路原理圖如圖4 所示。
圖4 語音播報電路原理圖
為了完成顏色識別與分揀的功能,程序設(shè)計采用了自上而下的模塊化設(shè)計,主要由主程序和子程序構(gòu)成,主程序完成系統(tǒng)的初始化及物品的檢測及播報。子程序有顏色識別子程序、分揀子程序和播報子程序等。顏色識別子程序首先完成白平衡調(diào)節(jié),確定顏色初值,得出比例因子,然后再對物體顏色進行校準識別,得到RGB 的亮度值。分揀子程序主要完成不同電機驅(qū)動程序設(shè)計,其相關(guān)流程如圖5 所示。
圖5 主程序流程圖
系統(tǒng)初始化不僅包括單片機的初始化,還包括TCS3200、電機驅(qū)動及播報芯片等的初始化。系統(tǒng)需對TCS3200 的白平衡、輸出比例因子及通信參數(shù)等進行初始化。當用TCS3200 顏色識別時,用白平衡后的參數(shù)與所測顏色的RGB 的值進行對照調(diào)整。參數(shù)調(diào)整有兩種:①選通三種顏色的濾波器對TCS3200 的輸出脈沖依次進行計數(shù),當計數(shù)到255 時停止計數(shù),分別計算每個通道所用的時間。這些時間作為實際測試時TCS3200 每種濾波器所采用的時間基準,在這段時間內(nèi)所測得的脈沖數(shù)就是所對應(yīng)的RGB的值。②設(shè)置定時器為一固定時間(如10 ms),選通三種濾波器,計算此時間段內(nèi)TCS3200 的輸出脈沖數(shù),從而計算出比例因子,通過這個比例因子可將這些脈沖數(shù)變?yōu)?55[7]。在實際測試時,使用同樣的時間進行計數(shù),把測得的脈沖數(shù)再乘以求得的比例因子,然后就可以得到所對應(yīng)的RGB 的值。
此處采用第二種方法進行參數(shù)調(diào)整,然后對白平衡處理后進行顏色識別,其流程如圖6 所示。
圖6 顏色識別子程序
本設(shè)計采用C51 語言進行設(shè)計,在keil51 編譯器分模塊編譯仿真,并將系統(tǒng)軟件調(diào)入protues 軟件進行系統(tǒng)仿真,然后利用單片機開發(fā)板對顏色識別和分揀電路分別進行硬件仿真調(diào)試。實驗結(jié)果顯示,此系統(tǒng)能準確地對紅、綠、藍等顏色進行識別并分揀,并且可以根據(jù)市場需求更換電機驅(qū)動模塊。