楊俊茹,郭 坤,宋傳娟,劉欽冉
(山東科技大學(xué) 機(jī)械電子工程學(xué)院,青島 266590)
顏色傳感器的結(jié)構(gòu)主要包括光電二極管與彩色濾光器。其工作原理是,通過彩色濾光器將所測得的顏色分解成紅(red)、綠(green)、藍(lán)(blue)三種原色,然后通過光電二極管分別檢測各色的強(qiáng)度。隨著檢測技術(shù)水平的不斷提高,基于顏色傳感器技術(shù)的顏色檢測技術(shù)以其靈敏度高、響應(yīng)速度快的優(yōu)點(diǎn),在實(shí)際生產(chǎn)中得到了廣泛應(yīng)用。李喜鵬等人基于顏色傳感器設(shè)計的綠色識別系統(tǒng),用于自動噴藥裝置,為快速、準(zhǔn)確識別作物進(jìn)行噴藥提供了技術(shù)支持[1];一種用于石油產(chǎn)品顏色檢測的測量系統(tǒng),不僅可以對成品油樣本的顏色進(jìn)行識別,還可以根據(jù)測量結(jié)果初步分析油品的膠質(zhì)含量[2];王晴等提出了一種基于顏色傳感器的新生兒黃疸檢測方法,根據(jù)RGB分量的值確定皮膚顏色,實(shí)現(xiàn)了對新生兒黃疸進(jìn)行連續(xù)的檢測[3]。
TCS230是美國TAOS公司推出的可編程彩色光到頻率的轉(zhuǎn)換器。它把可配置的硅光電二極管與電流頻率轉(zhuǎn)換器集成在一個單一的CMOS電路上,同時在芯片上還集成了紅、綠、藍(lán)(RGB)3種原色的濾光器,是業(yè)界第一個有數(shù)字兼容接口的RGB彩色傳感器。輸出為數(shù)字量,可直接與微處理器連接,不需要外接A/D轉(zhuǎn)換電路,使用方便,且分辨率高,響應(yīng)速度塊,有較強(qiáng)的抗干擾能力,使用范圍廣泛[4]。
在工業(yè)生產(chǎn)中,由于各種因素的作用,經(jīng)常需要將待加工的工件按照一定要求排列成特定順序,而由于自動生產(chǎn)的特點(diǎn),這些工件的初始順序往往是雜亂無章的。這時就涉及到工件的自動排序問題。例如:在焊接串行接口時,對接頭與導(dǎo)線之間的焊接就有一定的順序要求,即不同顏色的導(dǎo)線需焊接到不同的接頭位置,因此在串口的自動焊接之前,需要將待焊接的無序?qū)Ь€按照一定的順序排列起來,以便于后續(xù)焊接。以往的導(dǎo)線排序往往由人工進(jìn)行,費(fèi)時費(fèi)力,不符合自動化生產(chǎn)的需要。針對這一問題,本文設(shè)計了一種導(dǎo)線顏色檢測及順序調(diào)整控制系統(tǒng),并給出了顏色識別及順序調(diào)整的控制方法與控制程序,實(shí)現(xiàn)了串口焊接中導(dǎo)線的自動化排序,控制方法簡潔,實(shí)用性較高。
本系統(tǒng)分為兩部分,分別為導(dǎo)線的顏色識別與導(dǎo)線的順序調(diào)整,其中,顏色識別部分采用顏色傳感器TCS230,將檢測到的顏色RGB值傳輸給單片機(jī),并記錄當(dāng)前顏色所對應(yīng)的位置信息,經(jīng)過與預(yù)存顏色信息進(jìn)行一系列的比較計算后,得出每根導(dǎo)線調(diào)整所需的運(yùn)動方向和運(yùn)動距離(電機(jī)進(jìn)給步數(shù));順序調(diào)整部分由步進(jìn)電機(jī)帶動機(jī)械手機(jī)構(gòu)根據(jù)之前計算結(jié)果,按照一定流程進(jìn)行三維運(yùn)動,實(shí)現(xiàn)對導(dǎo)線的抓取及其順序調(diào)整。系統(tǒng)中導(dǎo)線數(shù)量為13,預(yù)存顏色信息即為這些導(dǎo)線的顏色RGB值,如表1所示。預(yù)存顏色信息存放在數(shù)組rgb1[13][3]中。
系統(tǒng)工作流程如圖1所示。
圖1 系統(tǒng)工作流程圖
TCS230將紅、綠、藍(lán)(RGB)3種原色的濾光器集成在單一芯片上,當(dāng)控制單片機(jī)選定某一原色的濾光器時,它只允許該原色通過,而阻止其他兩種原色的通過。使用時依次選通紅色、綠色和藍(lán)色濾光器,得到所測顏色的三種原色的光強(qiáng)。不同的光強(qiáng)對應(yīng)不同頻率的輸出方波。通過測量輸出方波的個數(shù),并進(jìn)行相應(yīng)的比例換算,即可獲得該顏色的RGB值[4]。
表1 系統(tǒng)預(yù)存顏色的RGB值(十六進(jìn)制)
在本系統(tǒng)中,TCS230輸出(OUT)直接接入單片機(jī)中,由單片機(jī)計數(shù)器對輸出方波進(jìn)行計數(shù),進(jìn)而確定所檢測到的顏色的RGB值,并記錄每種顏色所對應(yīng)的位置,以便進(jìn)行下一步處理。最終檢測出的顏色RGB值賦值給數(shù)組變量rgb[3],其中rgb[0]=R,rgb[1]=G,rgb[2]=B,對應(yīng)的位置信息放在數(shù)組weizhi[13]中。
采集到顏色的RGB之后,經(jīng)過與預(yù)存顏色的RGB值進(jìn)行比較,即可確定所檢測的顏色??紤]檢測誤差,檢測到的RGB值與預(yù)存的RGB值不可避免的會存在一定出入,故在比較過程中,采用笛卡爾距離法來比較兩種不同的顏色,這種通過計算兩種顏色RGB值的笛卡爾距離來確定導(dǎo)線顏色的方式,計算方便,控制程序簡潔,有很高的實(shí)用性。其表達(dá)式為[5]:
實(shí)際應(yīng)用中,考慮到式(1)中運(yùn)算較為復(fù)雜,故其可簡化為[5]:
其中 R、G、B是檢測的顏色值,R0、G0、B0是預(yù)存的顏色值。當(dāng)計算出的d值小于設(shè)定值時,即可認(rèn)為所比較的兩種顏色為同一顏色。
顏色檢測與比較的控制流程如圖2所示。
圖2 顏色檢測與比較流程圖
在確定導(dǎo)線的顏色及位置信息后,系統(tǒng)即開始對導(dǎo)線的順序進(jìn)行自動調(diào)整,調(diào)整方法如下:機(jī)械手初始位置為I=0,根據(jù)表1所列導(dǎo)線排列順序,需要將紅色的導(dǎo)線調(diào)整到I=0的位置上來,根據(jù)檢測結(jié)果,紅色的導(dǎo)線所處的位置為I=I1,則將紅色導(dǎo)線從I1調(diào)整到0位置,需要正向移動I1-0個單位的距離。紅色導(dǎo)線調(diào)整到位后,機(jī)械手前進(jìn)一個單位距離,來到I=1位置,需要將黃色的導(dǎo)線調(diào)整到I=1的位置上來,根據(jù)檢測結(jié)果,黃色的導(dǎo)線所處的位置為I=I2,則將紅色導(dǎo)線從I2調(diào)整到1位置,需要正向移動I2-1個單位的距離。若I2-1<0,則反向移動。黃色導(dǎo)線調(diào)整到位后,機(jī)械手前進(jìn)一個單位距離,來到I=2位置……直至最后一個導(dǎo)線調(diào)整到位。
根據(jù)檢測結(jié)果及對應(yīng)的存儲在數(shù)組weizhi[13]中的位置信息,將weizhi[13]與所需要的排列順序中各顏色對應(yīng)的位置信息(順序排列0,1,2,3,…)相比較,得出調(diào)整每種顏色的導(dǎo)線所需運(yùn)動的步數(shù)step,并判斷其運(yùn)動方向,進(jìn)而控制步進(jìn)電機(jī)正傳或者反轉(zhuǎn)相應(yīng)的步數(shù),同時控制機(jī)械手機(jī)構(gòu)依次抓取待調(diào)整的各導(dǎo)線,將其運(yùn)送到指定位置,實(shí)現(xiàn)對導(dǎo)線順序的調(diào)整。具體控制流程如圖3所示。
圖3 順序調(diào)整程序流程圖
為了實(shí)現(xiàn)將隨機(jī)排列的導(dǎo)線調(diào)整成特定順序的排列方式這一功能,即實(shí)現(xiàn)圖3所示流程圖中的“執(zhí)行抓取、運(yùn)輸、放置動作”這一步驟,機(jī)械手共需三個方向的運(yùn)動,以實(shí)現(xiàn)待調(diào)整的對象沿橫向(X軸)、縱向(Y軸)及豎直方向(Z軸)的進(jìn)給運(yùn)動。三個方向的運(yùn)動均由步進(jìn)電機(jī)帶動,抓取導(dǎo)線所用的機(jī)械手為電磁鐵夾緊機(jī)構(gòu),其運(yùn)動流程如圖4所示。
圖4 機(jī)械手機(jī)構(gòu)運(yùn)動流程圖
本系統(tǒng)中,顏色檢測、計算比較及順序調(diào)整均由80C52單片機(jī)控制,根據(jù)圖1~圖4所示的系統(tǒng)工作流程,采用C語言開發(fā)了系統(tǒng)控制程序,包括主程序與子程序兩部分。在主程序中,所調(diào)用的各子程序類型需在主程序前予以定義。主程序如下:
其中,電機(jī)轉(zhuǎn)動程序只給出了X正向轉(zhuǎn)動子程序,其他5個方向的轉(zhuǎn)動程序與之類似,只是輸出接口不同,此處不再一一列舉。
由于TCS230輸出為數(shù)字量,可以接入單片機(jī),故基于TCS230的顏色檢測系統(tǒng)的連接電路都相對比較簡單,且控制方便。本文利用TCS230的檢測作用,設(shè)計了導(dǎo)線顏色檢測及順序調(diào)整控制系統(tǒng),采用笛卡爾距離比較法確定待檢測導(dǎo)線的顏色RGB值,并記錄相應(yīng)的位置信息;根據(jù)檢測結(jié)果,對導(dǎo)線的順序進(jìn)行自動調(diào)整,設(shè)計了導(dǎo)線順序的調(diào)整方法與系統(tǒng)的工作流程圖;采用C語言開發(fā)了系統(tǒng)控制程序。這種基于顏色識別的導(dǎo)線順序調(diào)整控制系統(tǒng),實(shí)現(xiàn)了串口自動焊接時導(dǎo)線順序的自動調(diào)整,經(jīng)相應(yīng)改動后也適用于其他工業(yè)生產(chǎn)中相關(guān)工件位置的自動調(diào)整,具有較高的實(shí)用價值。
[1] 李喜朋,姚傳安,李明剛,等.基于顏色傳感器的綠色識別系統(tǒng)設(shè)計[J].安徽農(nóng)業(yè)科學(xué),2009,37(27):13136-13138,13141.
[2] 段志偉,高丙坤,宋金波.基于RGB顏色傳感器旳油品顏色檢測系統(tǒng)設(shè)計[J].化工自動化及儀表,2013,40(8):982-985.
[3] 王晴,尹志勇.基于顏色傳感器TCS230的新型經(jīng)皮測疸儀的設(shè)計[J].傳感器與微系統(tǒng),2008,27(9):100-102.
[4] 胡建民.顏色傳感器TCS230及顏色識別電路[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006,53(4):40-41,53.
[5] 盧川英,于浩成,孫敬輝,等.基于TCS230傳感器的顏色檢測系統(tǒng)[J].吉林大學(xué)學(xué)報:信息科學(xué)版,2008,26(6):621-625.
[6] 鄭鋒,王巧藝,等.51單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全(修訂版)[M].北京:中國鐵道出版社,2013.
[7] 劉志海.C程序設(shè)計[M].北京:電子工業(yè)出版社,2008.