搜尋

燈光繞圈圈 ( 數字函式 )

這篇文章會介紹如何使用「函式」、「邏輯判斷」、「重複無限次」、「變數」、「點亮」、「加減乘除」等積木,做出計算亮燈數量,並讓燈光在 micro:bit LED 外圍繞圈圈的光線效果。

相關文章參考:重複無限次函式變數點亮邏輯判斷加減乘除

積木程式原理

有別於「燈光繞圈圈 ( 座標 )」是使用座標的方式繞圈,這邊要建立一個「燈數」的函式來進行繞圈,開始前先定義每個燈的數字,最外圈總共有 16 個燈,從左上開始順時針繞一圈,定義 1~16 的數字

micro:bit - 燈光繞圈圈 ( 數字函式 )

因為 micro:bit 是以每個 LED 的「座標」來亮燈,所以如果要使用「燈數」,最後仍然必須轉換為座標的方式,轉換公式如下 ( 燈數以 num 表示 ):

燈數 x y
1~5 num - 1 0
6~8 4 num - 5
9~13 13 - num 4
13~16 0 17-num

micro:bit - 燈光繞圈圈 ( 數字函式 )

了解原理後,開始實作程式積木,首先建立一個函式,函式名稱命名為「燈數」,並在函式裡加入一個 num 的變數

micro:bit - 燈光繞圈圈 ( 數字函式 )

函式建立後,按照之前燈數和 xy 座標的定義,使用邏輯判斷、變數、加減乘除積木,組合成下圖的程式。

micro:bit - 燈光繞圈圈 ( 數字函式 )

最後要進行執行函式點亮 LED 燈的程式:

micro:bit - 燈光繞圈圈 ( 數字函式 )

完成後,重新啟動 micro:bit,就會看見燈光繞著外圈依序亮起。

micro:bit - 燈光繞圈圈 ( 數字函式 )

如果只要讓單一顆燈亮起,不要所有燈都亮,可以透過修改函式著手,將滑鼠移到函式積木上方,按下右鍵,點選「編輯函式」。

micro:bit - 燈光繞圈圈 ( 數字函式 )

點選上方「布林值」按鈕,替函式增加布林值的參數,並將名稱命名為「亮燈」。

教學參考:函式參數

micro:bit - 燈光繞圈圈 ( 數字函式 )

修改函式積木,在最下方新增邏輯判斷,判斷「如果亮燈等於 true,就點亮這個座標的燈」,「如果亮燈等於 false,就熄滅這個座標的燈」。

micro:bit - 燈光繞圈圈 ( 數字函式 )

最後修改重複無限次積木,加入「呼叫燈數」函式,燈數設定為 a - 1,並將亮燈設為 flase,就能將前一顆燈熄滅,接著放入一個邏輯判斷,判斷如果 a 大於 16,就讓 a 從 1 開始

micro:bit - 燈光繞圈圈 ( 數字函式 )

完成後,重新啟動 micro:bit,就會看到一顆燈不斷繞著畫面轉圈。

micro:bit - 燈光繞圈圈 ( 數字函式 )

範例解答

範例解答:燈光繞圈圈 ( 數字函式 )

延伸練習

如果已經熟悉了燈光繞圈圈 ( 數字函式 ) 的原理,還可以嘗試更多好玩的作法:

  • 嘗試讓 LED 從另外一個方向 ( 逆時針 ) 繞圈圈 ( 解答 )。

意見回饋

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

micro:bit 教學

基本介紹

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

程式積木

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

進階積木

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

擴展積木

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

入門範例

跳動的心 簡單煙火動畫 倒數計時放煙火 改變動畫預設時間 剪刀石頭布 ( 按鈕 ) 搖骰子 一直向下的箭頭 指北針 長條圖顯示亮度 光影魔術手 愛心呼吸燈 愛心小夜燈 按鈕秀文字 按鈕計數器 晃動計步器 顯示隨機圖案 空中傳愛 ( 廣播 ) 超時空跑馬燈 ( 廣播 ) 長條圖顯示音量 ( V2 ) 拍手換圖案 ( 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 顯示手繪圖案 繼電器 + 紅外線遙控器