學習目標
- 註冊 when_pressed callback
- 用 start_button(100) 啟動按鈕回報
- 組合 RGB LED 與蜂鳴器輸出
事件互動CHAPTERS
按下按鈕時全部 RGB 亮橘色並發聲,放開時熄滅。
保留程式與觀察紀錄,說明你修改了哪個部分,以及結果如何改變。
PROJECT PREVIEW

TRY IT
from mangobox import Mango
m = Mango(mode="hardware")
def pressed():
m.led_all("#FF7A00")
m.beep()
def released():
m.led_off()
m.when_pressed("button", pressed)
m.when_released("button", released)
m.start_button(100) # Runtime 回報間隔,毫秒
m.run_forever() # Host 程式等待事件;Ctrl+C 結束
按下按鈕時全部 RGB 亮橘色並發聲,放開時熄滅。
下載本課 Python 範例 →執行前請核對所需設備與頁面下方的執行環境。程式只在桌面工具執行,這個網頁不執行 Python 或連接硬體。
ENVIRONMENT & VERSIONS
本課以 MangoX2 教學套件為基準。MangoLite 需另核對模組、Enable 與 LED 數量,本課尚未宣稱直接相容。
先用 Device Manager 確認模組啟用、GPIO 與連線;MangoX2 的 OLED、RGB 和按鈕屬套件模組,不能只看裸板名稱判定已備妥。Host UART 與原生 Pico USB 的用途不同。
已核對官方文件與 Host 原始碼;本課尚未完成實機驗證
使用 start_button() 對應 Button,避免教材混用 button 與底層 cap_touch 名稱。Host callback 不接收必要參數;run_forever() 保持電腦程式存活。
對照來源:HostPython/05-MangoX2-Button_LED.py
官方來源:MangoBox-Platform 公開 API 契約(2026-09-06)與 MangoThonny Host 原始碼 983cc296。本站範例為課程改寫,非逐字複製老師教材。
m.led_all(color="#ffffff", duration=0, strip=None)設定全部 RGB LED 為同一顏色m.beep()bee() 的相容名稱m.led_off(strip=None)停止 LED 燈效並熄滅燈條m.when_pressed(sensor='button', callback=None)註冊按下事件的便利寫法m.when_released(sensor='button', callback=None)註冊放開事件的便利寫法m.start_button(period=100)啟動按鈕週期監看m.run_forever()Host:保持電腦程式存活以接收事件;不是 Pico Scheduler 迴圈。