ev3顏色傳感器能夠識別幾種顏色
在顏色模式中,顏色傳感器可識別七種顏色-黑色、藍(lán)色、綠色、黃色、白色和棕色,加上無顏色。傳感器區(qū)別不同顏色的能力意味著您可對機(jī)器人編程來分類彩色球或模塊,說出各種檢測到的顏色,或見到紅色即停止動作。
?
在反射光強(qiáng)度模式中,顏色傳感器測量從紅燈(即發(fā)光燈)反射回來的光強(qiáng)度。該傳感器測量范圍為0(極暗)到100(極亮)。這意味著您可對機(jī)器人編程,使其在一個白色表面上來回移動,直到檢測到一條黑線或解釋顏色編碼識別卡。
在環(huán)境光強(qiáng)度模式中,該顏色傳感器測量從周圍環(huán)境進(jìn)入到窗口的光強(qiáng)度,如太陽光或手電筒的光束。該傳感器測量范圍為0(極暗)到100(極亮)。這意味著您可對機(jī)器人編程來設(shè)定早間鬧鐘,或在燈滅時停止動作。
該顏色傳感器采樣速率為每秒1kHz。
當(dāng)處于“顏色模式”或“反射光強(qiáng)度模式”時,為求最精確,傳感器必須角度正確、靠近但不接觸到正在檢測的物體表面。
EV3關(guān)于顏色傳感器使用中的實際問題
EV3目前的顏色傳感器內(nèi)部使用的是ST的一款低功耗單品機(jī),并不是專用的顏色傳感芯片。在用到顏色識別功能的時候,常會出現(xiàn)顏色識別錯誤的問題。作為前端的傳感器一旦出現(xiàn)識別不準(zhǔn)確的現(xiàn)象,會直接影響后續(xù)機(jī)器的動作,而對初學(xué)這方面知識的朋友造成很大困擾。這篇微博的內(nèi)容就是討論一下幾種避免顏色錯誤識別的幾種方法。
首先來看一下這個顏色傳感器的工作原理。當(dāng)她工作在顏色識別的工作模式下時,她的顏色發(fā)光管通過集成在一起的紅、綠、藍(lán)三個LED,利用光的三色原理,交替發(fā)出7種不同顏色的光,然后通過傳感器上的接收二極管,測量被測物體反射光的強(qiáng)度,當(dāng)反射光最強(qiáng)時,就認(rèn)為此時發(fā)出的顏色光就是物體的顏色。
例如,在她的發(fā)射LED交替發(fā)出7種不同顏色光的時候,同時也在不斷地接收反射光的強(qiáng)度。而當(dāng)發(fā)出紅色光的時候,測量到此時物體的反射光最強(qiáng),那么就認(rèn)為這個被測量的物體是紅色。
黑色物體因為吸收了所有可見光,所以當(dāng)傳感器交替發(fā)完7種不同顏色的光以后,比較每一種顏色所接收的反射光強(qiáng)度,數(shù)值都非常弱,同時與測量的環(huán)境光比較后,則認(rèn)為被測物體是黑色。
明白了這個顏色傳感器工作原理,我們再來看顏色識別錯誤的問題和幾種解決方法:我們用藍(lán)色來舉例,首先被測色塊盡可能靠近顏色傳感器,以減少外界環(huán)境光源的干擾,但不要完全貼在傳感器上,留給物體反射回傳感器的一個距離空間,一般5mm左右就可以。不要移動被測色塊,再看測量結(jié)果。
1. 如果一個藍(lán)色的色塊,顏色傳感器總是讀出綠色,或者讀錯的概率太大,說明這種藍(lán)色的色調(diào)不適合用EV3的顏色傳感器。建議換一種不同色調(diào)的藍(lán)色,最好用Lego的藍(lán)色積木塊。因為EV3的顏色傳感器在設(shè)計時,是以Lego自己的顏色為標(biāo)準(zhǔn)。
2. 如果一個藍(lán)色的被測色塊,有時會被識別成綠色,但多數(shù)情況被正確識別成藍(lán)色。這種情況可以用數(shù)字均值濾波的方法,去除掉干擾。比如當(dāng)?shù)谝淮巫x出藍(lán)色后,延時再讀一次,再判斷第二次讀出的是否還是藍(lán)色,如果兩次讀出不一致,則忽略不計。直到連續(xù)讀出同一顏色結(jié)果,則認(rèn)為此顏色正確。具體測量采樣的頻率和次數(shù),根據(jù)實際應(yīng)用來定。我在顏色分揀傳送帶的程序里,根據(jù)傳送帶的速度,和色塊尺寸,用了兩次采樣,間隔0.5秒。舉例如下:
3 .在實際應(yīng)用中,我們多數(shù)情況對要識別的色塊,識別到了即可,不需要對已經(jīng)識別到的色塊再反復(fù)識別。比如對傳送帶上經(jīng)過的色塊計數(shù)。經(jīng)過一個色塊就記一次數(shù),如何控制檢測計數(shù)器,也是會經(jīng)常用到的。我比較常用的方法是經(jīng)過數(shù)字濾波后,確認(rèn)正確識別到了物體后,計數(shù)器操作一次,同時作‘本次已操作過’標(biāo)志。保證對同一物體不再重復(fù)運算操作。直到傳感器采樣到另一種顏色后,比如黑色或無色或其他環(huán)境顏色,再清除“本次已操作過”標(biāo)志。具體程序并不復(fù)雜,大家可自己嘗試。