10. 案例 07:智慧遙控音樂燈¶
難度:

10.1. 發送器¶
背景¶
甚麼是智慧遙控音樂燈?
現在很多家庭電器都可以遙距控制。這個案例說明了智能家居中遙控的概念。屋主可以按下遙控器來控制客廳的氛圍。(音樂和燈光的變化)
遙控運作原理(發送器)
micro:bit 內置廣播功能,兩個或以上的 micro:bit 可以組成一個群組並在小範圍內通訊。
在這個案例下,這個 micro:bit 發送器(遙控)會與接收器一起加入群組 1。當我們按下 micro:bit 上的不同按鈕時,它會傳送不同的訊息(模式)給另一個 micro:bit,讓接收器執行相應的動作。
這些訊息分別代表「有趣」、「興奮」和「停止音樂」模式。

發送器
所用部件¶

組裝步驟¶
不適用
線路連接¶
不適用
編程(MakeCode)¶
步驟一. 連接到廣播群組
在
當啟動時裡,加入廣播群組設為 1以加入廣播群組 1
步驟二. 向群組發送訊息
放入一個
當按鈕 A 被按下在裡面加入一個
廣播發送文字 funny以發送訊息funny到廣播群組 1 的 micro:bits重複以上步驟,並更改觸發按鈕和文字,以創建
excited和stop_music的訊息發送器
完整答案 MakeCode: https://makecode.microbit.org/_72E9Ki1iYRJ7
你可以從以下網頁中下載HEX檔案:
結果¶
將程式下載到 micro:bit 後
當按下按鈕 A,micro:bit 會發送訊息funny到群組 1。

當按下按鈕 B,micro:bit 會發送訊息excited到群組 1。

當同時按下按鈕 A 和 B,micro:bit 會發送訊息stop_music到群組 1。

思考¶
Q1. 除了按按鈕之外,還有其他方式可以決定如何發送訊息嗎?
10.2. 接收器¶
背景¶
音樂燈運作原理(接收器)
當這個 micro:bit 接收到另一個 micro:bit(遙控)的訊息時,它會用蜂鳴器播放不同的音調或音樂,同時彩色 LED 會配合氛圍變化。有3種模式,一種是有趣模式,另一種是興奮模式,最後一種是停止音樂。

組裝步驟¶
步驟一
這個案例以「大房子模型」作為房子的基礎。

步驟二
我們來建造一個客廳。對準 A 和 B3 模型上的孔,將 E1 模型放到 A 模型上。

步驟三
用 M4*10 毫米螺絲及螺母把彩色 LED 安裝到 B3 模型上,連接線應穿過旁邊的孔。

步驟四
我們來製作一張沙發。將兩個 K3 模型裝到 K1 模型的兩側。

步驟五
將 K2 模型與 K1-K3 模型組裝到一起。

步驟六
沙發完成!

步驟七
把沙發放到客廳裡。

步驟八
把 H 模型裝在 B3 模型上,作為裝飾擺設。

步驟九
組裝完成!

編程(MakeCode)¶
步驟一. 連接到廣播群組並初始化 LED 和變數「mode」
建立一個名為
mode的變數在
當啟動時裡,加入廣播群組設為 1以加入廣播群組 1用
變數 strip 設為引腳 P1 初始化燈帶 1 顆LED(模式 RGB(GRB 順序))啟動彩色 LED用
變數 mode 設為 0把變數mode的值設為 0
步驟二. 判斷廣播訊息並採取行動
放入一個
當收到廣播文字 receivedstring在裡面加入一個巢狀的
如果-否則語句在第一個條件,用
receivedstring = stop_musi過濾出訊息stop_music,然後將變數mode更改為 0在第二個條件,用
receivedstring = funny過濾出訊息funny,然後將變數mode更改為 1在第一個條件,用
receivedstring = excited過濾出訊息excited,然後將變數mode更改為 2
步驟三. 製作改變顏色的函式
建立兩個名為
rainbow和flash的函式在每個函式中,用
strip 顯示顏色XXX和暫停XXX毫秒來創造出您想要的顏色變化模式
步驟四. 透過變數改變 LED 顏色
LED 的顏色應跟隨變數變化
| mode | 意思 |
|---|---|
| 0 | stop_music |
| 1 | funny |
| 2 | excited |
在
重複無限次加入一個巢狀的如果-否則語句設
mode = 0為第一個條件在代表
stop_music的第一個如果段中,用停止播放所有音效來停止播放音樂然後用
strip 顯示顏色黑來關閉 LED設
mode = 1為第二個條件在代表
funny的第二個如果段中,先用停止播放所有音效來停止播放音樂,再用play melody prelude until done來播放有趣的音樂透過
呼叫 Rainbow執行函式,將燈光轉為彩虹模式設
mode = 2為第三個條件在代表
excited的第三個如果段中,先用停止播放所有音效來停止播放音樂,再用play melody chase until done來播放興奮的音樂透過
呼叫 Flash執行函式,將燈光轉為閃爍模式
完整答案
MakeCode: https://makecode.microbit.org/_4E7CkjTLWFLV
你可以從以下網頁中下載HEX檔案:
結果¶
將程式下載到 micro:bit 後,
當接收到訊息funny,micro:bit 會播放有趣的音樂,而燈光會以彩虹模式亮起。
當接收到訊息excited,micro:bit 會播放興奮的音樂,而燈光會以閃爍模式亮起。
當接收到訊息stop_music,micro:bit 會停止播放音樂並關掉燈。


