2026年9月3日 星期四

用 micro:bit Python Editor 學習真正的 MicroPython:從 LED、按鍵到無線互動

用 micro:bit Python Editor 學習真正的 MicroPython:從 LED、按鍵到無線互動

當你已經用 MakeCode 讓 micro:bit 動起來,下一步可以改用 micro:bit Python Editor。它採用 MicroPython,程式結構更接近一般 Python;學生能保留硬體實作的即時回饋,同時學習 importwhile True、函式、序列輸出與模組化程式。

編輯器:micro:bit Python Editor v3
建議對象:具備 MakeCode 基礎、準備進入文字型 Python 程式設計的學生。

一、為什麼要學 micro:bit Python Editor?

學習階段你會學到什麼?
MakeCode 積木程式邏輯、事件、硬體輸入與輸出
MakeCode PythonPython 風格的硬體控制與程式結構
micro:bit Python EditorMicroPython 的 importwhile True、除錯主控台與模組
IDLE Python檔案、資料分析、API、AI 與完整應用程式

micro:bit Python Editor 有模擬器、語法提示、錯誤標示與序列主控台。先在模擬器測試,再傳送到實體 micro:bit,可以降低初次接觸文字程式的挫折感。

二、第一行程式:匯入 micro:bit 工具箱

from microbit import *

這行程式把 micro:bit 的 LED、按鍵、溫度、加速度、腳位與時間功能載入。目前的程式可以使用 displaybutton_asleep() 等名稱。

三、範例 1:讓 LED 顯示愛心

from microbit import *

display.show(Image.HEART)
sleep(1000)
display.clear()

練習:Image.HEART 改成 Image.HAPPYImage.SAD 或自己建立 5×5 圖案。

四、範例 2:按 A 顯示 A,按 B 顯示 B

from microbit import *

while True:
    if button_a.was_pressed():
        display.show('A')
    if button_b.was_pressed():
        display.show('B')

while True: 表示「永遠重複」。程式不是一直盯著按鍵不放,而是持續檢查是否發生「按過一次」的事件。

五、範例 3:搖一搖,顯示隨機點數

from microbit import *
from random import randint

while True:
    if accelerometer.was_gesture('shake'):
        number = randint(1, 6)
        display.show(str(number))
        sleep(800)

這個例子同時練習:感測器、條件判斷、變數、隨機數與字串轉換。

六、範例 4:溫度計與序列主控台

from microbit import *

while True:
    celsius = temperature()
    display.scroll(str(celsius) + 'C')
    print(celsius)
    sleep(2000)

display.scroll() 是給板子上的人看;print() 則會輸出到 Python Editor 的序列主控台,適合觀察資料是否合理、協助除錯。

七、範例 5:兩片 micro:bit 無線傳話

請用兩片 micro:bit,兩端都下載下列程式。按下 A 就送出訊息;接收端會顯示收到的內容。

from microbit import *
import radio

radio.on()
radio.config(group=23)

while True:
    if button_a.was_pressed():
        radio.send('Hello')
        display.show(Image.HAPPY)

    message = radio.receive()
    if message:
        display.scroll(message)

重點:兩片 micro:bit 的 group 必須相同,才像在同一個無線頻道。請改成不同組別測試,觀察訊息是否還能收到。

八、從 MakeCode Python 搬家時,不能直接複製的地方

MakeCode Pythonmicro:bit MicroPython
basic.show_number(51)display.show('5')display.scroll('51')
basic.forever(...)while True:
radio.send_value()radio.send()radio.receive()

兩者都是 Python,但 API 不同。若要控制 CuteBot、Joystick:bit 等擴充硬體,必須使用廠商提供、可在 MicroPython 使用的模組;MakeCode 的擴充功能不能直接複製過來。

九、課堂任務:微型智慧環境站

  1. 顯示目前溫度;當溫度高於自訂門檻時顯示警示圖案。
  2. 按 A 顯示目前溫度,按 B 顯示光線值。
  3. 每 5 秒用 Radio 傳送一行格式化資料,例如 T=28,L=120
  4. 另一片 micro:bit 收到資料後顯示圖示,並在序列主控台列印收到的原始訊息。

十、學習檢核

  • 我能說明 from microbit import * 的用途。
  • 我能用 while True 撰寫持續運作的程式。
  • 我能用序列主控台檢查 print() 輸出的資料。
  • 我能設定兩片 micro:bit 使用相同的 Radio 群組並互相傳訊息。
  • 我知道 MakeCode Python 與 MicroPython 的語法相似,但 API 不可直接混用。

參考資源:micro:bit Python Editor v3官方 Python Editor 指南

沒有留言:

張貼留言