microbit appearance

a.主機板(正面)

microbit appearance
1. LED陣列 (LED Matrix)
  • 這可能是BBC micro:bit最「型」的特徵。它是一個由25個小型LED燈組成的列陣。5行列,5行欄,5x5合共就是25個。他們放左微電腦板的中央。
  • 有了5x5的LED陣列,你能排出很多整齊的東西。每個小型LED都能獨立地開關。所以你可以用規律畫一些圖形出來,例如心心和笑臉等。
  • 通過LED陣列,使用者甚至可以滾動一些英文字句出來,例如「Hello World!」。
microbit appearance
2. 環 (Rings)/大引腳 (Pins)
  • 這5個印有標籤的大圈是用來連接不同種類的外置設備,通常會配合鱷魚夾一起使用。
  • 頭三個環印有「0,1,2」三個數字。他們的用途十分相似,都是用作於輸入或輸出。你可以三個同時使用。
  • 為什麼不把他們標籤為「1,2,3」?這個問題十分好。在電腦中,數位通常是由0開始的。
  • 最左邊的兩個環和右邊的「0,1,2」環是有些不同的。他們分別是被標籤為「3V」和「GND」,是和電源有關的。
  • 「3V」端口可以將3V電源輸出或輸入;當使用「3V」端口時,「GND」端口也要同時使用。「GND」端口是為了完成電腦而接地(接地是電路內部的一個電位參考點)。
  • 注意:這兩個引腳永遠不能連接在一起!
microbit appearance

microbit appearance

b.主機板(背面)

microbit appearance
1. LED狀態燈 (LED Status Light)
  • 這個小型的黃色LED燈很多時候都會被忽略,但其實它是在這裡。燈會亮起或閃爍去讓你知道它在運行中。
  • 請注意:當電源是來自外置的電池槽時,狀態燈是不會亮起的,這屬於正常情況。
microbit appearance
2. 重置按鈕 (Reset Button)
  • 有時候你會想一切可以重新開始,這就是這個按鈕能夠做的事。你不需要寫任何程式去使用它,你只要按下去它便用把所有東西還原至最初的時候。
  • 請注意,不要不小心地按到,這就是為什麼這個按鈕會放在按鈕A和B的另一面。
microbit appearance
3. 藍牙天線 (Bluetooth Antenna)
  • 只是讓你知道它是在那裡,這條天線是用於通過藍牙和其他設備溝通。在適當的光源下,你能夠看見一些正正方方而又彎彎曲曲的蛇狀物。
  • 實施運作藍牙溝通的硬件其實是微處理器的一部分。這個只是天線的部分,所以不要用錫紙把它包住或在上面鑽洞。
microbit appearance
4. 小引腳 (Small Pins)
  • 看看這排黃色的牙齒,沒錯,Micro:bit最底的邊緣有很多連接位。
  • 他們能夠幫你做很多瘋狂的事。你甚至能夠用一個特別的連接器(小引腳)令他們用起來更加容易。
  • Micro:bit的大腦能夠做很多東西,小引腳確保其他硬體有方法在Micro:bit的大腦內進行存取。
microbit appearance


a. 如何使用 Micro:bit

    1.瀏覽 http://microbit.org/
    microbit appearance

    2.按 Let’s Code
    microbit appearance

    3.按下方的 Let’s Code
    microbit appearance

b. 如何使用 Micro:bit (JavaScript Block 和 JavaScript)

或直接在瀏覽器輸入: makecode.microbit.org

c. 如何使用 Micro:bit (MicroPython)

或直接在瀏覽器輸入: python.microbit.org

a. Micro:bit 程式版面介紹

microbit appearance
    A-檔案控制選項 (開新專案等常用項目)
    B-預覽視窗
    C-程式分類區 (放置不同種類的程式)
    D-程式編輯區 (放置和修改已選取之程式)
    E-檔案下載
    F-編輯工具 (還原/重複/放大/縮小)

b. Micro:bit 模擬器版面介紹

microbit appearance

a. Micro:bit 基本硬件

microbit appearancemicrobit appearance

b. 連接 Micro:bit

    1. 利用USB線連接 Micro:bit 及電腦,如下圖
    microbit appearance
    2. 成功連接後會有出現此畫面,是儲存要運行的程式檔案的地方
    microbit appearance

c. 下載編譯代碼至Micro:bit

    1. 製作簡單程式檔案-顯示Hello!
    microbit appearance

    2. 選取 基本(Basic),然後拖拉 顯示文字 “Hello!” (show string“Hello!”)積木 ,放入當開始時(on start) 內
    microbit appearance

    3. 選取 Download,下載編譯碼供 Micro:bit 微電腦板運行
    microbit appearance

    4. 修改檔案名稱,存檔類型為 HEX (.hex),存於Microbit 硬盤中
    microbit appearance

    5. 按 Done即完成,Hello字將會顯示在Micro:bit板上
    microbit appearance
    microbit appearance

拖拉 顯示文字“Hello!” (show string “Hello!”) 積木放入重覆無限次 (forever) 內
microbit appearance


a. 顯示數字 (show number)

  • 於LEDs顯示板顯示數字
  • 每次只顯示一個數字
  • 若要顯示多於一個字,如100,顯示次序由左至右
  • microbit appearance
microbit appearance
試試看-顯示 100
microbit appearance

b. 顯示文字 (show string)

  • 於LEDs顯示板顯示字串
  • 若要顯示多於一個字母,如Hello,顯示次序由左至右
  • microbit appearance
microbit appearance
試試看-顯示 Hello
microbit appearance

c. 顯示指示燈(show LEDs)

  • 利用LED顯示板的指示燈顯示自設圖案
  • microbit appearance
試試看-顯示 心形圖案
microbit appearance

d. 顯示圖示

  • 利用LED顯示板的指示燈顯示預設圖案
  • 其他預設圖案
  • microbit appearance
microbit appearance

試利用顯示指示燈(show leds)並下載hex檔來製作一顆閃爍的心心
microbit appearance microbit appearance microbit appearance
步驟如下:
  1. 製作兩個存儲不同心形的顯示指示燈(show leds)
  2. 把它們放在一起,並放在當開始時(on start) / 重複無限次(forever)之後,看看分別
  3. 把適當的程式下載到microbit硬碟中
  4. 完成製作
參考答案:
microbit appearancemicrobit appearance 指示燈坐標: microbit appearance microbit appearance microbit appearance microbit appearance

當A鍵被按下 (on button A pressed)

  • 隨使用者按下不同的按鈕,作出不同的反應
  • 將要執行的指令放在當A鍵被按下 (on button A pressed)內
  • microbit appearance
  • 情況如玩電視遊戲機
  • 提供3個情況選擇
    • A鍵
    • B鍵
    • A+B (同時按下 A 和 B 鍵)
    • microbit appearance
試利用當A鍵被按下(on button A pressed) 顯示指示燈(show leds) 並下載hex檔來自製一個隨按鈕而變表情的百變臉
microbit appearance microbit appearance microbit appearance
例子:
microbit appearance


a. 數字 (number)

  • 與一般程式(e.g.C/C++/Java)中的整數Int(Integer)相似
  • 用作儲存數字,包括正、負整數
  • 儲存長度達 32-bit integer
  • 數值有效範圍:-2147483647 到 2147483647
試試看-測試 數字的有效範圍
1. 顯示數字 (show number) -2147483647
microbit appearance

2. 顯示數字 (show number) -2147483650
microbit appearance

b. 字串 (string)

  • 由一個或多個字符組成的文本/文字
  • 有效範圍:ASCII codes 32 至 126
  • 包括大、細楷英文字母、數字及標點符號
試試看-利用不同符號組成字串
利用顯示文字 (show string) 顯示字串 “/(>.<)\”
microbit appearance

c. 布爾值 (boolean)

  • 只有兩個特定值:真(true)、假(false)
  • 作邏輯判斷之用
邏輯判斷應用
  • 邏輯運算子--且(and)
  • 邏輯運算子--或(or)
  • 邏輯運算子--不成立
  • 數值比較
試試看
參考答案

d. 圖示 (icon)

  • 微電腦板上的LED顯示板可顯示的圖案
  • 於 顯示圖示(show icon) 預設40種圖案可選
試試看
條件:
  1. 利用顯示圖示(show icon)顯示開心圖案
  2. 維持圖案在LED顯示版上

答案:


什麼是變數 (Variables)?

  • 代表一個指向電腦記憶體位置的預留空間
  • 於預留空間內,記存可變動的數據或資料
  • 每一個變數都必須有一個變數名稱,例如: name
  • 名稱以有意義字詞為最合適
  • 每個變數只可以被設為一種資料類型(data type)
  • 數據類型和變數名稱會因應不同的程式編寫語言而有不同的規限
  • micro:bit 變數類型包括 數值(number)、字串(string)、布爾值(boolean)、圖像(image)

為什麼使用變數 (Variables)?

  • 儲存可變數值,供程式執行之用
  • 有助簡化程式
  • 減少重覆修改時帶來的編譯錯誤

如何定義和使用變數 (Variables)?

  • 由於記憶體的容量有限,所以每個資料所佔用的空間必須定義清楚
  • micro:bit支援數值(number)、字串 (string)、布爾值(boolean)、圖像 (image)等數據類型


  1. 按變數 Variables
  2. 選建立一個變數 (Make a Variable) 來新增變數
  3. 命名變數(例如:temp)

例子1-設定 temp 數值為 4,並顯示於顯示板上

  1. 拉出 變數temp設為0 積木至程式編寫區
  2. 按一下0,輸入4,即可更變temp數值為4
  3. 拉出 顯示數字(show number) 及變數 temp 積木,並放在一齊,如圖
  4. 將積木如圖放置,即可顯示temp中的數值

例子2-設定temp為一個字串 Hi! I’m (你的名字),並顯示字串

  1. 拉出 變數temp設為0 積木至程式編寫區
  2. 拉出 文字 積木放入temp的值:
  3. 在文字積木中輸入Hi! I’m (你的名字),使其成為字串變數,例如:
  4. 拉出 顯示文字(show string) 及變數 temp 積木,並放在一齊
  5. 將積木放置如,即可顯示temp中的文字
  6. 若想改變所顯示的文字,只需改變 內容即可

例子3-設定temp為布爾值(boolean) [true / false]

例子4-設定temp為圖像(image)

試試看
  1. 新增及設定變數 name 為 “Peter”,並顯示於模擬器中一次
  2. 新增及設定變數 counter 為 1 ,顯示數值counter
  3. 更新變數 counter,把counter 的值設為 counter + 100,並再次顯示數值
答案
溫馨提示
  1. 顯示的數據類型必須與變數內儲的數據類型相符
  2. 只有數字類型變數才可以作 + / - / × / ÷ 運算
  1. 增設一變數為counter作計數器,計算步行數目
  2. 初始化counter數目為0,並顯示於LED顯示板上,如右:
  3. 製作計步情況
    • 利用 當搖動(on shake)

    • (當感應到用家移動一步就把counter加一,以計算1步)
  4. 製作重設情況
    • 利用 當A鍵被按下(on button A pressed)

    • (當按下A鍵時,計步器被重設為0,重新計算步履)
試修改活動一,並利用 當A鍵被按下(on button A pressed) 顯示數字(show number) ,製作一個按下B鍵會重設的簡單計算器。(如書展入場時的人數計算)


什麼是陣列 (arrays)?

  • 像一個表格,方便儲取大量相同數據類型的資料
  • 每一個陣列都必須有一個陣列名稱 (例如:subjects),但不必為每一項資料都定義一個名稱
  • 名稱以有意義字詞為最合適
  • micro:bit 陣列資料類型包括數值 (number)、字串 (string)、布爾 (boolean)、圖像 (image)

如何建立陣列 (arrays)?

以表格subjects作例子,建立字串(string)陣列(arrays)
  1. 建立一個變數(variables),名為 subjects
  2. 於選單點選陣列(arrays)
  3. 拉出 變數text list設為(set text list to)
  4. 變數 text list 設為(set text list to)旁的
  5. 重複按兩次直至可儲存5項資料
  6. 更改文字,輸入科目(Chinese, English, Maths, PE, ICT)
  7. 將 text list 改為變數 subjects,使變數 subjects 設為科目的陣列(arrays),如圖

如何得知陣列 (Arrays) 項目數量?

  • 利用 (陣列名稱)的長度 (length of array)

如何顯示陣列(Arrays)資料?

  • 方法一:
    能發現有什麼問題嗎?
    錯誤,會發現模擬器出現亂碼的現象,達不到我們想要的效果
    如何改善?
  • 方法二:利用 (陣列名稱)中取得索引 (陣列中的項目數)的值 (array name)get value at (item number)

試試看

  1. 利用陣列(arrays)儲存以下資料:
  2. 顯示於陣列(arrays)中排行 第4項 資料內容

  3. 答案:


1. 如果-那麼 (if-then) 句式

    例子1:如果分數大於90,然後可獲 A 級成績。

    於micro:bit顯示 A 級成績
    1. 增設變數score存放分數,並定義為99分
    2. 邏輯(Logic) 選單,拉出邏輯運算積木 和變數score,使其成為比較式
    3. 邏輯(Logic) 選單,拉出 如果-那麼(if-then) 積木,並和比較式組合成
    4. 拉出 顯示文字(show string) “A” 的積木,並放入 那麼(then)
    5. 最後依次序串連一起
    試試看 – 更改變數score的值:
    1. 更改變數score的值為50分
    2. 更改變數score的值為100分

2. 如果-然後-否則 (if-then-else) 句式

    例子2:如果分數大於90,然後可獲 A 級成績,否則獲得 B 級成績。

    於micro:bit顯示 A / B 級成績
    1. 保留 變數score設為99 (set score to 99) 積木。
    2. 模仿例子1,但將 如果-那麼 (if-then) 換成 如果-那麼-否則(if-then-else) 句式
    3. 插入 顯示文字(show string) “B” 否則(else) 之後,使程式變為
    試試看 – 更改變數score的值:
    1. 更改變數score的值為100分
    2. 更改變數score的值為50分

3. 進階應用

    從以上例子,我們得知:

    試想想,符合現實情況嗎?如何更切合現實情況?

    若分成以下等級,程式該是怎樣?
    答案:按左下角的補充一個新的條件,並更改為下面這樣
  • 試試看 – 更改變數score的值:
    1. 更改變數score的值為92分
    2. 更改變數score的值為75分
    3. 更改變數score的值為74分
    4. 更改變數score的值為50分
  • 試試看 – 試更改程式以符合下列情況:
  • 答案:


活動3.6.1 - 擲公字 (Coin Flipper)

    試利用 當A鍵被按下(on button A pressed) 如果-那麼-否則(if-then-else) 隨機生成布林值(pick random true or false) 並下載hex檔來製作擲公字



    1. 拉出 當A鍵被按下(on button A pressed) 如果-那麼-否則(if-then-else) 隨機生成布林值(pick random true or false)
    2. 把它們放在一起,如圖:
    3. 然後利用 顯示指示燈(show leds)顯示圖示(show icon) 製作兩個圖案模擬擲出公、字的情況,並放入 那麼(then)否則(else) 之後

    進階:利用 顯示圖示(show icon) 提供的圖案顯示擲硬幣的動作以增加視覺效果

活動3.6.2 - 真心話大冒險 (Truth or Dare)

    模擬真心話大冒險遊戲,選出需要冒險的人
    1. 設一變數為random
    2. 拉出 當A鍵被按下(on button A pressed)
    3. 更改程式為

    進階:利用 顯示指示燈(show leds) 製作箭咀,以作隨機選人之用,增添玩家代入感

活動3.6.3 - 石頭剪刀布 (Rock Paper Scissors)

    模仿真心話大冒險(Truth or Dare) ,以 當搖動(on shake) 取代 當A鍵被按下(on button A pressed) ,並以random作變數設立3個情況分別代表石頭、剪刀和布

活動3.6.4 - 擲骰子 (Roll the dice)

    利用 當搖動(on shake) 和運用變數Roll 等積木,設立6個情況,模擬和製作擲骰子遊戲



1. 計數-從0到-執行 (for loop)

    例子:顯示5次 Hello!
    試試看– 製作模擬計時器
    模擬顯示10秒計時

2. 重覆-執行 (repeat-do loop)

    例子:顯示5次 Hello!
    試試看– 製作模擬計時器
    模擬顯示10秒計時

3. 當-執行 (while loop)

    例子:顯示5次 Hello!
    試試看– 製作模擬計時器
    模擬顯示10秒計時
  1. 設定一變數timer,並預設倒數的時間為10,代表10秒
  2. 當B鍵被按下(on button A pressed) 開始倒數,i.e. 設 timer=timer-1
    當A鍵被按下(on button A pressed) 則重設計時器,i.e. 設 timer=10
  3. 利用 當-執行(while loop) 和其他積木工具製作程式以符合上述要求


什麼是函式 (Functions)?

  • 是副程序
  • 用作集中解決一個問題中的子問題
  • 每個次程式均是獨立的
  • 目的
    1. 可被循環使用
    2. 縮短主程式,提高程式可讀性
    3. 程式較容易維護

如何建立函式 (Functions)?


情境:建立一個程式供顯示科目名稱的副程式
  1. 按函式(Functions),選取建立一個函式(make a Function)
  2. 為函式定義一個有意義的名字,如printSubjectName
  3. 成功增設函式後,程式編寫區將出現
  4. 利用陣列subjects及計數-從0到-執行(for loop)設計顯示每個科目名稱的程式
  5. 將4的所有程式積木放入函式(Function) printSubjectName,則完成副程式設計,如圖
  6. 使用選單中的呼叫函式(call function) printSubjectName
  7. 放入主程式中當開始時(on start) / 重複無限次(forever)









光感應器


    根據光線探測的強度,會得到一個由 0 – 255 的數值。
    0代表著沒有光,255代表著最光。

試試看:探測四周的光線強度

  1. 點選「變數」,把「變數 item 設為 0」的積木拉出來。
  2. 把「變數 item 設為 0」的積木放入「重複無限次」的積木中。
  3. 重新命名變數「item」。
  4. 新命名變數「item」為「light」。
  5. 點選「輸入」,找到「光感應值」的積木。
  6. 把「光感應值」的積木放入「變數 light 設為 0」積木的「0」的位置。
  7. 點選「基本」,找到「顯示 數字 0」的積木。
  8. 把「顯示 數字 0」的積木放在「重複無限次」積木的底部。
  9. 點選「變數」,找到變數「light」的積木。
  10. 把變數「light」積木放入「顯示 數字 0」積木的「0」的位置。

試觀察:

  • 在光源下,LED陣列顯示的數值是多少?
  • 用手擋住光線後, LED陣列顯示的數值又是多少?


加速度計


加速度計有三個不同方向的數值,數值範圍為-1024到1024 ,各方向的數值會因應不同行動而改變:
X:向左和向右傾斜
Y:向前和向後傾斜
Z:向上和向下移動

以X軸數值為例子,Micro:bit 面向最左邊面會得到 -1024 這個數值;
面向正中就會得到 0 這個數值;
面向最右邊就會得到 1024 這個數值。


1. 點選「變數」,把「變數 item 設為 0」的積木拉出來。
2. 把變數「item」改名成「X」,並把「變數 item 設為 0」積木的「0」改成「2」。
3. 重複以上步驟,創建一個變數「Y」並把它設成數值「2」。
4. 點選「燈光」,把「點亮 x 0 y 0」的積木拉出來,放在「變數 Y 設為 2」的積下面 。
5. 點選「變數」,把變數「X」的積木拉出來,放入「點亮 x 0 y 0」積木的第一個「0」的位置。
6. 重覆以上步驟,把變數 「Y」的積木放入「點亮 x X y 0」積木的「0」的位置。
7. 點選「變數」,使用兩個「變數 item 設為 0」的積木創建兩個新的變數,並把它們分別地改名成「x_acc」和「y_acc」,之後把它們放入「重複無限次」內。
8. 點選「輸入」,把「加速度感應值(mg) x」的積木拉出來,放在「變數 x_acc 設為 0」積木的「0」的位置。
9. 重複以上步驟,把「加速度感應值(mg) x」的積木放在「變數 y_acc 設為 0」積木的「0」的位置,並把「加速度感應值(mg) x」積木的「x」改成「y」。
10. 點選「邏輯」,把「如果true,那麼」的積木拉出來,放在「變數 y_acc 設為 加速度感應值(mg) y」積木的下面。
11. 點選「邏輯」,把「0 < 0」的積木拉出來,放入「如果true,那麼」積木的「true」的位置。
12. 點選「變數」,把變數「x_acc」的積木拉出來,放入「0 < 0」積木的第一個「0」的位置,並把「x_acc < 0」積木中間的「<」改成「>」。
13. 把「x_acc > 0」積木的數值「0」改成「40」。
14. 點選「邏輯」,把「如果true,那麼」的積木拉出來放入把「如果 x_acc > 40,那麼」積木的「那麼」裡面。
15. 分別拉出「0 < 0」和變數「X」積木,把變數「X」積木放入「0 < 0」積木的第一個「0」內,並把第二個「0」改成「4」。(因為LED陣列的大小只有5x5。)
16. 點選「燈光」,把「不點亮 x 0 y 0」的積木拉出來,放入「如果 x < 4,那麼」積木的「那麼」的後面。把變數「X」積木和變數「Y」積木分別地放入第一個「0」的位置和第二個「0」的位置。
17. 把「變數 item 設為 0」積木放在「不點亮 x X y Y」積木的下面,並把當中的「item」改成「X」。
18. 點選「數學」,把「0 + 0」的積木拉出來。把「0 + 0」的積木放入「變數 X 設為 0」積木 的「0」的位置。
19. 點選「變數」,變數 「X」的積木拉出來。把變數 「X」的積木放入「0 + 0」積木第一個「0」的位置,並把第二個「0」改成「1」
20. 點選「燈光」,把「點亮 x 0 y 0」的積木拉出來。
21. 點選「變數」,把變數「X」積木和變數「Y」積木分別地放入「點亮 x 0 y 0」積木的第一個「0」的位置和第二個「0」的位置。
22. 連續兩次點擊左下角第一個「+」來增加兩種判斷的情況,並把最後一種情況刪除。
23. 複製「x_acc > 40」邏輯積木,放入「否則如果」的後面。
24. 把「x_acc > 40」積木當中的「>」改成「<」和「40」改成「-40」。
25. 複製「如果 x < 4,那麼…」的積木,放到「否則如果 x_acc < -40,那麼」的「那麼」內。
26. 把複製品「X < 4」積木當中的「<」改成「>」和「4」改成「0」;把複製品「變數 X 改變 X + 1」積木當中的「+」改成「-」。
27. 複制「如果 x_acc > 40,那麼…」積木,放在最尾。
28. 把複製品「x_acc > 40」積木中的「x_acc」改成「y_acc」;把複製品「變數 X 設為 X + 1」積木改成「變數 Y 設為 Y + 1」。
29. 把複製品「x_acc < -40」積木中的「x_acc」改成「y_acc」;把複製品「變數 X 設為 X - 1」積木改成「變數 Y 設為 Y - 1」。

活動掌上明珠 最後成品



試觀察:

    當把Micro:bit往不同方向傾斜的時候,Micro:bit LED顯示器有什麼反應?


  • 廣播系統容許Micro:bit與另一個Micro:bit無線地連接和溝通。
  • 使用者可以利用廣播系統和Micro:bit傳送訊息給其他的Micro:bit。
  • 通過廣播系統,用戶可以製作多人遊戲、遙距控制系統等程式。
  • 特別需要留意的是,廣播系統和藍牙是不相容的,使用者不能同時使用廣播系統和藍牙
  • 所有互相溝通的Micro:bit需要設定在同一個群組內。
  • 群組的有效數字為 1 – 255 。

第一個Micro:bit的程式 (Micro:bit A)

  1. 點選「廣播」,找到「廣播群組設為 1」的積木,放入「在開始時」的積木。
  2. 點選「輸入」,找到「當 A 鍵被按下」的積木,把「當 A 鍵被按下」的積木拉出來。
  3. 點選「廣播」,找到「廣播發送數字 0」的積木,拉入「當 A 鍵被按下」的積木內。
  4. 點選「輸入」找到「當 A 鍵被按下」的積木,拉出來,改成「當 B 鍵被按下」。
  5. 點選「廣播」,找到「廣播發送數字 0」的積木,把它拉出來放入「當 B 鍵被按下」 的積木中,並把「廣播發送數字 0」積木當中的「0」改成「1」。

第二個Micro:bit的程式 (Micro:bit B)

  1. 點選「廣播」,找到「廣播群組設為 1」的積木,放入「在開始時」的積木。
  2. 點選「廣播」,找到「當收到廣播 receivedNumber」的積木,把「當收到廣播 receivedNumber」的積木拉出來。
  3. 點選「邏輯」,找到「如果 true,那麼」的積木,放入「當收到廣播 receivedNumber」的積木內。
  4. 點選「邏輯」,找到「 0 = 0 」的積木,放入「如果 true,那麼」積木的「如果」後方。
  5. 點選「變數」,找到「receivedNumber」的積木,放入「 0 = 0 」積木的第一個「0」內。
  6. 點選「基本」,找到「顯示文字 “Hello”」的積木,放入「如果 receivedNumer = 0,那麼」積木的「那麼」後方,並把當中的「Hello」改成「A」。
  7. 按滑鼠右鍵點選「如果 …,那麼…」積木群,點選「複製」,放到「當收到廣播 receivedNumber」的積木群內的最底部。
  8. 把複製品「receivedNumber = 0」積木當中的「0」改成「1」, 「顯示文字 “A” 」積木當中的「A」改成「B」。

試觀察:

    當按下Micro:bit A的「A」或「B」鍵, Micro:bit B的LED陣列會有什麼反應?


  • 出拳
    • 按A代表出剪刀
    • 按B代表出石頭
    • 按A+B代表出布
  • 系統能自動判斷勝負
    • 贏方會在LED陣列上顯示「W」—— win
    • 敗方會在LED陣列上顯示「L」—— lose
    • 平手會在LED陣列上顯示「=」
  • 系統會記分,當「搖動」時會顯示分數。

  1. 點選「廣播」,找到「廣播群組設為 1」的積木,放入「在開始時」的積木。
  2. 點選「變數」,把「變數 item 設為 0」的積木拉出來,放入「在開始時」的下方。
  3. 重新命名變數「item」為「isReady」。
    //變數「isReady」用來測試是否在出拳的階段。
  4. 把「變數 isReady 設為 0」當中的「0」改成「1」。
    「1」代表正在出拳階段,「0」則是代表不能再出拳。
  5. 重複以上步驟,創造變數「myChoice」、「yourChoice」、「score」並把它們設為「0」。
  6. 點選「基本」,把「顯示 圖示 愛心」的積木拉出來,放到「在開始時」積木內的最下方。。
  7. 把「顯示 圖示 愛心」積木當中的「愛心」改成「微笑」。
    //看到「微笑」時,即是代表在出拳的階段。
  8. 點選「輸入」,把「當 A 鍵被按下」的積木拉出來。
  9. 點選「邏輯」,把「如果 true,那麼」的積木拉出來,放入「當 A 鍵被按下」的積木內。
  10. 點選「邏輯」,把「0 = 0」的積木拉出來,並放在「如果 true,那麼」積木的「如果」後面。
  11. 點選「變數」,把變數「isReady」的積木拉出來,放入「如果 0 = 0」的第一個「0」當中,並把第二個「0」改成「1」。
  12. 點選變數,把「變數 item 設為 0」放到「那麼」的後面,並改成「變數myChoice 設為 1」 。
  13. 點選「廣播」,把「廣播發送數字 0」的積木拉出來,放到「變數myChoice 設為 1」積木的下方。
  14. 點選「變數」,把變數「myChoice」的積木拉入「廣播發送數字 0 」積木的「0」的位置。
  15. 點選「基本」,把「顯示 圖示 愛心」積木拉出,放在「廣播發送數字 myChoice 」的下面,並把當中的「愛心」改成「剪刀」。
  16. 點選變數,把「變數 item 設為 0」放到「那麼」的後面,並改成「變數 isReady 設為 0」 。
  17. 複製「當 A 鍵被按下」積木群,把複製品「當 A 鍵被按下」積木,當中的「A」改成「B」。
  18. 把複製品「變數 myChoice 設為 1」積木當中的「1」改成「2」,把複製品「顯示 圖示 剪刀 」積木當中的「剪刀」改成「小方形」(代表石頭)
  19. 複製「當 B 鍵被按下」積木群。同樣地,把「當B鍵改按下」積木的「B」改成「A + B」, 「變數 myChoice 設為 2」積木當中的「2」改成「3」, 「顯示 圖示 小方形」積木當中的「小方形」改成「方形」(代表布)

  20. 現時的進度應是如此。
  21. 點選「廣播」,把「當收到廣播 receivedNumber」的積木拉出來。
  22. 點選「邏輯」,把「如果 true,那麼」積木放入「當收到廣播 receivedNumber」的積木內。
  23. 點選「邏輯」,把「0 = 0」積木放入「如果 true,那麼」積木內的「如果」後面。點選「變數」,把變數「yourChocie」積木放入「0 = 0」積木的第一個「0」內。
  24. 把「變數 yourChoice 設為 receivedNumber」放在「那麼」的後面。
  25. 點選「邏輯」,把「如果 true,那麼」積木放入「重複無限次」積木內。
    點選「邏輯」,把「 且 」積木放入「如果 true,那麼」積木的「true」的位置。
    點選「邏輯」,拉出兩個「0 = 0」積木,並把它們分別地放入「 且 」積木的空白的位置。
  26. 把第一個「0 = 0」的積木改成「myChoice ≠ 0」;把第二舍「0 = 0」的積木改成「 yourChoice ≠ 0」。
    // 測試是否雙方都已出拳。
  27. 點選「邏輯」,拉出另一個「如果 true,那麼」積木,放到前一個「那麼」的後面。
    把「myChoice = yourChoice」積木放到「如果 true」積木的「true」的位置。
    把「顯示 文字 “=” 」的積木放到「那麼」的後面。
  28. 連續兩次按「如果 myChoice = yourChoice」積木 左下角 的「+」,會增加兩種判斷的情況
  29. 點選「邏輯」,把「 且 」的積木放到「否則如果」的後面。
    點選「邏輯」,把另一個「 且 」的積木放到第一個「 且 」積木的第一個空框位置。
  30. 點選「邏輯」,把「0 = 0」的積木放入最左邊「 且 」的左空框中。
    點選「邏輯」,把「0 = 0」的積木放入最左邊「 且 」的右空框中。
  31. 把兩個「0 = 0」的積木分別改為「myChoice = 2」以及「yourChoice = 1」。
  32. 把最右手邊的「且」改成「或」。
    點選「邏輯」,把「 或 」的積木放入最左邊的空框中。
  33. 複製積木群「myChoice = 2 且 yourChoice = 1」,放入「 或 」積木中的左空框中。
  34. 把複製品「myChoice = 2 且 yourChoice = 1」 」積木改成「myChoice = 3 且 yourChoice = 2」。
  35. 複製積木群「myChoice = 3 且 yourChoice = 2」,放入最右邊的空框中。
  36. 把「顯示 文字 “W” 」積木放在「那麼」的後面。
    點選「變數」,把「變數 item 改變 1」積木拉出來,放到「顯示 文字 “W” 」積木的下面,並把當中的「item」改成「score」。
  37. 把「顯示 文字 “L” 」積木放在「否則」的後面。
    點選「基本」,把「暫停 (ms) 100」積木拉出來,放在「否則」的下面,並把當中的「100」改成「2000」。
  38. 把「顯示 圖示 微笑 」積木放在「暫停 (ms) 2000」積木的下面。
    //代表進入另一個出拳階段
    把變數「myChoice」和「yourChoice」設為「0」,變數「isReady」設為「1」。

    //代表進入另一個出拳階段,重設上一回合的數值
  39. 點選「輸入」,把「當 搖動」的積木拉出來。
    把「顯示 數值 score 」積木放入「當 搖動」的積木內。

完成品。把程式分別地寫入兩個Micro:bit即可。


//注意,每組(每組有兩個Micro:bit )的廣播群組必須不同。


溫度感應器



試試看:探測四周的溫度

  1. 點選「變數」,設置一個新的變數「temperature」。
  2. 把「變數temperature設為 0 」的積木拉出來,放入「重複無限次」積木內。
  3. 點選「輸入」,把「溫度感應值」的積木拉出來,放在把「變數 temperature 設為 0」積木的「0」的位置上取代了它。
  4. 點選「基本」,把「顯示 數字 0」的積木拉出來,放在「變數 temperature 設為溫度感應值」的下方。
  5. 點選「輸入」,把「溫度感應值」的積木拉出來,放在把「顯示 數字 0」積木的「0」的位置上取代了它。
  6. 點選「基本」,把「暫停 (ms) 100」的積木拉出來,放在「顯示 數字 溫度感應值」的下方。
  7. 把「暫停 (ms) 100 」積木內的數值「100」改成「2000」。

試觀察:

    當向著Micro:bit吹一口暖氣, Micro:bit LED陣列顯示的數值有什麼不同?


磁力計



會得到一個由 0 – 360 的數值,代表著不同的方向。


試試看:校準磁力計

  1. 點選「輸入」,找到「當 A 鍵被按下」的積木,把「當 A 鍵被按下」的積木拉出來。
  2. 把「當 A 鍵被按下」積木的「A」改成「A+B」。
  3. 點選「輸入」,在「輸入」下面的「更多」,找到「電子羅盤校準」的積木,放入「當 A+B 鍵被按下」的積木內。

試觀察:

    當按下Micro:bit的「A+B」鍵,會有什麼反應?

完成校準:

    根據micro:bit 的指示,畫好一個圓形即可。
    每次寫入程式後,假如該程式需要用到磁力計,micro:bit 都會要求用家重新完成校準一次。
  1. 點選「變數」,設置一個新的變數degree,然後把「設置degree為」積木拉入「forever」積木内。
  2. 點選「輸入」,找到「方位感測值 」積木, 放在「設置degree為」積木後取代「0」 。
  3. 點選「邏輯」,把「如果true那麼 否則」的積木拉出來,放在「設置degree為」積木後 。
  4. 點選「邏輯」,把「…或…」積木拉出來,取代「true」。
  5. 點選「邏輯」,把「0 < 0」積木拉出來,放在「…或…」積木前的方框。
  6. 點選「變量」,把變量「degree」積木拉出來,取代「0 < 0」積木的第一個 0, 然後把後面的0改為45 。
  7. 把「0 < 0」積木放在「…或…」積木後的方框,重複以上步驟將其改為「degree > 315」 。
  8. 點選「基本」,把「顯示文字」積木拉出來,放在「 那麼 」積木後, 並把「 hello 」改為「 N 」。
  9. 連續兩次按左下角的「 + 」 ,可增加多兩種判斷情況。
  10. 類似上面的操作,我們把「0 < 0」積木拉出放在「否則如果」積木後,並將其改為「 degree < 135 」。
  11. 點選「基本」,把「顯示文字」積木拉出來,放在「 那麼 」積木後, 並把「 hello 」改為「 E 」。
  12. 類似上面的操作,我們把「0 < 0」積木拉出放在「否則如果」積木後,並將其改為「 degree < 225 」。
  13. 點選「基本」,把「顯示文字」積木拉出來,放在「 那麼 」積木後, 並把「 hello 」改為「 S 」。
  14. 點選「基本」,把「顯示文字」積木拉出來,放在「 否則 」後, 並把「 hello 」改為「 W 」。

試觀察:

    當拿著Micro:bit往不同方向轉動的時候,Micro:bit LED陣列顯示的英文字有什麼不同?


LED燈泡

LED燈泡是一個數碼或模擬的模組,是一個很普通的LED燈泡,我們所選購的每個LED燈泡有它獨特的顏色,我們用程式碼只可以改變它的亮度,並不能改變它的顏色。

數碼輸出或模擬輸出都可以用來控制它,用哪一種則是視乎使用者的需要。
假如我們只是簡單地想控制燈泡的開關,我們用數碼輸出方塊便可:

但假如我們是想在過程中控制LED燈泡光線的強弱,我們就必須要用模擬輸出方塊來控制:


試試看:點亮你的LED燈

  • 硬件方面:
    1. 先把Micro:bit插入擴展板。
    2. 再用杜邦線把LED燈泡連接至擴展板的P0位置。

  • 軟件方面:
    1. 點選「輸入」,把「當 A 鍵被按下」的積木拉出來。
    2. 點選「腳位」,把「類比信號寫入 腳位P0 成1023」的積木拉出來,放入「當 A 鍵被按下」的積木。
    3. 把整個「當 A 鍵被按下」積木複製兩個出來。
    4. 把其中一個「當 A 鍵被按下」積木複製品當中的「A」改成「B」,同時把入面的「類比信號寫入 腳位P0 成1023」 當中的「1023」改成「250」。
    5. 把剩下的「當 A 鍵被按下」積木複製品當中的「A」改成「A+B」,同時把入面的「類比信號寫入 腳位P0 成1023」 當中的「1023」改成「0」。

試觀察:

    當A鍵被按下時,LED燈有什麼反應?
    當B鍵被按下時,LED燈又有什麼反應?
    當A+B鍵被按下時,LED燈有什麼反應?


可連續旋轉的伺服馬達


可連續旋轉的伺服馬達可以360度地隨意旋轉,用家 只能夠控制轉動的方向(順時針或逆時針)以及轉動的速度。控制的方塊如下:

可連續旋轉的伺服馬達亦有不同的配件,包括圓盤、一字盤、十字盤、米字盤、螺絲等等。

不同的配件使可連續旋轉的伺服馬達發揮不同的功能,例如固定翼、直升機、小型機器人、機械手等模型。

試試看:啟用可連續旋轉的伺服馬達

  • 硬件方面:
    1. 先把Micro:bit插入擴展板。
    2. 再把可連續旋轉的伺服馬達插入擴展板的P0位置。

  • 軟件方面:
    1. 點選「輸入」,把「當 A 鍵被按下」的積木拉出來。
    2. 點選「腳位」,把「伺服寫入 腳位 P0 至 180」的積木拉出來,放入「當A鍵被按下」的指令。
    3. 滑鼠左鍵點選「當A鍵被按下」積木,點選「複製」把整個積木複製兩個出來。
    4. 把其中一個「當A鍵被按下」積木改成「當B鍵被按下」,剩下一個「當A鍵被按下」積木改成「當A+B鍵被按下」 。
    5. 把「當A鍵被按下」積木內的數值改成「0」和把「當A+B鍵被按下」積木內的數值改成「90」,然後便可下載該程式放入Micro:bit內。

試觀察:

    當按下按鈕「A」、「B」和「A+B」,可連續旋轉的伺服馬達有什麼不同的反應?


土壤湿度探测器


土壤濕度感應器可以探測四周的濕度,它是一個模擬輸入模組。常用於自動澆水系統。
我們可以用以下的方塊讀取濕度:

所得出的數值大約會是如下:


試試看:探測四周的濕度

  • 硬件方面:
    1. 先把Micro:bit插入擴展板。
    2. 再用杜邦線把土壤濕度感應器連接至擴展板的P0位置。

  • 軟件方面:
    1. 點選「變數」,設置一個新的變數「humidity」。
    2. 把「變數 humidity 設為 0」的積木放入「重複無限次」的積木中。
    3. 點選「腳位」,把「類比信號讀取 腳位P0」的積木拉出來,放到「變數 humidity 設為 0」的積木的「0」的位置。
    4. 點選「基本」,把「顯示 數字 0」的積木拉出來,放到「重複無限次」積木內的底部。
    5. 點選「變數」,把變數「humidity」的積木拉出來,放入「顯示 數字 0」積木的「0」的位置。

試觀察:

    在一般情況下,Micro:bit 的LED陣列顯示的數值是多少?
    把土壤濕度感應器放入水中後, Micro:bit 的LED陣列顯示的數值又是多少?

  • 在一般情況下,數值大約為7。

  • 把土壤濕度感應器放入較乾的的盆栽後,數值大約為 670。

  • 把土壤濕度感應器放入較濕的盆栽後,數值大約為758。

  • 把土壤濕度感應器放入水中後,數值大約為800。



按鈕積木


按鈕積木是一個數位輸入模組,簡單而言就是一個額外的按鈕。
我們可以用以下的方塊讀取按鈕:


試試看:觸發按鈕積木

  • 硬件方面:
    1. 先把Micro:bit插入擴展板。
    2. 再用杜邦線把按鈕積木連接至擴展板的P0位置。

  • 軟件方面:
    1. 點選「變數」,設置一個新的變數「isPress」。
    2. 把「變數 isPress 設為 0」的積木放入「重複無限次」的積木中。
    3. 點選「腳位」,把「數位信號讀取 腳位P0」的積木拉出來,放到「變數 isPress 設為 0」的積木的「0」的位置。
    4. 點選「基本」,把「顯示 數字 0」的積木拉出來,放到「重複無限次」積木內的底部。
    5. 點選「變數」,把變數「isPress」的積木拉出來,放入「顯示 數字 0」積木的「0」的位置。

試觀察:

    在一般情況下,Micro:bit 的LED陣列顯示的數值是多少?
    當按下按鈕時, Micro:bit 的LED陣列顯示的數值又是多少?