楊俊茹,郭 坤,宋傳娟,劉欽冉
(山東科技大學 機械電子工程學院,青島 266590)
顏色傳感器的結構主要包括光電二極管與彩色濾光器。其工作原理是,通過彩色濾光器將所測得的顏色分解成紅(red)、綠(green)、藍(blue)三種原色,然后通過光電二極管分別檢測各色的強度。隨著檢測技術水平的不斷提高,基于顏色傳感器技術的顏色檢測技術以其靈敏度高、響應速度快的優點,在實際生產中得到了廣泛應用。李喜鵬等人基于顏色傳感器設計的綠色識別系統,用于自動噴藥裝置,為快速、準確識別作物進行噴藥提供了技術支持[1];一種用于石油產品顏色檢測的測量系統,不僅可以對成品油樣本的顏色進行識別,還可以根據測量結果初步分析油品的膠質含量[2];王晴等提出了一種基于顏色傳感器的新生兒黃疸檢測方法,根據RGB分量的值確定皮膚顏色,實現了對新生兒黃疸進行連續的檢測[3]。
TCS230是美國TAOS公司推出的可編程彩色光到頻率的轉換器。它把可配置的硅光電二極管與電流頻率轉換器集成在一個單一的CMOS電路上,同時在芯片上還集成了紅、綠、藍(RGB)3種原色的濾光器,是業界第一個有數字兼容接口的RGB彩色傳感器。輸出為數字量,可直接與微處理器連接,不需要外接A/D轉換電路,使用方便,且分辨率高,響應速度塊,有較強的抗干擾能力,使用范圍廣泛[4]。
在工業生產中,由于各種因素的作用,經常需要將待加工的工件按照一定要求排列成特定順序,而由于自動生產的特點,這些工件的初始順序往往是雜亂無章的。這時就涉及到工件的自動排序問題。例如:在焊接串行接口時,對接頭與導線之間的焊接就有一定的順序要求,即不同顏色的導線需焊接到不同的接頭位置,因此在串口的自動焊接之前,需要將待焊接的無序導線按照一定的順序排列起來,以便于后續焊接。以往的導線排序往往由人工進行,費時費力,不符合自動化生產的需要。針對這一問題,本文設計了一種導線顏色檢測及順序調整控制系統,并給出了顏色識別及順序調整的控制方法與控制程序,實現了串口焊接中導線的自動化排序,控制方法簡潔,實用性較高。
本系統分為兩部分,分別為導線的顏色識別與導線的順序調整,其中,顏色識別部分采用顏色傳感器TCS230,將檢測到的顏色RGB值傳輸給單片機,并記錄當前顏色所對應的位置信息,經過與預存顏色信息進行一系列的比較計算后,得出每根導線調整所需的運動方向和運動距離(電機進給步數);順序調整部分由步進電機帶動機械手機構根據之前計算結果,按照一定流程進行三維運動,實現對導線的抓取及其順序調整。系統中導線數量為13,預存顏色信息即為這些導線的顏色RGB值,如表1所示。預存顏色信息存放在數組rgb1[13][3]中。
系統工作流程如圖1所示。

圖1 系統工作流程圖
TCS230將紅、綠、藍(RGB)3種原色的濾光器集成在單一芯片上,當控制單片機選定某一原色的濾光器時,它只允許該原色通過,而阻止其他兩種原色的通過。使用時依次選通紅色、綠色和藍色濾光器,得到所測顏色的三種原色的光強。不同的光強對應不同頻率的輸出方波。通過測量輸出方波的個數,并進行相應的比例換算,即可獲得該顏色的RGB值[4]。

表1 系統預存顏色的RGB值(十六進制)
在本系統中,TCS230輸出(OUT)直接接入單片機中,由單片機計數器對輸出方波進行計數,進而確定所檢測到的顏色的RGB值,并記錄每種顏色所對應的位置,以便進行下一步處理。最終檢測出的顏色RGB值賦值給數組變量rgb[3],其中rgb[0]=R,rgb[1]=G,rgb[2]=B,對應的位置信息放在數組weizhi[13]中。
采集到顏色的RGB之后,經過與預存顏色的RGB值進行比較,即可確定所檢測的顏色。考慮檢測誤差,檢測到的RGB值與預存的RGB值不可避免的會存在一定出入,故在比較過程中,采用笛卡爾距離法來比較兩種不同的顏色,這種通過計算兩種顏色RGB值的笛卡爾距離來確定導線顏色的方式,計算方便,控制程序簡潔,有很高的實用性。其表達式為[5]:

實際應用中,考慮到式(1)中運算較為復雜,故其可簡化為[5]:

其中 R、G、B是檢測的顏色值,R0、G0、B0是預存的顏色值。當計算出的d值小于設定值時,即可認為所比較的兩種顏色為同一顏色。
顏色檢測與比較的控制流程如圖2所示。

圖2 顏色檢測與比較流程圖
在確定導線的顏色及位置信息后,系統即開始對導線的順序進行自動調整,調整方法如下:機械手初始位置為I=0,根據表1所列導線排列順序,需要將紅色的導線調整到I=0的位置上來,根據檢測結果,紅色的導線所處的位置為I=I1,則將紅色導線從I1調整到0位置,需要正向移動I1-0個單位的距離。紅色導線調整到位后,機械手前進一個單位距離,來到I=1位置,需要將黃色的導線調整到I=1的位置上來,根據檢測結果,黃色的導線所處的位置為I=I2,則將紅色導線從I2調整到1位置,需要正向移動I2-1個單位的距離。若I2-1<0,則反向移動。黃色導線調整到位后,機械手前進一個單位距離,來到I=2位置……直至最后一個導線調整到位。
根據檢測結果及對應的存儲在數組weizhi[13]中的位置信息,將weizhi[13]與所需要的排列順序中各顏色對應的位置信息(順序排列0,1,2,3,…)相比較,得出調整每種顏色的導線所需運動的步數step,并判斷其運動方向,進而控制步進電機正傳或者反轉相應的步數,同時控制機械手機構依次抓取待調整的各導線,將其運送到指定位置,實現對導線順序的調整。具體控制流程如圖3所示。

圖3 順序調整程序流程圖
為了實現將隨機排列的導線調整成特定順序的排列方式這一功能,即實現圖3所示流程圖中的“執行抓取、運輸、放置動作”這一步驟,機械手共需三個方向的運動,以實現待調整的對象沿橫向(X軸)、縱向(Y軸)及豎直方向(Z軸)的進給運動。三個方向的運動均由步進電機帶動,抓取導線所用的機械手為電磁鐵夾緊機構,其運動流程如圖4所示。

圖4 機械手機構運動流程圖
本系統中,顏色檢測、計算比較及順序調整均由80C52單片機控制,根據圖1~圖4所示的系統工作流程,采用C語言開發了系統控制程序,包括主程序與子程序兩部分。在主程序中,所調用的各子程序類型需在主程序前予以定義。主程序如下:




其中,電機轉動程序只給出了X正向轉動子程序,其他5個方向的轉動程序與之類似,只是輸出接口不同,此處不再一一列舉。
由于TCS230輸出為數字量,可以接入單片機,故基于TCS230的顏色檢測系統的連接電路都相對比較簡單,且控制方便。本文利用TCS230的檢測作用,設計了導線顏色檢測及順序調整控制系統,采用笛卡爾距離比較法確定待檢測導線的顏色RGB值,并記錄相應的位置信息;根據檢測結果,對導線的順序進行自動調整,設計了導線順序的調整方法與系統的工作流程圖;采用C語言開發了系統控制程序。這種基于顏色識別的導線順序調整控制系統,實現了串口自動焊接時導線順序的自動調整,經相應改動后也適用于其他工業生產中相關工件位置的自動調整,具有較高的實用價值。
[1] 李喜朋,姚傳安,李明剛,等.基于顏色傳感器的綠色識別系統設計[J].安徽農業科學,2009,37(27):13136-13138,13141.
[2] 段志偉,高丙坤,宋金波.基于RGB顏色傳感器旳油品顏色檢測系統設計[J].化工自動化及儀表,2013,40(8):982-985.
[3] 王晴,尹志勇.基于顏色傳感器TCS230的新型經皮測疸儀的設計[J].傳感器與微系統,2008,27(9):100-102.
[4] 胡建民.顏色傳感器TCS230及顏色識別電路[J].單片機與嵌入式系統應用,2006,53(4):40-41,53.
[5] 盧川英,于浩成,孫敬輝,等.基于TCS230傳感器的顏色檢測系統[J].吉林大學學報:信息科學版,2008,26(6):621-625.
[6] 鄭鋒,王巧藝,等.51單片機應用系統典型模塊開發大全(修訂版)[M].北京:中國鐵道出版社,2013.
[7] 劉志海.C程序設計[M].北京:電子工業出版社,2008.