当サイトは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

シリアル通信について

 

2018年10月26日にブロックエディターが新しくなりました。ブロックの外観は変わりましたが、使い方はほぼ同じです。以下に、今までのV0ブロックエディターと、新しいV1ブロックエディターの開き方を追記しました。当記事の手順は以前に作成していますので、『2018/10/25までのV0ブロックエディターを開く』を使用して読んでください。今後、順次新しいエディターに対応していきます。

 

2018/10/26リリースのV1ブロックエディターを開く

Micro:bitウエブサイトのトップから『プログラムしましょう』をクリックします。
microbit2-3

次の画面を少しスクロールダウンすると、JavaScriptブロックエディターかPythonエディターを選択できます。初めてなのでJavaScriptブロックエディターを選択してみます。ここから、リファレンス(各ブロックの説明)を見ることができます。レッスンもありますが、残念ながら現時点英語版のみですが、先生用のガイドも揃っています。2018/6/9追記:翻訳参加が認められましたので、徐々に本家サイトを日本語化します。
microbit2-9

『プログラムしましょう』を選択すると、以下の画面になります。
microbit2-10

新しいプロジェクトをクリックすると、以下のような画面となりプログラムができるようになります。その右には自分が作成したプログラムのアイコンが作られています。以前のプログラムを修正したい場合などはそちらをクリックするとエディターが開きます。
microbit2-11

以下は、前のバージョンの画面ですが、ブロックの形状が異なっている以外はほぼ同じですので、使い方を簡単に追記してあります。
microbit2-5

2018/10/25までの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を対比して紹介したいと思いますので、その記事で紹介します。


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

記事内容についてお伺い


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


 

クロームブラウザーをご使用の方へ

当サイトへの訪問ありがとうございます。その際、グーグルクロームブラウザーをお使いの方にお知らせです。グーグルクロームブラウザーでは、2018年7月から、サイトにより以下の表示がブラウザーのアドレスバーに表示されます。当サイトでも表示されますが、心配ありませんのでご安心ください。
SSL案内1
これは、SSLと呼ばれるWebサイトとそのサイトを閲覧しているユーザとのやり取り(通信)を暗号化するための仕組みを使用していないためです。ネットショッピング、銀行サイトではパスワードやクレジットカードの情報を扱いますので、必須の仕組みです。当サイトでは、そのような情報を扱っておりませんので、暗号化は必須ではありませんが、訪問される方により安心していただけるように、SSL化を予定しております。このメッセージはSSL化完了まで念のため表示します。

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