micro:bitとシリアル通信をしよう
2019年6月号で説明したように、micro:bitとパソコンをUSBケーブルでつなぐと、Windows10版のMakeCodeアプリではシリアル通信ができる。MacやLinuxにはMakeCodeアプリはないけれど、シリアルの値を表示させる方法はある。
また、micro:bitのファームウェアを最新バージョンにして、Chromeブラウザ上でWebUSBの設定をすると、Windows10版のアプリのようにシリアルコンソールを表示できる。
いずれの場合も、まずは以下のようなシリアル書き出しのプログラムを、micro:bitに書き込んで試そう。「ずっと」ブロックに、「高度なブロック」をクリックして表示される「シリアル通信」カテゴリーから、「シリアル通信 名前と数値を書き出す“x”=“0”」ブロックを使う。“x”は“G”、“0”には「入力」カテゴリーの「加速度“絶対値”」ブロックを組み込んでいるよ。これがうまくいったら、自分で考えたプログラムでシリアル通信をしてみてね。
Mac OSで
シリアル通信を表示する
Macの場合は標準のターミナルアプリを使用して、シリアル通信をモニターすることが可能だ。”ls”というファイルシステムのディレクトリの中身を表示するコマンドと、Mac OS にはすでにインストール済みの “screen” という画面管理コマンドを使用してシリアル通信の値を表示する画面を開く。
- micro:bitをUSBケーブルで接続する。
- ターミナルアプリを起動する。
- ターミナルの画面に ls /dev/cu.* と入力して、リターンキーを押すとMacに接続されたいくつかのデバイスが表示される。その中に ls /dev/cu.usbmodem1412402 のようなものがあれば、それがmicro:bitだ(1412402の部分はユーザーの環境により異なるので注意してほしい)
- screen /dev/cu.usbmodem1412402 115200 と入力してリターンを押すと、受信したシリアル値の表示が始まる(1412402の数字は、手順3で確認した自分の環境に合わせて変更する)
- そのままだとずっと表示し続けるので、止めたい場合は キーボードでCtrl+Aを押した後 Ctrl+Dを押す。この時のコツはCtrlキーを押しっぱなしにして、A→Dの順にキーを押すとうまくいくよ。
Linux(Raspberry Pi)で
シリアル通信を表示する
ジブン専用パソコンの場合は、標準のターミナルアプリLXTerminalを使ってシリアル通信をモニターすることが可能だ。まずは、“ls”という、ファイルシステムのディレクトリの中身を表示するコマンドと、“screen”という画面管理コマンドをインストールしてから、そのコマンドでシリアル通信の値を表示する画面を開く。
それでは、“screen” コマンドのインストールをしよう。
インターネットに接続されているか確認して、以下の手順で“screen” という画面管理コマンドをインストールする。
- LXTerminalを起動する。
- 次のコマンドを入力する。 sudo apt-get install screen
このとき、途中でインストールを続けていいか聞かれるので “y” を入力する。
シリアル通信のモニタリング
- micro:bitをUSBケーブルで接続する。
- LXTerminalを起動する。
- 次のコマンドを入力する。 ls /dev/ttyACM*
リターンキーを押すと接続されたいくつかのデバイスが表示される。その中に /dev/ttyACM0 のようなものがあればそれがmicro:bitだ(0の部分はユーザーの環境により異なる)。
次に sudo screen /dev/ttyACM0 115200 と入力してリターンキーを押すと、受信したシリアル値の表示がはじまる(ACM0の数字は手順3で確認した自分の環境に合わせて変更しよう)。
- 止めないとずっと表示し続けるので、止めたい場合はキーボードで Ctrl+Aを押した後 Ctrl+Dを押してください。この時のコツはCtrlキーを押しっぱなしにして、A→Dの順にキーを押すとうまくいく。
Windowsで
シリアル通信を表示する
Windows10ではアプリ版MakeCodeがあるけれど、10以前のWindowsを使っていたり、アプリ以外でシリアル通信をしたい場合があるかもしれない。
その場合、まずは少し準備が必要だ。micro:bitで使われているmbedというマイコンが、Windowsと通信できるようにするドライバーのインストールと、シリアル通信をモニターできるターミナルアプリケーションのインストールをしよう。
まずは、mbedとWindowsが通信できるようにする、シリアルドライバーをインストールしよう。
- mbedのWebサイトにアクセスして、Arm Mbed Windows serial port driverをダウンロードする。
https://os.mbed.com/docs/mbed-os/v5.12/tutorials/windows-serial-driver.html
- ダウンロードしたmbedWinSerial_16466.exeを実行してインストーラーの通りにインストールする。
次に、Tera Term(ターミナルアプリケーション)をインストールしよう。
- Tera Term のサイトにアクセスする。
https://ttssh2.osdn.jp/index.html.ja
- 最新版のTera Term 4.102(2019年4月時点)をダウンロードする。
https://ja.osdn.net/projects/ttssh2/downloads/70691/teraterm-4.102.exe/
- ダウンロードしたteraterm-4.102.exeを実行してインストーラーの通りにインストールする。
micro:bitをパソコンに接続して、さっそくシリアル通信を試してみよう。
Chromeブラウザで
WebUSBを使ってシリアル通信を表示する
WebUSBはブラウザ経由でUSB接続を使うことができる機能のことだ。オンライン版のMakeCodeでもWebUSBを使って機器のペアリングをすると、Windows10版のAppのようにシリアル通信の表示が可能になる。いくつか必要なものがあるので確認をして設定しよう。
micro:bitのファームウェア(0249以上)
micro:bitのファームウェアが0249以上であることを確認する。
- micro:bitをパソコンにUSBケーブルで接続する
- マウントされた”MICROBIT”というドライブの中の”DETAILS.TXT”を開く
- Interface Version:の行の数字が 0249以上であればOK。
Interface Versionが0249より古かった場合は、最新のファームウェアをダウンロードしよう。
- 1. 最新のファームウェアはmicro:bitのサイトからダウンロードできる。
https://microbit.org/guide/firmware/
ここで。「Download the latest micro:bit firmware」をクリックすると最新のファームウェアがダウンロードされる。
- メンテナンスモードで接続する。
①一度USBケーブルを取り外し、リセットボタンを押しながら接続する。
②“MAINTENANCE”というドライブがマウントされる。
③ファームウェアの.hexファイルを“MAINTENANCE”に入れる。
- 裏面の黄色いLEDが点滅し、再度自動的に”MICROBIT”というドライブがマウントされる。自動で通常のモードとして再接続される。
- ”DETAILS.TXT”を開きInterface Version:の行の数字が 0249以上になっていれば成功。ファームウェアのバージョンは、0250が最新だ(2019年4月時点)。
ブラウザは最新のChromeを使う
WebUSBはChromeの 65以降で利用可能だ。バージョンを確認して古い場合は更新してほしい。
- 右上の…のメニューから “ヘルプ > Google Chromeについて…”を選択
- バージョンが表示されるので、65以降であることを確認して古ければ更新する。
パソコンにmicro:bitを接続する
パソコンにmicro:bitを接続して、オンライン版のMakeCodeからデバイスのペアリングをする。
- MakeCodeのブロックエディタの画面の右上歯車のメニューから”デバイスを接続する”を選ぶ。
- 画面が開くので右下の「デバイスを接続する」をクリックする。
- ブラウザの接続要求のアラートが出るので、micro:bitを選択して接続をクリックする。
- シリアル通信のプログラムを書き込むと「コンソールを表示:デバイス」のボタンが表示される。
- アプリ版と同じようにグラフが表示される。
なお、WebUSBを使うと、プログラムの書き込みもアプリ版と同じように直接書き込まれるようになる。
ただ、アプリ版に比べて通信が途切れてしまうことがあるようだ。例えば”G:1023”という文字列が送信されるべきところ“1023”だけ受信するようなことが起こるので注意してほしい。