micro:bitとシリアル通信をしよう

2019年6月号で説明したように、micro:bitとパソコンをUSBケーブルでつなぐと、Windows10版のMakeCodeアプリではシリアル通信ができる。MacやLinuxにはMakeCodeアプリはないけれど、シリアルの値を表示させる方法はある。

また、micro:bitのファームウェアを最新バージョンにして、Chromeブラウザ上でWebUSBの設定をすると、Windows10版のアプリのようにシリアルコンソールを表示できる。

いずれの場合も、まずは以下のようなシリアル書き出しのプログラムを、micro:bitに書き込んで試そう。「ずっと」ブロックに、「高度なブロック」をクリックして表示される「シリアル通信」カテゴリーから、「シリアル通信 名前と数値を書き出す“x”=“0”」ブロックを使う。“x”は“G”、“0”には「入力」カテゴリーの「加速度“絶対値”」ブロックを組み込んでいるよ。これがうまくいったら、自分で考えたプログラムでシリアル通信をしてみてね。

micro:bitとシリアル通信をしよう

Mac OSで
シリアル通信を表示する

Macの場合は標準のターミナルアプリを使用して、シリアル通信をモニターすることが可能だ。”ls”というファイルシステムのディレクトリの中身を表示するコマンドと、Mac OS にはすでにインストール済みの “screen” という画面管理コマンドを使用してシリアル通信の値を表示する画面を開く。

  1. micro:bitをUSBケーブルで接続する。
  2. ターミナルアプリを起動する。
    micro:bitとシリアル通信をしよう
  3. ターミナルの画面に ls /dev/cu.*  と入力して、リターンキーを押すとMacに接続されたいくつかのデバイスが表示される。その中に  ls /dev/cu.usbmodem1412402  のようなものがあれば、それがmicro:bitだ(1412402の部分はユーザーの環境により異なるので注意してほしい)
  4. screen /dev/cu.usbmodem1412402 115200  と入力してリターンを押すと、受信したシリアル値の表示が始まる(1412402の数字は、手順3で確認した自分の環境に合わせて変更する)
    micro:bitとシリアル通信をしよう
  5. そのままだとずっと表示し続けるので、止めたい場合は キーボードでCtrl+Aを押した後 Ctrl+Dを押す。この時のコツはCtrlキーを押しっぱなしにして、A→Dの順にキーを押すとうまくいくよ。

Linux(Raspberry Pi)で
シリアル通信を表示する

ジブン専用パソコンの場合は、標準のターミナルアプリLXTerminalを使ってシリアル通信をモニターすることが可能だ。まずは、“ls”という、ファイルシステムのディレクトリの中身を表示するコマンドと、“screen”という画面管理コマンドをインストールしてから、そのコマンドでシリアル通信の値を表示する画面を開く。

それでは、“screen” コマンドのインストールをしよう。

インターネットに接続されているか確認して、以下の手順で“screen” という画面管理コマンドをインストールする。

  1. LXTerminalを起動する。
  2. 次のコマンドを入力する。  sudo apt-get install screen
    このとき、途中でインストールを続けていいか聞かれるので “y” を入力する。

シリアル通信のモニタリング

  1. micro:bitをUSBケーブルで接続する。
  2. LXTerminalを起動する。
    micro:bitとシリアル通信をしよう
  3. 次のコマンドを入力する。  ls /dev/ttyACM*
    リターンキーを押すと接続されたいくつかのデバイスが表示される。その中に  /dev/ttyACM0  のようなものがあればそれがmicro:bitだ(0の部分はユーザーの環境により異なる)。
    次に  sudo screen /dev/ttyACM0 115200  と入力してリターンキーを押すと、受信したシリアル値の表示がはじまる(ACM0の数字は手順3で確認した自分の環境に合わせて変更しよう)。
    micro:bitとシリアル通信をしよう
    micro:bitとシリアル通信をしよう
  4. 止めないとずっと表示し続けるので、止めたい場合はキーボードで Ctrl+Aを押した後 Ctrl+Dを押してください。この時のコツはCtrlキーを押しっぱなしにして、A→Dの順にキーを押すとうまくいく。

Windowsで
シリアル通信を表示する

Windows10ではアプリ版MakeCodeがあるけれど、10以前のWindowsを使っていたり、アプリ以外でシリアル通信をしたい場合があるかもしれない。

その場合、まずは少し準備が必要だ。micro:bitで使われているmbedというマイコンが、Windowsと通信できるようにするドライバーのインストールと、シリアル通信をモニターできるターミナルアプリケーションのインストールをしよう。

まずは、mbedとWindowsが通信できるようにする、シリアルドライバーをインストールしよう。

  1. mbedのWebサイトにアクセスして、Arm Mbed Windows serial port driverをダウンロードする。
    https://os.mbed.com/docs/mbed-os/v5.12/tutorials/windows-serial-driver.html
  2. ダウンロードしたmbedWinSerial_16466.exeを実行してインストーラーの通りにインストールする。

次に、Tera Term(ターミナルアプリケーション)をインストールしよう。

  1. Tera Term のサイトにアクセスする。
    https://ttssh2.osdn.jp/index.html.ja
  2. 最新版のTera Term 4.102(2019年4月時点)をダウンロードする。
    https://ja.osdn.net/projects/ttssh2/downloads/70691/teraterm-4.102.exe/
  3. ダウンロードしたteraterm-4.102.exeを実行してインストーラーの通りにインストールする。

micro:bitをパソコンに接続して、さっそくシリアル通信を試してみよう。

  1. micro:bitをUSBケーブルで接続する。
  2. Tera Termを起動して、次のような設定をする。
    下段の”シリアル(E)”を選択して、”ポート(R)” から”mbed Serial” が含まれるCOMポートを見つける。
    ※COM8の数字は環境や、接続を変えた時に変わる。
    micro:bitとシリアル通信をしよう

    a次にシリアルポートの設定をする。
    Tera Term上部のメニューから “設定 > シリアルポート”を選ぶと以下のような設定画面が開くので、スピードを“115200”に変更する。
    micro:bitとシリアル通信をしよう

  3. すると、Tera Termの画面に受信したシリアル値が表示される。
    micro:bitとシリアル通信をしよう
  4. 表示を止めたい場合は、Tera Term 上部のメニューから“接続断”を選択しよう。
    表示された画面は残るのでスクロールして数値のリストを見たり、値をコピーすることもできるので、別のアプリで利用することもできるよ。
    micro:bitとシリアル通信をしよう
    ※screenコマンドを実行しても、シリアル値がうまく表示されない場合は、何度か同じ作業を試してみてほしい。

Chromeブラウザで
WebUSBを使ってシリアル通信を表示する

WebUSBはブラウザ経由でUSB接続を使うことができる機能のことだ。オンライン版のMakeCodeでもWebUSBを使って機器のペアリングをすると、Windows10版のAppのようにシリアル通信の表示が可能になる。いくつか必要なものがあるので確認をして設定しよう。

micro:bitのファームウェア(0249以上)

micro:bitのファームウェアが0249以上であることを確認する。

  1. micro:bitをパソコンにUSBケーブルで接続する
  2. マウントされた”MICROBIT”というドライブの中の”DETAILS.TXT”を開く
  3. Interface Version:の行の数字が 0249以上であればOK。

Interface Versionが0249より古かった場合は、最新のファームウェアをダウンロードしよう。

  1. 1. 最新のファームウェアはmicro:bitのサイトからダウンロードできる。
    https://microbit.org/guide/firmware/
    ここで。「Download the latest micro:bit firmware」をクリックすると最新のファームウェアがダウンロードされる。
  2. メンテナンスモードで接続する。
    ①一度USBケーブルを取り外し、リセットボタンを押しながら接続する。
    ②“MAINTENANCE”というドライブがマウントされる。
    ③ファームウェアの.hexファイルを“MAINTENANCE”に入れる。
  3. 裏面の黄色いLEDが点滅し、再度自動的に”MICROBIT”というドライブがマウントされる。自動で通常のモードとして再接続される。
  4. ”DETAILS.TXT”を開きInterface Version:の行の数字が 0249以上になっていれば成功。ファームウェアのバージョンは、0250が最新だ(2019年4月時点)。

ブラウザは最新のChromeを使う

WebUSBはChromeの 65以降で利用可能だ。バージョンを確認して古い場合は更新してほしい。

  1. 右上の…のメニューから “ヘルプ > Google Chromeについて…”を選択
    micro:bitとシリアル通信をしよう
  2. バージョンが表示されるので、65以降であることを確認して古ければ更新する。
    micro:bitとシリアル通信をしよう

パソコンにmicro:bitを接続する

パソコンにmicro:bitを接続して、オンライン版のMakeCodeからデバイスのペアリングをする。

  1. MakeCodeのブロックエディタの画面の右上歯車のメニューから”デバイスを接続する”を選ぶ。
    micro:bitとシリアル通信をしよう
  2. 画面が開くので右下の「デバイスを接続する」をクリックする。
    micro:bitとシリアル通信をしよう
  3. ブラウザの接続要求のアラートが出るので、micro:bitを選択して接続をクリックする。
    micro:bitとシリアル通信をしよう
  4. シリアル通信のプログラムを書き込むと「コンソールを表示:デバイス」のボタンが表示される。
    micro:bitとシリアル通信をしよう
  5. アプリ版と同じようにグラフが表示される。
    micro:bitとシリアル通信をしよう

なお、WebUSBを使うと、プログラムの書き込みもアプリ版と同じように直接書き込まれるようになる。

ただ、アプリ版に比べて通信が途切れてしまうことがあるようだ。例えば”G:1023”という文字列が送信されるべきところ“1023”だけ受信するようなことが起こるので注意してほしい。