搜尋

控制積木

micro:bit 的控制積木可以在開發板發生特定事情時發出「事件通知」,並針對這些事件進行控制,例如,按鈕按下可以發送按下事件,引腳被觸發可以發送觸碰事件,甚至可以將迴圈放入背景執行,實現許多進階的特殊效果。

控制積木有幾個分類:背景運行等待事件來源事件結果 ( 數值 )引發事件等待事件當事件發生事件時間戳記事件結果重置毫秒裝置名稱裝置序號

背景運行

「背景運行」積木可以讓要運行的程式,進入背景執行,不受其他程式的影響。

micro:bit - 控制積木 ( 背景運行 )

下圖的例子,左邊基本的寫法,只能讓「先讓愛心動畫閃爍五次,之後才播放聲音五次」,若改成背景運行的做法,則可以讓愛心動畫與聲音「同時出現」,閃爍並播放五次後一起停止。

micro:bit - 控制積木 ( 背景運行 )

等待

「等待」積木可以將程式暫停 ( 等待 ) 指定的時間,時間過後再接續進行下方程式,單位是微秒 ( 1/1000000 秒或 1/1000 毫秒 )。

注意,等待積木只能使用於「實體」micro:bit,無法在模擬器展示。

micro:bit - 控制積木 ( 等待 )

下圖的例子,micro:bit 啟動後,正中間的 LED 燈會以 1000000 微秒 ( 1 秒 ) 的頻率閃爍四次。

micro:bit - 控制積木 ( 等待 )

事件來源

「事件來源」積木表示預設事件來源的名稱,如果不想要使用預設名稱,可以用「變數」或「數字」重新定義

micro:bit - 控制積木 ( 事件來源 )

預設的「來源」有以下幾種 ( MES 開頭為外接裝置,不在此處列出 ):

預設來源 說明
MIRCOBIT_ID_BUTTON_A A 按鈕
MIRCOBIT_ID_BUTTON_B B 按鈕
MIRCOBIT_ID_BUTTON_AB A 按鈕和 B 按鈕
MIRCOBIT_ID_RADIO 廣播
MIRCOBIT_ID_GESTURE 手勢動作
MIRCOBIT_ID_ACCELEROMETER 加速度計
MIRCOBIT_ID_IO_P0~P20 P0~P20 的引腳

事件結果 ( 數值 )

「事件結果 ( 數值 )」積木表示預設事件要回傳的「數值」,如果不想要使用預設數值,可以用「變數」或「數字」重新定義

micro:bit - 控制積木 ( 事件結果 )

預設的「數值」有以下幾種 ( MES 開頭為外接裝置,不在此處列出 ):

預設數值 說明
MIRCOBIT_EVT_ANY 任何事件
MIRCOBIT_BUTTON_EVT_DOWN 按鈕按下
MIRCOBIT_BUTTON_EVT_UP 按鈕放開
MIRCOBIT_BUTTON_EVT_CLICK 按鈕按壓
MICROBIT_RADIO_EVT_DATAGRAM 收到廣播數據
MICROBIT_ACCELEROMETER_EVT_DATA_UPDATE 加速度資料更新
MICROBIT_PIN_EVT_RISE 引腳訊號提升
MICROBIT_PIN_EVT_FALL 引腳訊號降低
MICROBIT_PIN_EVT_PULSE_HI 引腳脈衝高
MICROBIT_PIN_EVT_PULSE_LO 引腳脈衝低

引發事件

「引發事件」積木可以針對指定的「來源」引發事件,並產生一個事件的「數值」,當「偵測到特定事件又滿足指定數值」,就可以觸發特定的程式內容。

micro:bit - 控制積木 ( 引發事件 )

引發事件的「來源」和「數值」可以使用預設值,也可以使用變數或數字,引發事件後,會透過「等待事件」或「當事件發生」來獲取事件,進一步完成後續程式內容。

注意!因為事件來源的數字往往介於 0~9 之間,所以如果是用變數或數字自訂,盡量避開這些數字,避免自訂數值和預設值互相影響造成程式錯誤。

micro:bit - 控制積木 ( 引發事件 )

等待事件

「等待事件」積木可以讓程式暫停,直到接收到特定事件後,才會接續進行程式內容。

micro:bit - 控制積木 ( 等待事件 )

下圖的例子,重複無限次積木裡先放上「等待事件」積木,等待事件積木後方有顯示愛心的積木,micro:bit 啟動後,並不會顯示愛心圖示,直到按下 A 按鈕,發送事件之後,才會顯示愛心圖示。

micro:bit - 控制積木 ( 等待事件 )

當事件發生

「當事件發生」積木可以不斷偵測事件來源,直到偵測到特定事件數值,就會執行內容程式。

micro:bit - 控制積木 ( 當事件發生 )

下圖的例子,第一個「當事件發生」積木是偵測「按下 A 按鈕」事件發生時,顯示愛心圖案,第二個「當事件發生」積木是偵測「放開 A 按鈕」事件發生時,清除螢幕。

micro:bit - 控制積木 ( 當事件發生 )

事件時間戳記

「當事件發生」積木可以顯示事件發生當下的時間,單位是微秒 ( 1/1000000 秒 )。

micro:bit - 控制積木 ( 事件時間戳記 )

事件結果

「事件結果」積木可以顯示偵測到事件的結果數值。

micro:bit - 控制積木 ( 事件結果 )

重置

「重置」積木可以將 micro:bit 重新啟動。

micro:bit - 控制積木 ( 重置 )

毫秒

「毫秒」積木可以顯示 micro:bit 啟動後到目前的時間,單位是毫秒 ( 1/1000 秒 )。

micro:bit - 控制積木 ( 毫秒 )

裝置名稱

「裝置名稱」積木可以顯示 micro:bit 的裝置名稱。

micro:bit - 控制積木 ( 裝置名稱 )

裝置序號

「裝置序號」積木可以顯示 micro:bit 的裝置序號。

micro:bit - 控制積木 ( 裝置序號 )

意見回饋

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

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 繪製數學圖形 觸碰開燈 ( 引腳按下 ) 觸碰開燈 ( 類比訊號 ) 水果鋼琴 ( 類比訊號 )

MoonCar 自走車

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

EZ Start Kit 擴充板

關於 EZ Start Kit+ 程式積木介紹