micro:bit でプライベートチャットシステムを作る — 無線通信とシリアル通信で実現する手順

2026年6月7日

はじめに

「インターネット環境がない場所でも、手元のパソコン同士でちょっとしたメッセージをやり取りしたい」——そんな場面で役立つのが micro:bit の無線(ラジオ)通信機能です。本記事では、micro:bit と Tera Term を組み合わせて、USB シリアル通信と無線通信を橋渡しする簡易チャットシステムを作る手順を解説します。

パソコンに micro:bit を接続するだけでチャットができる、ちょっと変わった工作を楽しみたい方の参考になる内容です。なお、本当に機密性の高い通信ではないため、重要な情報のやり取りには使わないようご注意ください。

前提環境

カテゴリツール・技術役割
マイコンボードmicro:bit(2台以上)シリアル通信と無線通信を中継するハブ
プログラミング環境MakeCodeブロックエディタでプログラムを作成・書き込み
ターミナルソフトTera Termパソコン側でチャットの入出力を行うコンソール
通信方式USB シリアル通信 + 無線(ラジオ)通信パソコン⇔micro:bit、micro:bit間のデータ伝送

micro:bit でプライベートチャットシステムを作る手順

1. システム構成を理解する

課題:パソコン同士を直接つなぐ手段がない環境で、文字列をやり取りする仕組みが必要。
解決策:micro:bit を「シリアル通信で受け取った文字列」と「無線データ」の変換役として使う。

全体のイメージは以下のとおりです。

micro:bit を使ったプライベートチャットシステムの全体イメージ

主役となる micro:bit は、シリアル通信で送受信したデータと無線データの変換を行います。パソコン上では Tera Term を立ち上げ、チャット用の文字列の入力・出力を行います。

チャットシステムの構成図(パソコン・Tera Term・micro:bit・無線通信の関係)

2. 無線通信とシリアル通信の初期設定を行う

課題:無線グループやシリアル通信のインタフェース、文字列を一時的に保持する変数を用意する必要がある。
解決策:「最初だけ」ブロックで無線グループ・シリアル通信・変数の初期値をまとめて設定する。

「最初だけ」のブロックを以下のように設定します。

  • 無線グループを設定:任意のグループ番号を指定して問題ありませんが、なるべく他の人と重複しない番号を選びます。ただし、チャットをやり取りしたい相手とは同じグループ番号に揃える必要があります
  • シリアル通信:USB インタフェースでパソコンと接続するため、画像のように設定します
  • ReadStringBuffer / WriteStringBuffer:それぞれ「シリアル通信で読み込んだ文字列」「無線で書き込み予定の文字列」を一時的に格納しておく変数です。初期値は不要なので、画像のように空の状態で設定します
「最初だけ」ブロックでの無線グループ・シリアル通信・変数の初期設定

3. シリアル受信時(自分の入力を送信する側)の処理を実装する

課題:Tera Term に入力した文字列を、無線経由で他の micro:bit に届ける必要がある。
解決策:改行コードを受信したタイミングで、無線送信と Tera Term への表示をまとめて行う処理を組む。

Tera Term で入力した文字列を micro:bit が受信した際の処理です。改行コードの文字コードをシリアル通信で受信したタイミングで、以下を行います。

  1. 無線にて ReadStringBuffer のデータを送信する
  2. 送信した文字列が何であったかを Tera Term に表示するため、ReadStringBuffer を書き出す
  3. 文字列入力を受け付けていることを示すため、Tera Term 上に「SHELL> 」を表示する
シリアル受信時に無線送信と Tera Term への出力を行う処理ブロック

4. 無線受信時(相手のメッセージを表示する側)の処理を実装する

課題:相手から届いた無線データを、意味のある文字列だけ Tera Term に表示したい(改行コードのみの空データを除外したい)。
解決策:受信した文字列の長さをチェックし、内容がある場合だけ表示する処理を組む。

無線データを受信したときの処理です。受信するたびに、以下を行います。

  1. 無線データとして受信した内容が「改行コードだけ」でないことを確認するため、文字列の長さをチェックする
  2. 無線で受信したデータを「WriteStringBuffer」という変数に格納する
  3. 文字列が改行コードだけでなく何らかの文字を含んでいる場合は「>>> “受信した文字列"」という形式で Tera Term 上に表示する。改行コードのみだった場合は何も表示しない
  4. 文字列入力を受け付けていることを示すため、Tera Term 上に「SHELL> 」を表示する
無線受信時に文字列の長さをチェックして Tera Term へ表示する処理ブロック

5. Tera Term を設定して動作確認する

課題:シリアルポートの通信速度や改行コードの設定が合っていないと、正しく動作しない。
解決策:通信速度を 115200 に設定し、Tera Term の改行コードも環境に合わせて変更する。

プログラムができたら、通信したい 2 台以上のパソコンにこのプログラムを書き込んだ micro:bit を接続します。このとき、シリアルポートの通信スピードが 115200 になっていることを確認してください。

シリアルポートの通信スピードを 115200 に設定する画面

2023年8月追記:動作確認には Tera Term の改行コードの変更が必要です。Tera Term の設定メニューから「端末」を選択し、以下のように改行コードを変更してください。

Tera Term の端末設定で改行コードを変更する画面

チャットしたいパソコンでそれぞれ micro:bit を接続し、Tera Term を起動します。正常に接続できていれば、コンソール上に「SHELL> 」の文字が表示されます。2 台以上のパソコンでこの状態を作れば準備完了です。

「SHELL> 」と表示されたコンソール上に文字を入力して Enter キーを押すと、自分のコンソールに表示されるだけでなく、micro:bit を接続した他のメンバーの Tera Term 上にも同じ文字列が表示されます。お互いに文字を入力し、チャットとして機能しているかを確認してみてください。

複数の Tera Term 間でチャットメッセージが送受信されている動作確認画面

まとめ:micro:bit でプライベートチャットシステムを作るポイント

本記事で解説した手順をまとめます。

  • micro:bit はシリアル通信で受け取った文字列と無線データを相互変換する「橋渡し役」として動作する
  • 「最初だけ」ブロックで無線グループ・シリアル通信・一時保存用の変数をまとめて初期設定する
  • 送信側はシリアル受信(改行コード検知)で無線送信、受信側は無線受信時に文字列の長さをチェックして表示するという2方向の処理を実装する
  • シリアルポートの通信速度は 115200、Tera Term の改行コード設定も動作確認の前提条件として確認しておく
  • インターネット接続なしでも、micro:bit を挿すだけで複数パソコン間のチャットが楽しめる

※本システムは暗号化などのセキュリティ対策を施したものではないため、本当に機密性の高いやり取りには使用しないでください。