程書(shū)晗蘇宇鋒
(鄭州大學(xué)機(jī)械與動(dòng)力工程學(xué)院,河南 鄭州 450001)
隨著現(xiàn)代工業(yè)生產(chǎn)向高速化、自動(dòng)化方向的發(fā)展[1],顏色識(shí)別被越來(lái)越多地應(yīng)用于現(xiàn)代工業(yè)生產(chǎn)。由顏色傳感器識(shí)別到顏色信息傳遞給控制單元進(jìn)行處理,相比人眼獲得更客觀準(zhǔn)確的數(shù)據(jù)。顏色識(shí)別可應(yīng)用于工業(yè)自動(dòng)化、遙感技術(shù)、圖像處理、產(chǎn)品質(zhì)檢以及一些需要色彩檢測(cè)的模糊檢測(cè)技術(shù)中。這些應(yīng)用中,許多對(duì)顏色檢測(cè)精度要求并不高,往往只需要區(qū)分不同顏色,比如:圖書(shū)館中利用給圖書(shū)添加各種顏色貼條對(duì)文獻(xiàn)分類(lèi);不同顏色的包裝或者裝潢表示內(nèi)部產(chǎn)品的不同特性;醫(yī)療行業(yè),批量檢測(cè)試管中血樣的有無(wú)等。
本文設(shè)計(jì)一種低功耗、可擴(kuò)展的顏色檢測(cè)系統(tǒng),此系統(tǒng)保證顏色數(shù)據(jù)傳輸準(zhǔn)確,過(guò)程穩(wěn)定,單次采集量可控,采集過(guò)程可滿(mǎn)足整個(gè)流程自動(dòng)化,精度滿(mǎn)足一般工業(yè)對(duì)顏色采集的要求。
該系統(tǒng)整體框架如圖1 所示,分為上位機(jī)、數(shù)據(jù)采集模塊和顏色檢測(cè)模塊三部分,其中后兩部分都是以STC8F2K16S2 為核心,顏色檢測(cè)模塊通過(guò)陣列的排布,利用顏色傳感器對(duì)多個(gè)待檢測(cè)目標(biāo)的RGB值進(jìn)行檢測(cè),得到的數(shù)據(jù)經(jīng)過(guò)處理后傳給數(shù)據(jù)采集模塊;數(shù)據(jù)采集模塊再把采集到的數(shù)據(jù)傳送給上位機(jī),通過(guò)上位機(jī)的監(jiān)測(cè)窗口可以看到待測(cè)物體的RGB 值。
圖1 系統(tǒng)總體框架圖
系統(tǒng)中各部分通過(guò)RS485 總線(xiàn)進(jìn)行通信,收發(fā)器選擇MAX487 芯片,保證顏色檢測(cè)模塊在數(shù)量上可以實(shí)現(xiàn)128×128 的擴(kuò)展。
供電電路如圖2 所示,通過(guò)開(kāi)關(guān)電壓調(diào)節(jié)器LM2596 將24 V 直流電轉(zhuǎn)換為5 V 直流電供系統(tǒng)使用。也可通過(guò)調(diào)節(jié)撥碼開(kāi)關(guān),不經(jīng)過(guò)降壓模塊,直接接入5 V 直流電。其中每個(gè)采集設(shè)備與檢測(cè)設(shè)備都分別與一個(gè)電源模塊相連,且同級(jí)設(shè)備并聯(lián),降低總線(xiàn)電流,減小電路損耗。
圖2 系統(tǒng)供電電路
RS485 通信模塊電路如圖3 所示,硬件電路采用自動(dòng)收發(fā)式設(shè)計(jì),電路可根據(jù)TXD 發(fā)送數(shù)據(jù)的起始位自動(dòng)將收發(fā)器設(shè)置為發(fā)送模式,發(fā)送完畢后設(shè)置為監(jiān)聽(tīng)模式。
圖3 RS485 通信電路圖
顏色檢測(cè)芯片為AMS 公司生產(chǎn)的TCS3200D芯片,該芯片通過(guò)將顏色信號(hào)轉(zhuǎn)換為頻率信號(hào)[2],通過(guò)單片機(jī)計(jì)數(shù)器接收到芯片信號(hào),從而進(jìn)行顏色轉(zhuǎn)換。此部分主要目的就是對(duì)物體顏色進(jìn)行檢測(cè),得到相應(yīng)的RGB 數(shù)據(jù)、處理后傳送給數(shù)據(jù)采集設(shè)備。顏色檢測(cè)模塊的電路如圖4 所示。
圖4 顏色檢測(cè)電路圖
顏色檢測(cè)電路中每個(gè)顏色檢測(cè)設(shè)備包含一個(gè)含有6 個(gè)LED 燈的照明燈,用于增加檢測(cè)精度。顏色檢測(cè)設(shè)備實(shí)物如圖5 所示,檢測(cè)設(shè)備分兩部分,一部分為顏色檢測(cè),模塊化管理,另一部分為檢測(cè)部分供電以及與數(shù)據(jù)采集設(shè)備連接。
圖5 顏色檢測(cè)設(shè)備實(shí)物圖
軟件部分主要對(duì)整體流程框架進(jìn)行設(shè)計(jì),包含對(duì)數(shù)據(jù)采集模塊與顏色檢測(cè)模塊之間的RS485 通信協(xié)議的設(shè)計(jì),對(duì)采集模塊得到數(shù)據(jù)的處理。以及根據(jù)通信的命令對(duì)上位機(jī)的設(shè)計(jì)。在軟件設(shè)計(jì)時(shí)全部采用模塊化處理,便于后續(xù)命令的擴(kuò)展和對(duì)程序的移植。
通信部分都為點(diǎn)對(duì)多點(diǎn)的形式,將主機(jī)發(fā)送的數(shù)據(jù)按照地址幀與數(shù)據(jù)幀進(jìn)行分類(lèi),地址幀發(fā)送地址與命令,數(shù)據(jù)幀進(jìn)行主從機(jī)握手之后的數(shù)據(jù)傳輸。數(shù)據(jù)幀以數(shù)據(jù)包的形式發(fā)送。
(1)數(shù)據(jù)包結(jié)構(gòu)
顏色檢測(cè)模塊與數(shù)據(jù)采集模塊數(shù)據(jù)發(fā)送采用數(shù)據(jù)包的模式,方便對(duì)數(shù)據(jù)進(jìn)行解析和校驗(yàn)。數(shù)據(jù)包格式如下:
表1 數(shù)據(jù)包格式
其中數(shù)據(jù)字段為核心內(nèi)容數(shù)據(jù)字段,此部分長(zhǎng)度可調(diào)節(jié)。
(2)數(shù)據(jù)包發(fā)送模塊
數(shù)據(jù)包在顏色檢測(cè)模塊的串口中斷2 中發(fā)送,串口中斷處理程序流程如圖6 所示。在串口中斷中進(jìn)行了顏色的檢測(cè)和數(shù)據(jù)的發(fā)送。
圖6 發(fā)送數(shù)據(jù)流程圖
其中數(shù)據(jù)處理包含傳感器多次測(cè)量去極值后所取的平均值和對(duì)數(shù)據(jù)包中的數(shù)據(jù)添加16 位的CRC校驗(yàn)碼,在數(shù)據(jù)發(fā)送過(guò)程中為數(shù)據(jù)包中添加1 byte的校驗(yàn)和。
(3)數(shù)據(jù)包接收模塊
數(shù)據(jù)包由數(shù)據(jù)采集模塊接收,接收部分在采集模塊串口2 中斷服務(wù)程序中,程序流程如圖7 所示,數(shù)據(jù)采集模塊接收來(lái)自多個(gè)顏色檢測(cè)模塊的RGB數(shù)據(jù),采用了數(shù)據(jù)和校驗(yàn)與循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)校驗(yàn)相結(jié)合的方式,CRC是通信領(lǐng)域常用的一種校驗(yàn)碼,用于檢測(cè)數(shù)據(jù)在傳輸過(guò)程中是否發(fā)生了被篡改的錯(cuò)誤[3]。兩種校驗(yàn)共3 byte,此冗余設(shè)計(jì)保證了接收數(shù)據(jù)的準(zhǔn)確性。
圖7 接收數(shù)據(jù)流程圖
在輪詢(xún)從機(jī)時(shí),對(duì)接收數(shù)據(jù)失敗的從機(jī),在第一輪輪詢(xún)從機(jī)結(jié)束后,再對(duì)通信失敗的從機(jī)進(jìn)行第二次詢(xún)問(wèn),重新進(jìn)行數(shù)據(jù)接收。
設(shè)計(jì)采用由主機(jī)控制從機(jī)機(jī)制,將命令分為廣播命令與點(diǎn)對(duì)點(diǎn)命令,廣播命令完成對(duì)所有從機(jī)的控制,點(diǎn)對(duì)點(diǎn)命令進(jìn)行主機(jī)與指定從機(jī)的通信。
為保證顏色檢測(cè)的實(shí)時(shí)性,顏色傳感器進(jìn)行顏色讀取的時(shí)間由上位機(jī)確定,上位機(jī)發(fā)送命令給數(shù)據(jù)采集設(shè)備,使其向所有顏色檢測(cè)設(shè)備發(fā)送讀取顏色命令;上位機(jī)發(fā)送命令使采集器對(duì)檢測(cè)并處理后的數(shù)據(jù)進(jìn)行分別采集;最后逐個(gè)收集采集器采集到的數(shù)據(jù),以此完成應(yīng)用層與感知層的間接通信。
(1)數(shù)據(jù)采集設(shè)備數(shù)據(jù)發(fā)送模塊
其中上位機(jī)與數(shù)據(jù)采集設(shè)備通信過(guò)程中,采集設(shè)備通過(guò)串口1 完成對(duì)上位機(jī)命令的接收以及采集數(shù)據(jù)的發(fā)送。其串口1 中斷流程如圖8 所示。
圖8 上位機(jī)與采集設(shè)備通信流程圖
(2)上位機(jī)模塊
上位機(jī)采用C#軟件編寫(xiě),軟件界面如圖9 所示,各部分功能清晰可視化。可實(shí)現(xiàn)在命令區(qū)單獨(dú)發(fā)送命令或者在配置區(qū)與工作區(qū)進(jìn)行一些配置后,通過(guò)開(kāi)始檢測(cè)按鈕直接對(duì)各采集設(shè)備與檢測(cè)設(shè)備自動(dòng)化控制,完成從檢測(cè)到在上位機(jī)顯示RGB 值,以及間隔一定時(shí)間重新采集的自動(dòng)化流程。在上位機(jī)接受區(qū)可以接收到各從機(jī)檢測(cè)到的RGB 數(shù)據(jù)。
圖9 上位機(jī)與采集設(shè)備通信流程圖
根據(jù)上述系統(tǒng)的設(shè)計(jì),使用C 語(yǔ)言完成軟件部分各模塊的編程,生成hex 文件后使用STC-ISP 軟件燒錄到數(shù)據(jù)采集設(shè)備和顏色檢測(cè)設(shè)備中,連接通信電路、打開(kāi)上位機(jī)軟件,使用自動(dòng)檢測(cè)模式對(duì)系統(tǒng)進(jìn)行測(cè)試。
(1)數(shù)據(jù)準(zhǔn)確性測(cè)試
將程序中由顏色檢測(cè)傳感器采集RGB 值并處理后的數(shù)據(jù)改為已知的固定數(shù)據(jù),分別在設(shè)置不同CRC 校驗(yàn)碼與數(shù)據(jù)和校驗(yàn)碼的情況下對(duì)數(shù)據(jù)傳輸?shù)臏?zhǔn)確性進(jìn)行測(cè)試。
結(jié)果表明,只有當(dāng)CRC 校驗(yàn)碼與數(shù)據(jù)和校驗(yàn)碼檢測(cè)正確時(shí),才能傳輸成功,否則數(shù)據(jù)采集設(shè)備內(nèi)部關(guān)于相應(yīng)顏色檢測(cè)設(shè)備的傳輸標(biāo)志位不置位,即表示傳輸失敗。由此可以看出此系統(tǒng)能夠準(zhǔn)確地傳輸數(shù)據(jù),并且在傳輸過(guò)程中出現(xiàn)錯(cuò)誤導(dǎo)致數(shù)據(jù)不準(zhǔn)確時(shí)會(huì)由于雙重冗余校驗(yàn)導(dǎo)致傳輸失敗。
(2)穩(wěn)定性測(cè)試
將檢測(cè)系統(tǒng)數(shù)據(jù)采集設(shè)備設(shè)置為四個(gè),顏色采集設(shè)備設(shè)置為五個(gè)。系統(tǒng)連接好后,在自動(dòng)檢測(cè)模式下進(jìn)行自動(dòng)化檢測(cè)待測(cè)物體RGB 值,經(jīng)測(cè)試,系統(tǒng)在連續(xù)工作13 h 的情況下檢測(cè)與傳輸過(guò)程未中止,且在此期間內(nèi)未丟失任何一組RGB 數(shù)據(jù),可以看出系統(tǒng)穩(wěn)定可靠。
(3)RGB 值檢測(cè)測(cè)試
使用此系統(tǒng),經(jīng)白平衡測(cè)試后,由顏色傳感器TCS3200D 檢測(cè)到的RGB 值對(duì)應(yīng)的顏色與實(shí)物的對(duì)比如表2 所示。
表2 RGB 值測(cè)試
該對(duì)比圖在待測(cè)物體與檢測(cè)裝置光源約3 mm處測(cè)得,從該對(duì)比圖可以看出檢測(cè)效果較為理想。但限于TCS3200D 顏色傳感器性能,對(duì)待測(cè)物體與檢測(cè)裝置之間距離以及白平衡測(cè)試準(zhǔn)度要求比較嚴(yán)格,需要仔細(xì)調(diào)試,否則得到的檢測(cè)結(jié)果誤差可能較大。
對(duì)于一些對(duì)RGB 值精度要求不高或者只需要進(jìn)行對(duì)顏色進(jìn)行區(qū)分的應(yīng)用場(chǎng)合,比如進(jìn)行糖尿病患者尿液血糖水平檢測(cè)[4],家具封裝中激光封邊的顏色檢測(cè)[5]等。本系統(tǒng)完全滿(mǎn)足此類(lèi)工業(yè)中對(duì)顏色識(shí)別的使用要求。
該系統(tǒng)以STC8F2K16S2 為核心,通過(guò)顏色檢測(cè)設(shè)備對(duì)大量待測(cè)物體進(jìn)行RGB 值讀取,處理后通過(guò)RS485 協(xié)議對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確、穩(wěn)定的傳輸至數(shù)據(jù)采集設(shè)備,最后由數(shù)據(jù)采集設(shè)備將數(shù)據(jù)發(fā)送給上位機(jī),通過(guò)上位機(jī)檢測(cè)到每一個(gè)待測(cè)物體對(duì)應(yīng)的RGB 值。整個(gè)系統(tǒng)可以完全自動(dòng)化的循環(huán)檢測(cè),且可根據(jù)需求對(duì)單次檢測(cè)數(shù)量進(jìn)行擴(kuò)展。經(jīng)測(cè)試后系統(tǒng)精度適中、成本低、功耗低、性能穩(wěn)定,可以滿(mǎn)足一般工業(yè)中對(duì)顏色檢測(cè)的要求。