当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

子供のプログラミング micro:bit(マイクロビット)で学ぶ 24

子供のプログラミング micro:bit(マイクロビット)で学ぶ 24

 

マイクロビットのシリアル通信について紹介したいと思います。今まで紹介してきたMicro:bitホームページのレッスンには、シリアル通信はないようですので、似たような形式で紹介します。

当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。

訳者注:当サイトのマイクロビットのレッスンの紹介記事ですが、以下の順で見ていただけるとマイクロビットのホームページのレッスン順になります。

micro:bit(マイクロビット)で学ぶ 1micro:bit(マイクロビット)で学ぶ 2『温度のアクティビティー』19『アンサリングマシン』20『数当てゲーム』5『サイコロ』6『トゥルース・オア・デア』8『マジック8ボール』21『ラブメーター』3『じゃんけんゲーム1』4『じゃんけんゲーム2』7『マジックボタン』無線の紹介→当記事

前回の記事『無線』レッスンのチャレンジ回答例

チャレンジは、『メッセージを複数準備して、Micro:bitを振って選択してからAボタンを押して友達にランダムなメッセージを送る』でした。以下、その1例です。Micro:bitを振った時に乱数0~3を発生させて、0『Hello』、1『Hi』、2『Great』、3『Not bad』のメッセージを送信し、受け取ったメッセージを表示するプログラムです。

microbit23-11

シリアル通信について

 

2021年8月11日更新
ブロックエディターが新しくなりました。ブロックの外観が変わりましたが、使い方はほぼ同じです。当記事は今までのブロックエディター(V0)のブロックを基に記事を作成していますので、新しいブロックエディターのブロックと見た目が異なりますので、ご了承ください。今後、順次新しく追加されたブロック等に対応していきます。

 

まず、上の手順でブロックエディターを開いてください。もし、前に作成中のプログラムが表示された場合は、保存してから左上にある『プロジェクト』メニューをクリックして『新しいプロジェクト』をクリックしてください。最初は、『最初だけ』ブロックと『ずっと』ブロックだけがプログラミングエリアにあります。

レッスン内容『メッセージを送る』

Micro:bitのホームページにシリアル通信のレッスンがありませんので、以下のプログラムを作っていきたいと思います。

2台のMicro:bitを使い、Aボタンを押したら相手のMicro:bitに『Hello』と表示し、Bボタンを押したら『Hi』と表示するプログラムです。

 レッスン目標 

子供たちは、次のことができるようになります。

  • シリアル通信を使って、友達のMicro:bitにメッセージを送ることができる
 ステップ1 

まず、Micro:bit間を以下のように3本の線で接続します。ワニ口クリップで接続できるようにP0、P1、P2、GNDはプリント配線が大きくなっていますので、通信の確認にはこちらを使用します。同じプログラムを使いますので、P0は相手のP2に接続し、GNDはGNDに接続します。(筆者注:P0、P1、P2はどの2つを使っても良いです。私のMicro:bitはP1が調子悪いのでP0とP2をつかいました。)
microbit24-1

 ステップ2 

シリアル通信の設定を最初に行います。ブロック種類選択メニューの高度なブロック『シリアル通信』から『シリアル通信 通信先を変更する』ブロックをドラッグして、ワークスペースの『ずっと』ブロックに組み込みます。
microbit24-2

通信速度はそのままでよいので、送信端子と受信端子を使用するピンに変更します。私の場合はP0とP2ですので、それを設定しました。どのピンをどの端子に設定してもOKです。
microbit24-3

 ステップ3 

ボタンを押したときにメッセージを送るプログラムを作ります。ブロック種類選択メニュー『シリアル通信』から『文字列を書き出す』ブロックを選択します。
microbit24-4

次にブロック種類選択メニュー『入力』から『ボタンAが押されたとき』ブロックを選択して、シリアル通信ブロックを組み込んで『Hello』を入力します。以下のようになります。
microbit24-5

上のブロックをコピーして、ボタンをBにメッセージを『Hi』に修正します。これで、メッセージ送信は完了です。
microbit24-6

 ステップ4 

ここから、メッセージを受信するプログラムを作成します。ブロック種類選択メニュー『基本』から『ずっと』ブロックと、ブロック種類選択メニュー『変数』から『変数を0にする』ブロックと、ブロック種類選択メニュー『シリアル通信』から『文字列を受信』ブロック選択して、以下のように組み合わせます。
microbit24-7

次に変数『rcv』を作り、変数をrcvに変更します。受信したメッセージを保管する場所ですので、好きな名前で良いです。注:変数の作り方は、こちらの記事のステップ2にあります。ブロックは以下のようになります。
microbit24-8

次にrcvを表示するために、ブロック種類選択メニュー『基本』から『文字列を表示』ブロックと、ブロック種類選択メニュー『変数』から『rcv』ブロックを選択して組み合わせて、ずっとブロックに組み込みます。以下のようになります。
microbit24-9a

最後に、これだけでは受信メッセージが無いときに何も表示されませんので、『アイコンを表示』ブロックと『一時停止』ブロックを使い、メッセージが無いときは『スマイル』アイコンを表示して1秒間待つようにします。
microbit24-10a

 ステップ5 

これでプログラムは完成です。ワークスペースは以下のようになります。
microbit24-11a

 ステップ6 

Makecodeの左下でプログラム名を決めて保存ボタンを押します。この例では『シリアル通信』としました。
microbit24-12

ダウンロードフォルダーに『microbit-シリアル通信.hex』というファイルが出来上がっていますので、2台のMicro:bitにそれぞれコピーします。これでメッセージを送ることができます。ボタンを何も押さないときは、1秒間隔でスマイルがLEDに表示されるはずです。どちらかのMicro:bitのAボタンを押すと、相手のMicro:bitに『Hello』と表示され、Bボタンを押したら『Hi』と表示されます。

 チャレンジ 

これでレッスンは終了ですが、チャレンジとして以下の機能を追加してみてください。

  • ボタンでメッセージを送る以外に、例えばMicro:bitを左に傾けたら、『Great』を送り、右に傾けたら『Not bad』を送るプログラムを追加する。

上記の回答は、次の記事でシリアル通信のブロックとMicropythonを対比して紹介したいと思いますので、その記事で紹介します。


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


    良く解る解る解りにくい部分がある解りにくい 


     

    マイクロビットカテゴリの最新記事