在micro:bit的廣播功能中,有一個功能能讀取收到的廣播信號的強度。也就是說,我們可以根據廣播強度來大致判斷發信號的其他micro:bit是遠是近。
積木「收的封包-訊號強度」會傳回介於-128到-42的值,-42為最大。這個積木只能在廣播事件積木(如「當收到廣播數字」)內使用,所以要用個變數儲存它。為了計算和理解方便起見,我們把-128到-42換算成0到100。
程式內有兩個「重複無限次」迴圈:其中一個會不斷送出數字0。其實送出幾都沒差別,反正我們只需要判斷信號強度,而不是信號內容。
於是我們可以用廣播強度來控制micro:bit的聲光效果;首先,程式會根據廣播強度顯示長條圖,信號越強螢幕上的燈光就越滿。其次是連續發出嗶聲,而嗶聲的間隔來自下面的暫停積木。
暫停間隔會計算 (120 - 廣播強度) x 10。我們已經將廣播強度換算成0~100,因此這會使暫停時間最短在20毫秒、最長1200毫秒。也就是說,當兩片micro:bit靠近彼此時,你不僅會看到燈光長條圖變高,嗶聲也會越來越急。
廣播尋寶是個適合拿來當團康遊戲的應用,但使用之前要設好廣播群組以及廣播強度(發射訊號的強度),才不會相互干擾或難以偵測訊號變化。一般來說,室內可能設定強度2~3就夠了。不過話說回來,強度設得比較強時,訊號的變化也會更為明顯。
雖然廣播尋寶的兩片micro:bit使用的程式是同一個,但當作寶物的那片不能有聲音。另一片可以裝在有蜂鳴器的擴充板上,然後讓小朋友拿著去找寶物。
沒有留言:
張貼留言