張孝芳
【摘 要】文章介紹了一種基于Arduino開發環境的顏色辨別系統。該系統以Arduino開源控制板為主控單元,與TCS3200顏色傳感器相結合,通過傳感器采集顏色信息,在Arduino IDE開發環境下進行程序調試、運行實現顏色識別。實驗結果表明該系統顏色辨別高效、準確。
【關鍵詞】Arduino;TCS3200顏色傳感器; 顏色識別
中圖分類號:TH 文獻標識碼: A 文章編號: 2095-2457(2018)36-0147-002
DOI:10.19694/j.cnki.issn2095-2457.2018.36.062
0 引言
顏色識別在現代生產中應用越來越廣,例如醫療診斷、材料分揀識別、圖像處理、機器人視覺系統及其它一些需要對顏色識別的檢測。隨著科技水平的不斷提高,人類的生產生活逐漸向智能化轉變,各種顏色辨別裝置逐漸取代人眼識別工作,使得上述應用實現自動化成為可能[1]。一般的顏色識別裝置是利用傳感器將光信號轉換為電,再對其處理并輸出,但輸出的是模擬量,還需增加A/D轉換裝置將模擬量轉換為數字信號后,最終輸出識別結果,因此電路比較復雜并且誤差較大,識別效果不佳。本文提出的基于Arduino平臺的顏色辨別系統是將Arduino與TCS3200顏色傳感器相連通過程序控制,簡化電路的同時極大的提高了識別的效率和準確性。
1 顏色辨別系統硬件組成
本系統由TCS3200顏色傳感器、Arduino分析處理模塊、LED顏色指示燈及電源等組成,系統整體框圖如圖1所示。系統結構簡單,Arduino控制板根據顏色傳感器檢測到的信號,在Arduino IDE開發環境下進行程序調試、運行,輸出顏色信號,控制相應顏色指示燈閃爍。
1.1 Arduino 模塊
Arduino是比較流行的開源電子平臺,包含各種型號的Arduino硬件電路板和開發軟件環境Arduino IDE。Arduino編程語言類似于C,不需要太多的單片機及編程基礎,極易掌握,靈活性強。本裝置采用的Arduino UNO硬件,核心是ATmega328P,同時具有14個數字輸入/輸出、6個模擬輸入/輸出、1個外接電源插孔及復位按鈕及1個USB接口,控制板可通過USB線與電腦連接,便于程序調試的同時還能為其供電、無需外接電源[2]。
1.2 顏色傳感器模塊
TCS3200傳感器是一款全彩的顏色檢測器,包括4個白光LED燈(起補光作用)和一塊RGB感應芯片。顏色傳感器將檢測到的RGB光信號經過光電二極管轉化為電流信號,再經過電流-頻率轉換器輸出方波頻率信號。TCS3200引腳功能圖如下,采用8引腳的封裝,其中S2、S3用于選擇濾波器類型,S0、S1用于選擇輸出比例因子,均通過高低電平來選擇具體如表1所示。OE是頻率輸出使能引腳,OUT是頻率輸出引腳,GND是芯片接地引腳,VCC為芯片提供工作電壓[3]。各模塊與Arduino板連接的電路圖如圖2所示。
2 顏色辨別系統軟件設計
Arduino是開源電子平臺,是由硬件和軟件兩部分組成。其中Arduino硬件電路板可自行購買或焊接,而 Arduino IDE軟件編程語言類似于C語言,不需要太多的單片機及編程基礎對于絕大多數模塊的使用,可直接調用其標準的庫函數即可,對于初學者來說,操作簡單、易于上手[4]。系統初始化后,首先白平衡校正,求出紅、綠、藍三色的RGB比例因子。顏色傳感器是否進行顏色檢測,當顏色傳感器檢測到物體顏色時,將信息反饋到Arduino 控制器中調用顏色識別子程序得出被測物體RGB值控制相應顏色指示燈亮暗變化,識別結束。如果一次進行多種顏色識別則只需一次白平衡調整。程序流程圖如圖3所示:
2.2 顏色檢測子程序
根據顏色檢測原理,編寫相應程序以實現顏色檢測高效、準確的目的。程序主要有獲取TCS3200所測顏色三原色輸出信號脈沖數。
3 實驗結果
本系統能夠達到辨別物體顏色的目的,但測試受環境光線的影響,結果存在一定的誤差,同時系統電源必須是穩定的5V直流電源,電源的波動同樣影響檢測結果。此外,傳感器檢測距離不能太遠,最佳測試距離為10mm。對于系統存在的問題可以通過優化算法、改善環境光線、選擇最佳檢測距離來解決。
4 總結
經由實驗發現,Arduino平臺于TCS3200顏色傳感器交互的顏色辨別系統具有整體電路簡單辨識速度快、精度高等特點,通過不斷優化程序,多次實驗測試,系統能夠達到對不同顏色快速準確辨別的功能,可廣泛應用于顏色檢測識別行業,對現代工業的自動化發展具有跟大的研究開發價值。
【參考文獻】
[1]李宏光.幾種顏色測量方法的比較[J].應用光學,2005,26(3):62-63.
[2]蔡睿妍.Arduino的原理及應用[J].電子設計工程,2012,(16):155-156.
[3]曹瓊.利用顏色傳感器TCS3200識別紅綠燈[J].電腦知識與技術,2017,(7):181-182.
[4]紀欣然.基于Arduino開發環境的智能尋光小車設計[J].現代電子技術,2012,35(15).