偵測和辨識顏色
這篇教學會介紹 micro:bit 自走車 ( MoonCar 登月小車 ) 的顏色感測器,透過顏色感測器偵測顏色,並使用變數和邏輯積木,記錄與辨識顏色。
- 操作 MoonCar 需要載入對應的擴充積木,請先參考:載入 MoonCar 的程式積木
- 更多資訊:ICShop MoonCar 官方網站
認識色光三原色
顏色感測器所讀取到的顏色,是由 R、G、B 三個顏色所組成,這三個顏色也就是所謂的「色光三原色」,這三種顏色無法被分解,也不能由其他色光所混合,在數位色彩領域,通常會將三個顏色分別拆分成 0~255 共 256 個階層,數字越小當中包含該色彩的成分越少,將三個顏色組合成陣列後,就會成為常見的「數位色碼」,例如紅色是 [255,0,0],綠色是 [0,255,0],藍色是 [0,0,255],陣列中三個數值分別代表紅色綠色與藍色的階層數字。
偵測並讀取顏色數值
要使用 MoonCar 的顏色感測器,必須在使用前將感測器初始化並開啟補光燈,完成就能透過重複無限次迴圈,不斷偵測顏色並回傳數值,下方的程式碼使用 red、green 和 blue 變數記錄顏色數值,再透過序列顯示數值。
將需要偵測的顏色卡牌 ( 或其他物體 ) 放在 MoonCar 的顏色感測器下方,就可以序列顯示對應的數值。
偵測並判斷顏色
如果已經能讀取顏色數值,可以透過邏輯的方式,判斷偵測到數值的「範圍」,就能知道目前出現的是什麼顏色,下方的範例會根據偵測到的顏色範圍 ( 該範圍是黃色卡片 ),改變 micro:bit 的 LED 圖案。
參考:邏輯積木。
使用顏色記錄積木,記錄並判斷顏色
除了自行記錄顏色並判斷色彩範圍,也可以使用 MoonCar 內建的「顏色記錄積木」記錄顏色範圍,使用的方法如下:
- 使用「顏色感測器讀取顏色數值」積木偵測顏色。
- 使用「顏色感測器記錄數值」積木,使用一個特定的「名稱」,記錄偵測到的顏色 ( 名稱只是一個代號,例如「紅色」名稱的內容數值可以是真正的紅色,也可以是藍色或其他顏色 )
下方的範例,按下 micro:bit 的 A 按鈕時,會記錄當下的顏色,並賦予一個名稱「紅色」,接著在重複無限次迴圈裡如果偵測到顏色符合「紅色」,就會讓 LED 顯示愛心的圖案。
記錄並判斷多組顏色
透過變數增加數值的方式,當按下按鈕時將變數不斷增加 1,就能記錄多組顏色,並根據不同顏色,產生不同的動作,例如下方的範例,每次按下 A 按鈕會記錄一組顏色數值,總共記錄紅色、綠色和藍色三組,接著透過無線重複次的邏輯判斷,當偵測到紅色就顯示 R,偵測到綠色就顯示 G,偵測到藍色就顯示 B。
範例解答
- 範例解答:MoonCar 偵測並辨識顏色
- 範例解答:MoonCar 偵測並辨識多組顏色
延伸練習
如果已經熟悉了 MoonCar 讀取和辨識顏色的原理,還可以嘗試更多好玩的作法:
- 讓 MoonCar 可以記錄與辨識更多組顏色 ( 額外辨識紫色、黃色、白色...等 )。
- 搭配魔幻 LED,讓 MoonCar 偵測到顏色後,車身也會亮起特定的顏色 ( 解答 )
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~