micro:bit シリアル通信のやり方(2) — パソコンから micro:bit へのデータ送信

2026年6月2日

この記事で説明すること

前回の記事では micro:bit からパソコンに対して、文字列データを送信する、温度情報を送信するといった micro:bit → パソコン方向の通信の実現方法について説明致しました。

今回の記事ではパソコン→ micro:bit に対して文字列データを送る方法について説明します。本記事では、文字列データをパソコンから micro:bit に対して送ることのみを説明しますが、例えば Raspberry Pi といった別のコンピュータ・マイコンと接続する際の通信手段にも応用が可能な内容となっています。

micro:bit のプログラムを作成するその前に

こちらの記事の読者の方はまずは自分で考えてみて、色々と動かしてみて下さい。前回の記事ではいくつかのサンプルプログラムを例として記載しましたが、やはり、何事も自分で動かす、自分で試してみること以上に理解を深める方法ありません。

とは言いながら、仕組みが分からないと難しい内容もあるので、まずは考えなければいけなことを2点記載します。

考えなければならないこと:

  1. どうやって micro:bit にデータを送信するか?
  2. どうやって micro:bit がデータを受信したことを知ることが出来るか?

このような考え方は今後、プログラムを作成していく上でどうしても必要な内容です。次回以降ではもう少し複雑なプログラムの実装方法についても説明していく予定ですが、まずは今実現しなければならないことを、必要なパーツに整理し、それぞれをどう実現していくか、が非常に大切です。

①どうやって micro:bit にデータを送信するか?ですが、こちらは皆さん気付きましたでしょうか?前回の記事で記載した Tera Term というアプリケーション、これをそのまま使います。Tera Term の画面上でパソコンのキーボードを叩いても一見、何も起きていないように見えるのですが、実は micro:bit にはちゃんとタイプした文字が送信されています。

②どうやって micro:bit がデータを受信したことを知ることが出来るか?については如何でしょうか?こちらは micro:bit でプログラムする内容です。受け取ったデータを LED で表示すれば良い、というのが答えです。

micro:bit のプログラムを作成する

では、早速プログラムしていきましょう。

1.)いつも通り、「最初だけ」のパーツにはハートを表示するようにしておきましょう。

「最初だけ」ブロックにハート表示を設定した状態

ここでは新たに 変数 の概念を取り入れます。変数のパーツリストから変数を選択し、「変数を追加する」を選択して下さい。こうすると作成する変数の名前を聞かれるので、「受信データ」としておきましょう。

変数「受信データ」を追加する画面

すると、以下のような画面表示になります。変数という概念を知らない方は、この時点では何をやっているかのか分からないかもしれませんが、一旦、このまま進めて下さい。変数については後ほど簡単に説明します。

変数追加後のパーツリスト表示

次にこの「変数 受信データを 0 にする」のパーツを右のエリアに移動させ、「ずっと」のパーツに組み合わせて下さい。

それから、「シリアル通信」のパーツリストから「シリアル通信 文字列を読み取る」を選択し、これを上記のパーツの 0 のところに置いて下さい。一見、置けるの?という感じがしますが、ちゃんと置けるようになっています。

「シリアル通信 文字列を読み取る」を変数ブロックに組み合わせた状態

ここまでが Tera Term から文字列データを受信するための手順です。次はこの文字列データを表示するためのプログラムです。「基本」のパーツリストから「文字列を表示」のパーツを上記で置いたパーツの下に配置して下さい。

「文字列を表示」ブロックを追加した状態

ここから先ほど作成した 変数 を使います。「変数」のパーツリストの一番上に「受信データ」のパーツがありますので、これを「文字列を表示」パーツの “Hello" のところに置きましょう。

「受信データ」変数を「文字列を表示」に組み合わせる手順
プログラム完成状態

ここで一度、プロジェクト名を「シリアル受信」としてバイナリファイルを micro:bit にダウンロードしてみましょう。

ダウンロードが出来たら、前回同様、Tera Term を立ち上げて、通信スピードを 115200 に設定し、Tera Term の画面でキーボードをタイプしてみましょう。

パソコンで “a" をタイプしたと時には micro:bit の LED に “a" が表示され、"D" とタイプした時には LED に “D" が表示されているかと思います。ちゃんとパソコンから micro:bit に文字列データが送れていることを確認出来ましたね。

少しだけアレンジを加えたものが以下です。

受信した文字列を LED 表示後にパソコンへ送り返すプログラム

こちらは micro:bit が受信した文字列を LED に表示した後、その文字列をパソコンに送り返すという内容です。実際に動作を確認してみると、Tera Term の画面上にタイプした文字列が表示されることが確認出来ると思います。

変数について

最後に変数について簡単に紹介しておきます。プログラムを書いたことがある人にとっては馴染みのあるものなので特に意識をする必要はありませんが、変数って何だ?と言いながらここまで進めてこられた方もいるかと思います。

変数とは…一時的なデータの入れ物です。

今回の例では、受信した文字列を一時的な “受信データ" という名前の変数に格納し、それを LED への表示、文字列の送信に利用しました。意図的にその変数の中身を書き換えることがなければ、同じように繰り返し使うことが出来ます。

また、後の記事で使用例について書いていく予定ではありますが、例えばあるプログラムのブロックを実行するかどうかの判定や、5回だけこのプログラムのブロックを実行したい、といったようなケースでも変数を使用することが多いのです。

変数についてはまた、次回以降の実際の使用例を元に、一緒に考えていきましょう。

今回の記事はここまでとします。何かご不明点がありましたら、お気軽にご質問下さい。