熊おふし五郎が行く

主にマイコンボードを動かした記録を書いています

Micro:bit同士をUARTでデータ通信

概要

2つのMicro:bit同士がUART通信でコマンドを送受信する。

f:id:bear_9973:20210113210540p:plain:w350
概要図

基本的な接続

以下のように、ワニクリップで2つのMicro:bitを接続します。

f:id:bear_9973:20210113210801p:plain:w350
基本的な接続

f:id:bear_9973:20210114174735j:plain:w500
実際の接続状態

※購入するときは、乾電池ボックス、USBケーブルが付いているか確認することをおすすめします。

MicropythonとMicro:bit

以下の順に説明します。

  • フロー
  • コード
  • 動作結果

フロー

フローを以下に示します。

  1. UARTポートを設定
  2. 100 ms毎に、受信状態とAボタンの状態を確認
  3. データを受信したときは、受信したデータをLEDスクリーンに表示
  4. Aボタンが押された場合は、"Hello A"の電文を送信(もう1つは"Hello B"を送信)
  5. 2に戻る(ループ)

コード

コードを以下に示します。このコードは、

from microbit import *

sleep(5000)
uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin0, rx=pin1)
display.show(Image.HAPPY)

def Send(d):
    uart.write(d)

def Receive():
    if uart.any():
        r = uart.read()
        display.scroll(r)

while True:
    Receive()
    if button_a.is_pressed():
        Send("Hello A")
        sleep(500)
    sleep(20)

動作結果

Micro:bitのAボタンを押すと、もう1つのMicro:bitのLEDスクリーンに"Hello A"が表示できました。"Hello A"を受信したMicro:bitのAボタンを押すと、もう1つのMicro:bitのLEDスクリーンに"Hello B"が表示できました。

※購入するときは、乾電池ボックス、USBケーブルが付いているか確認することをおすすめします。