こんにちは、志村です。
先日、BLEを使えるSwitch Science mbed TY51822r3がスイッチサイエンス製mbedとしては初めて、mbed OS 5に対応しました。mbed OS 5のリリース時の記事を読んでもわかるように、mbed OS 5のバージョンは5.1からリリースされています。その前にあった筈のバージョン5.0は、パートナー企業向けの開発リリース版としてこっそり公開されていたので、ユーザーからは見えなかったのですね。mbed OSは頻繁に更新されており、この記事の公開時点(2016年10月4日)では、mbed OS 5.1.4が公開されています。各バージョンのリリースノートはmbed OSのGit Hubで確認することができます。
話を戻しますが、今日はmbed OS 5のBLEの機能を試すために、Switch Science mbed TY51822r3を使って、mbed OS 5用のサンプルリストの中にあるSimple LED Controlを動かしてみます。このプログラムでは、mbedに接続したLEDの点滅をスマートフォンで制御することができます。
1. プログラムのインポート
Simple LED Controlのページの右側にあるImport into Compilerボタンをクリックすると、オンラインコンパイラにインポートすることができます。
2. プログラムについて
インポートを選ぶとmbed-os-example-ble-LEDというプロジェクト名で、オンラインコンパイラにインポートされます。main.cppはsourceフォルダの中に入っています。
3. コンパイルとプログラムの書き込み
画面上部のコンパイルボタンをクリックすると、プログラムがコンパイルされます。コンパイルに成功するとバイナリファイルがダウンロードされます。ダウンロードされたファイルをmbedにドラッグ&ドロップをして完了です。
4. 回路の準備
Switch Science mbed TY51822r3のLED2のポートにLEDと抵抗を直列に接続します。このmbedに搭載されているチップ(nRF51822)のGPIOポートは、多くの電流を流せないので、大きい値の電流制限抵抗を付ける必要があります。今回は330kΩ抵抗を使用しました。
5. アプリの準備
mbedにコマンドを送るためのアプリをスマートフォンにインストールします。
- LightBlue Explorer(iOS用アプリ)
- nRF Connect for Mobile(Android用アプリ)
6.アプリとmbedをつなぐ
Androidアプリの使い方はmbedのページで解説されているので、本記事ではiOSアプリのLightBlue Explorerを使って、mbedとスマートフォンを繋いでみます。
mbedに電源を供給している状態でアプリを起動すると、LEDという名前のデバイスが見つかるので、これをタップして接続します。
接続がうまくいくと、mbedが提供しているサービスのUUID(A000)と、キャラクテリスティック(0xA001)が表示されます。キャラクテリスティックの方をタップします。
Write new valueから1を書き込むとLEDが点灯、0を書き込むとLEDが消灯します。
今回は、オンラインコンパイラを使ってmbed OS 5を動かしてみました。mbed OS 5からはオフラインでも簡単にmbedのプログラムをコンパイルできる、mbed CLI(コマンドラインインターフェス)が提供されています。mbed CLIは他の方が詳しい記事を書いているので、そちらをどうぞ。
スイッチサイエンスチャンネルでmbed webinar(ウェブセミナー)を提供しています。webinarではmbed 2を使って、mbedのオンラインコンパイラの使い方やサンプルコードの解説などを行っています。オンラインコンパイラの使い方や基本的なプログラムの書き方はmbed 2もmbed OS 5もほとんど変わらないので、mbedを始めてみたい方は是非ご覧ください。