micro:bitを使ってプライベートなチャットシステムを作ってみる

2023年8月10日

はじめに

本記事ではmicro:bitの無線機能を使用し、簡易的なチャットシステムを作成します。

チャットしたいパソコンにマイクロビットを接続するだけでインターネット環境がなくてもチャットが楽しめる画期的(?)なシステムになります。

本当に機密性のあるプライベートなわけではないのでご注意下さい。

やってみよう

構成について

以下のような構成とします。

主役となるマイクロビットにはシリアル通信で送受信したデータと、無線データの変換を行います。パソコン上ではTeratermを立ち上げ、チャットを行うための文字列の入力・出力を行います。

プログラムについて

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

「無線グループを設定」:こちらは任意のグループを指定してもらえれば問題ありませんが、なるべく他の人ととは重複しないように選択して下さい。ただし、チャットをやり取りしたい人とは同じグループを設定して下さい。

「シリアル通信」:こちらはUSBのインタフェースでパソコンと接続していますので、画像のように設定頂くのが良いかと思います。

「ReadStringBuffer/WriteStringBuffer」こちらは変数名となります。それぞれシリアル通信で読み込んだ文字列、書き込み予定の文字列を格納するための一時的な置き場という風に考えて頂くのが良いかと思います。それぞれ初期値は不要なので、画像のようにご設定下さい。

次はTeratermで入力した文字列をmicro:bitで受信した際の処理内容についてです。改行コードの文字コードをシリアル通信で受信した場合に:

  1. 無線にてReadStringBufferのデータを送信します。
  2. 送信した文字列が何であったかをTeratermに出力するために、ReadStringBufferを書きだします。
  3. 文字列入力を受け付けていることを示すために"SHELL> “をTeraterm上に表示します。

こちらは無線データを受信したときの処理です。受信する度に:

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

プログラムとしてはこれで以上となります。

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

2023/08/10 追記

こちらの動作確認ではTeratermの改行コードを以下のように変更する必要があります。Teratermの設定メニューから"端末"を選択し、以下のように改行コードを変更して下さい。

動作確認

チャットを行いたいPCでそれぞれmicro:bitの接続を行い、Teratermを起動してください。

正常にパソコンとmicro:bitが接続されていれば、コンソール上に”SHELL > ”の文字が表示されているはずです。2台以上のパソコンで、パソコンにmicro:bitが接続された状態を作れば、準備は完了です。

SHELL> と書かれたコンソール上に何か文字をタイプしてEnter Keyを押下してください。

タイプした文字列が自分のコンソールに表示されるだけでなく、micro:bitを接続した他のメンバーのTeraterm上にも同様の文字列が表示されているかと思います。お互いに文字を入力し、チャットとしての機能を果たせているかをご確認下さい。

最後に

プライベートなチャットシステムは作成出来ましたでしょうか?

このシステムであれば、micro:bitを使うのみで例えインターネットに接続されていなくとも、複数のパソコン間でプライベートなチャットを実施することが可能となりますので、是非遊んでみてください。

少し説明を簡略化しているところもありますので、何か不明点がありましたらお気軽にお問合せ下さい。