Micro:bit 的無線廣播功能

Micro:bit 與Micro:bit 晶片彼此資訊互通的方式有三種類型,第一種是透過有線的網路(Network)功能透過Pin 腳來聯繫,另外兩種是無線通訊的功能,分別是藍芽(Bluetooth)與廣播(Radio)。雖然Micro:bit 的藍芽功能在受限於硬體記憶體的問題無法讓MicroPython 使用,但其無線廣播(radio)的功能在MicroPython程式環境下還是可以使用。

Micro:bit 的廣播功能和網路功能的差異除了有線通訊與無線通訊的差異之外,廣播功能是把訊號放出,任何一個具有收訊功能的載具都有機會接收的到,因此無法鎖定特定接收的對象。 

要使用Micro:bit 的廣播功能很簡單,我們只要引入radio 套件,就可以使用radio.send() 函數以及radio.receive() 函數來接收訊號。語法如下:

import radio
radio.on()
radio.send(字串型別的訊息)

以及

import radio
radio.on()
incoming = radio.receive()

要特別留意一件事,要讓Micro:bit 可以有發送廣播與接受廣播訊號的功能,我們在import radio 後一定要先開啟廣播的功能,亦即 radio.on()。同理,如果我們要關閉廣播的功能,我們用radio.off()。

廣播功能開啟後,我們用radio.send() 函數直接送出字串型別的資料,radio.receive() 會直接把收到的訊號再轉成字串型別的資料。

我們用一個簡單的範例讓兩片Micro:bit 可以利用無線的方式溝通,程式如下:

import radio
from microbit import display, Image, button_a, sleep
radio.on()
while True:
    if button_a.is_pressed():
        radio.send('Hello!')  
        display.show(Image.HEART)
    sleep(1000)
    
    incoming = radio.receive()
    if incoming:
        display.scroll(incoming)
        display.show(Image.HAPPY)
        sleep(1000)
 

 這裡要注意第3行務必要開啟radio 功能,當A 鍵按壓時,我們送出"Hello!"字串並且顯示愛心符號,若接收到訊息,訊息字串會傳入incoming 變數,然後當incoming 變數有值時,我們用跑馬燈顯示該字串並且顯示開心的符號。下面是我們完成後把程式刷進兩個Micro:bit 互動的過程。