在現代工業生產中,顏色識別技術已經成為了一個非常重要的技術。顏色識別可以用于產品質量檢測、物料分類、機器視覺等領域。本文將介紹如何使用FPGA結合ZC-CLS381RGB進行顏色識別。
本教程通過對采集到的圖像信息中,R、G、B三個顏色分量的占比,來判斷識別到的顏色信息。本教程只實現對紅色、綠色、藍色的識別,如果各位讀者要想實現對其它色彩信息的識別,可根據三個色彩分量的占比來判斷。
ZC-CLS381RGB簡介
ZC-CLS381RGB是一款基于RGB三基色原理的顏色識別傳感器。它可以通過對物體反射光的RGB三基色分量進行測量,來判斷物體的顏色。該傳感器具有高精度、快速響應、穩定性好等特點,廣泛應用于自動化生產線、機器人、智能家居等領域。
配置寄存器組
ZC-CLS381RGB是一款RGB LED驅動器芯片,需要通過配置寄存器來讓該模塊正常工作。下面就對顏色識別需要配置的寄存器進行介紹。
主控寄存器
01
MAIN_CTRL Register是主控寄存器,下圖是主控寄存器的配置介紹:
? bit7~bit5,bit3,bit0:保留位(Reserved),使用時將這幾位置0即可。
? bit4:軟件復位位(SW Reset),當該位被置1時,芯片會進行軟件復位,即將所有寄存器的值恢復為默認值。在使用ZC-CLS381RGB時,如果出現異常情況,例如芯片無法正常工作或者輸出異常,可以通過將SW Reset位置1來進行軟件復位,以恢復芯片的正常工作狀態。同時,在初始化芯片時,也可以通過將SW Reset位置1來確保芯片的寄存器值處于默認狀態,以避免出現不可預期的問題。但是如果軟件復位位一直為高電平,模塊就無法正常采集顏色,一直處于復位狀態,如果要關閉該位則還需要發送一次指令。因此在本設計初始化時,將該位置為0,不啟用軟件復位。
? bit2:顏色傳感器模式位(CS Mode),該位置為1時,表示所有的光傳感器通道都被激活,包括RGB(三原色)、IR(紅外光)和COMP(環境光)。這意味著該傳感器可以同時測量紅、綠、藍三種顏色的光線強度、紅外線的強度以及環境光的強度,并將這些數據傳輸到寄存器中進行處理。初始化配置時,需將該位置為1。
? bit1:環境光傳感器/顏色傳感器使能位(ALS/CS Enable),當該位置1時,表示使能環境光傳感器和顏色傳感器。在本設計中,需要使用到這兩個傳感器,因此在初始化時需要將該位置為1。
檢測速率寄存器
02
ALS_CS_MEAS_RATE Register是環境光傳感器和顏色傳感器檢測速率寄存器,下圖是對該寄存器的配置介紹:
?bit7、bit3:保留位(Reserved),使用時這兩位需要置0。
? bit6,bit5,bit4:環境光傳感器和顏色傳感器速率位(ALS/CS Resolution),初始化時設置{bit6,bit5,bit4}=100,利用最快的時間對采集到的數據進行轉換。
?bit2,bit1,bit0:環境光傳感器和顏色傳感器測量速率位(ALS/CS Measurement Rate),初始化設置{bit2,bit1,bit0}=000,利用最快的采集速率采集數據。
增益寄存器
03
ALS_CS_MEAS_RATE Register是環境光傳感器和顏色傳感器增益寄存器,下圖是對該寄存器的配置介紹:
?bit7~bit3:保留位(Reserved),使用時這兩位需要置0。
? bit2~bit0:環境光傳感器和顏色傳感器增益率位(Reserved),初始化時設置{bit2,bit1,bit0}=100,將增益率調到最大,以此增強信號的強度,使得信號更容易被檢測到。
線上交流會
04
因為本教程采集的是紅色、綠色、藍色數據,芯片手冊提供的寄存器組如下圖所示:
0x0D、0x0E、0x0F分別表示綠色信息的低8位、中8位、高8位數據;0x10、0x11、0x12分別表示紅色信息的低8位、中8位、高8位數據;0x13、0x14、0x15分別表示藍色信息的低8位、中8位、高8位數據。在使用中,直接讀取這些寄存器內的數據,然后拼接起來,即可得到紅、綠、藍色數據,再根據三個數據的占比,從而對采集到的物體顏色進行判斷。
狀態轉移圖和信號波形圖繪制
在正式開始使用器件時,需要等待一段時間讓器件穩定下來,如圖所示:
待機喚醒時間最大為10ms,表示在測量的時候,兩次獲取數據的時間間隔最大為10ms。由于在數據手冊內,未說明上電后直到模塊穩定需要等待的時間,在這里我們人為設置上電等待的時間為20ms,給模塊一個緩沖的時間,然后再對它進行配置。配置寄存器組信號波形圖如下圖所示:
其中,i2c_start作為i2c控制模塊的開始信號,檢測到該開始信號后,就開始配置寄存器,向各個寄存器內寫入數據。綜上繪制的i2c控制模塊配置寄存器組的狀態轉移圖如下圖所示:
為了設計方便,對于50MHZ的系統時鐘,將其分頻為1MHZ的i2c驅動時鐘用來驅動后續模塊,同時令一個SCL時鐘周期為4us,高電平持續時間為2us,低電平持續時間也為2us。這樣設計的好處是,滿足SCL高電平持續時間大于0.6us,SCL低電平持續時間大于1.3us。如下圖所示:
綜上,繪制的分頻信號波形圖如下圖所示:
結合狀態轉移圖,繪制的配置寄存器信號波形圖如下圖所示:
需要注意的是,配置寄存器組跳轉條件為skip_en_0,這里配置的寄存器是向寄存器里面寫入數據,總共需要配置三個,三個寄存器配置完成后,才能讀出顏色數據。因此,step從0自增到1,必須要在cfg_num為3并且檢測到結束信號的情況下進行。
審核編輯:劉清
-
傳感器
+關注
關注
2553文章
51390瀏覽量
756577 -
FPGA
+關注
關注
1630文章
21796瀏覽量
605998 -
寄存器
+關注
關注
31文章
5363瀏覽量
121158 -
RGB
+關注
關注
4文章
801瀏覽量
58715
原文標題:【知識分享】ZC-CLS381RGB顏色識別+8x8點陣指示——配置顏色識別寄存器組(上)
文章出處:【微信號:FPGA創新中心,微信公眾號:FPGA創新中心】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論