搜尋

偵測和辨識顏色

這篇教學會介紹 micro:bit 自走車 ( MoonCar 登月小車 ) 的顏色感測器,透過顏色感測器偵測顏色,並使用變數和邏輯積木,記錄與辨識顏色。

認識色光三原色

顏色感測器所讀取到的顏色,是由 R、G、B 三個顏色所組成,這三個顏色也就是所謂的「色光三原色」,這三種顏色無法被分解,也不能由其他色光所混合,在數位色彩領域,通常會將三個顏色分別拆分成 0~255 共 256 個階層,數字越小當中包含該色彩的成分越少,將三個顏色組合成陣列後,就會成為常見的「數位色碼」,例如紅色是 [255,0,0],綠色是 [0,255,0],藍色是 [0,0,255],陣列中三個數值分別代表紅色綠色與藍色的階層數字。

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

偵測並讀取顏色數值

要使用 MoonCar 的顏色感測器,必須在使用前將感測器初始化並開啟補光燈,完成就能透過重複無限次迴圈,不斷偵測顏色並回傳數值,下方的程式碼使用 red、green 和 blue 變數記錄顏色數值,再透過序列顯示數值。

參考:變數積木序列寫入

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

將需要偵測的顏色卡牌 ( 或其他物體 ) 放在 MoonCar 的顏色感測器下方,就可以序列顯示對應的數值。

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

偵測並判斷顏色

如果已經能讀取顏色數值,可以透過邏輯的方式,判斷偵測到數值的「範圍」,就能知道目前出現的是什麼顏色,下方的範例會根據偵測到的顏色範圍 ( 該範圍是黃色卡片 ),改變 micro:bit 的 LED 圖案。

參考:邏輯積木

micro:bit 自走車 ( MoonCar 登月小車 ) - 讀取和辨識顏色

micro:bit 自走車 ( MoonCar 登月小車 ) - 讀取和辨識顏色

使用顏色記錄積木,記錄並判斷顏色

除了自行記錄顏色並判斷色彩範圍,也可以使用 MoonCar 內建的「顏色記錄積木」記錄顏色範圍,使用的方法如下:

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

下方的範例,按下 micro:bit 的 A 按鈕時,會記錄當下的顏色,並賦予一個名稱「紅色」,接著在重複無限次迴圈裡如果偵測到顏色符合「紅色」,就會讓 LED 顯示愛心的圖案。

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

記錄並判斷多組顏色

透過變數增加數值的方式,當按下按鈕時將變數不斷增加 1,就能記錄多組顏色,並根據不同顏色,產生不同的動作,例如下方的範例,每次按下 A 按鈕會記錄一組顏色數值,總共記錄紅色、綠色和藍色三組,接著透過無線重複次的邏輯判斷,當偵測到紅色就顯示 R,偵測到綠色就顯示 G,偵測到藍色就顯示 B。

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

micro:bit 自走車 ( MoonCar 登月小車 ) - 偵測和辨識顏色

範例解答

延伸練習

如果已經熟悉了 MoonCar 讀取和辨識顏色的原理,還可以嘗試更多好玩的作法:

  • 讓 MoonCar 可以記錄與辨識更多組顏色 ( 額外辨識紫色、黃色、白色...等 )。
  • 搭配魔幻 LED,讓 MoonCar 偵測到顏色後,車身也會亮起特定的顏色 ( 解答 )

意見回饋

如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

micro:bit 教學

基本介紹

關於 micro:bit micro:bit 硬體規格 micro:bit 開發方式 使用 MakeCode 開始控制 micro:bit

程式積木

基本 輸入 輸入 ( V2 ) 輸入 ( 更多 ) 音效 音效 ( V2 ) 燈光 燈光 ( 更多 ) 廣播 廣播 ( 更多 ) 迴圈 邏輯 變數 數學

進階積木

函式 陣列 文字 圖像 遊戲 引腳 引腳 ( 更多、V2 ) 控制 序列

擴展積木

超音波 ( 偵測距離 ) 溫濕度 伺服馬達 紅外線接收 紅外線發射 MAX7219 點矩陣 LCD1602 顯示器 OLED1306 顯示器 TM1637 七段顯示器

入門範例

跳動的心 簡單煙火動畫 倒數計時放煙火 剪刀石頭布 ( 按鈕 ) 搖骰子 一直向下的箭頭 指北針 長條圖顯示亮度 光影魔術手 愛心呼吸燈 按鈕秀文字 按鈕計數器 晃動計步器 顯示隨機圖案 空中傳愛 ( 廣播 ) 超時空跑馬燈 ( 廣播 ) 長條圖顯示音量 ( V2 ) 拍手換圖案 ( V2 ) 翻轉大黃蜂音效 ( V2 )

燈光範例

燈光繞圈 ( 座標 ) 燈光繞圈 ( 數字函式 ) 循環霹靂燈 依序點燈 ( 座標 ) 依序點燈 ( 數字函式 ) 隨機不重複的燈 按鈕依序開關燈 平衡燈 ( 姿勢 ) 平衡燈 ( 旋轉感測 ) 陣列點燈 ( 顯示圖形 ) 陣列點燈 ( 動畫 ) 移動速度不同的燈

遊戲範例

小瑪莉遊戲機 射擊幽浮 記憶大考驗 翻轉吃豆子 猴子接香蕉 老鼠走迷宮 吃角子老虎機 太鼓達人 貪吃蛇 心電感應 ( 廣播 )

電子元件範例

閃爍的 LED 燈 全彩 LED 光線變化 長條圖顯示土壤濕度 小夜燈 ( 光敏電阻 ) LED 顯示溫濕度 LCD1602 顯示溫濕度 超音波倒車雷達 七段顯示器顯示距離 人體紅外線偵測 旋鈕控制 LED 亮度 電流急急棒 OLED 繪製數學圖形 OLED 顯示手繪圖案 觸碰開燈 ( 引腳按下 ) 觸碰開燈 ( 類比訊號 ) 水果鋼琴 ( 類比訊號 )

MoonCar 自走車

MoonCar 教學導讀 關於 MoonCar 自走車 程式積木介紹 控制移動和轉彎 七彩魔幻 LED 超音波隔空推車 超音波倒車雷達 超音波隔空彈鋼琴 超音波自動避障 偵測和辨識顏色 辨識顏色+演奏音樂 辨識顏色+控制移動 紅外線遙控器控制移動 micro:bit 廣播遙控 趨光性自走車 指北車 ( 永遠轉向北方 ) 循跡自走車 循跡自走車+辨識顏色 聽到聲音就移動 ( V2 )

EZStartKit 擴充板

EZ Start Kit 教學導讀 關於 EZ Start Kit+ 程式積木介紹 LED 基本控制 LED + 按鈕開關 LED + 可變電阻 LED 光感應小夜燈 RGB LED 基本控制 RGB LED + 紅外線遙控器 OLED 顯示文字與數字 OLED 顯示動態數字 OLED 文字跑馬燈 OLED 繪製圖形 OLED 繪製正弦波圖形 OLED 倒數計時器 OLED 顯示手繪圖案 繼電器 + 紅外線遙控器