2017-07-12

mBot mBlock 教學 - 顏色偵測 (光線感應器與RGB LED燈的應用)

利用mBot主機板 mCore 上面的光線感應器與RGB LED燈,可以用來偵測顏色。

(以前好像有一位老師曾經做過類似的事,這次我要自己做一次^^)

請看拍不清楚的影片示範:



將三種顏色的樂高積木放在光線感應器上方,按下板載按鈕,mBot進行偵測,亮出偵測結果的燈號,同時角色北極熊在螢幕上說出相對應的顏色。目前可以辨識『紅色』『藍色』『黃色』及『無顏色』。

原理很簡單,人的眼睛有紅藍綠三種感光細胞,積木會反射眼睛所看到的色光(所以我們才會看到這個顏色),例如:

黃色:反射大部分的紅色及綠色色光

紅色:反射大部分紅色色光

藍色:反射大部分藍色色光

所以我們依序做下面的動作

1. 先點亮LED的紅光,記錄光線感應器的數值,

2. 接著點亮LED的綠光,記錄光線感應器的數值,

3. 最後點亮LED的藍光,記錄光線感應器的數值。

多做幾次,找出不同顏色積木的光線感應器數值,如下表:

黃色:R 620-721, G 305-326, B 99-121
藍色:R 103-114, G 164-169, B 320-366
綠色:R 477-587, G 76-103, B 82-92

新增另外一個角色 - 北極熊,根據三種LED燈光所反射的光線感應器數值,判斷為何種顏色的積木。

本次示範的s2b程式放在 mBot mBlock 教學問答 臉書社團歡迎大家下載使用。

後續挑戰:

1. 可以辨識更多顏色嗎?
2. 如何辨識近似的顏色?例如深紅與淺紅?
3. 機器人可以依據不同的顏色做出不同的對應動作嗎?
4. 資料需要利用簡單如果法則,還是查表法的方式判別?
5. 可以自動在不同環境光源下自動學習記錄嗎?