#はじめに
BLE112 の開発キット DKBLE112 はちょっと値段が高いのと、私のようなハードが苦手なピュアソフト屋にとっては難しそうな端子がたくさんついていて少し腰が引ける部分がございます。そこで、Running Electronics さんのブレークアウトボード REBLE112FR で開発環境を構築してみました。つきましては自分自身への備忘録といたしまして、開発環境の構築、サンプルプログラムの動作確認及びデバッグ出力の手順を、誠に僭越ではございますがこちらに残させていただきました次第でございます
もしもこの拙い記録がソフトウェアが大好きで BLE アプリの開発に興味はあるもののハードウェアは苦手という方のお役に立つことがありましたらそれに勝る喜びはございません
#そろえるもの
-
REBLE112FR 4000円ぐらい。ボタン電池ホルダーも実装されていて、そのまま使える便利モノです
-
CC Debugger 送料込で49$。注文すると Fedex便 でU.S.から飛んできます、というか「いま何何空港で積み替え中」とか「何何空港で待機中」みたいなリアルな過程が Web で見れてワクワクします。ロム書きに必要
-
USB シリアル変換器 秋月のTTL-232R-3V3 が1500円ぐらい。
私は使ったことがないのですが aitendo の極小USBシリアル変換モジュール [FT232-6P-ISP] の850円のモジュールとかも良さそうです。これらはシリアルポートへのデバッグ出力に利用します。尚、5Vと3.3V がありますがBLE112 は 3.3Vです -
ジャンパ線、ICクリップ
こういうのやこういうのとかで、BLE112 と USB シリアル変換器を4箇所繋ぐのに使います。 -
Windows PC
新たにご用意されなくても Excel 仕事などに普段使っていらっしゃる Windows PC で大丈夫です。BlueGiga社が提供する開発環境(BGScriptのコンパイラ、ロム焼きツール)が Windows 用のものしか提供されていないのですが、参考まで[Mac 上に開発環境を構築する記事] (http://qiita.com/shu223/items/ee409e71d6a4a2bca3b4)を[shu223](http://qiita.com/shu223)さんが公開されています
#接続
接続方法の詳細は以前に書いた記事をご参照いただけると幸いです。一言でいうと、以下のように CC-Debugger、USBTTL-232R-3V3、Windows PC、REBLE112FRの4者を結合します
CC-Debugger
CC-Debugger の下記写真のように REBLE112FR と接続し、Windows PC に接続します
この時、REBLE112FRへの給電は CC-Debugger から行われますので電池をセットする必要はありません。REBLE112FRの起動はオンオフスイッチとは関係なく CC-Debugger から給電が始まったタイミングで起動されているようです。後で述べるシリアルデバッグの再も、電池給電だとシリアルから読み込んだ値をご認識しているようで、デバッグ時の給電は CC-Debugger による給電がよいようです
Windows PC 用のデバイスドライバはこちらになります
TTL-232R-3V3
TTL-232R-3V3 を下記写真及び図のように REBLE112FR と接続し、Windows PC に接続します
REBLE112FRとの接続は、両者の CT を RT に、RX を TX にそれぞれクロスして接続します
Windows PC 用のドライバはこちらからダウンロードできます。Windows はこれが一手間めんどくさくて嫌ですね。他にも嫌な理由は山ほどありますが...
#開発用ソフトウェアのダウンロード
BlueGiga 社のアカウントの作成
BlueGiga 社のサイトからドキュメントと開発用のソフトウェアをダウンロードします。最初にユーザ登録が必要です
作成したアカウントで以下のようログインします
SDK のインストール
Software Release のアコーディオンボタンをクリックして開き、 "Bluetooth Smart Software and SDK v.1.3.1" をダウンロードしてインストールします。
インストールした後、SDK の bin フォルダにパスを通しておくと、bgscript をビルドする時に便利です
Update tool のインストール
PC Tools のアコーディオンボタンをクリックして開き、"BLE update tool v1.0.6" をダウンロードしてインストールします
ソフトウェア開発とテスト
サンプルプログラムのダウンロード
サンプルプログラムは以下のDocuments & Softwareの Example Applications と
以下のsupportの Knowledgebase に用意されています
Knowladge Base を開き、Bluetooth Smart / Example Projects を開き
例として BGScript: hr_collecotr をダウンロードします。こちらは Central モードで動作するスクリプトの数すくないサンプルなので、Central デバイスのアプリケーションを作成する際には大変参考になります。
サンプルプログラムの内容
ダウンロードしたサンプルを展開すると以下の様なファイル構造になっています
BGScript のファイルは htm_collector.bgs です
ファイルを開くと、ヘッダコメント、変数定義に続いて 111行目から以下のような関数があります。
event system_boot(major, minor, patch, build, ll_version, protocol_version, hw)
# initialize state
state = STATE_STANDBY
call system_endpoint_tx(system_endpoint_uart1, 30, "\r\nHTM Collector Demo started\r\n")
# configure scanning (125ms interval, 125ms window, passive)
call gap_set_scan_parameters($c8, $c8, 0)
# start scanning at boot (generic discovery)
call gap_discover(gap_discover_generic)
# change state (I know, kinda pointless to have the one up above)
state = STATE_SCANNING
call system_endpoint_tx(system_endpoint_uart1, 13, "Scanning...\r\n")
end
この system_boot が初期化時に呼ばれるコールバックです
system_endpoint_tx がデバッグのために出力を行う関数です。第一引数の system_endpoint_uart1 が出力先として uart1 につながるシリアルを指定し、第二引数が出力文字列の文字長、第三引数が出力文字列になります。
uart1 を使うためには hardware.xml ファイルへの定義が必要で、このサンプルプログラムでは18行目の以下の記述でアクティブに設定されています
<usart channel="1" alternate="1" baud="115200" endpoint="none" flow="false" />
コンパイル
このスクリプトを bgbuild コマンドでコンパイルします。bgbuild は SDK をインストールしたパスの bin フォルダにあります。
bgbuild の引数には ble112用のプロジェクト定義ファイル project112.bgprj を指定します
bgbuild project112.bgprj
正常にビルドされると以下のように表示され、ROM イメージが out.hex ファイルとして作成されます。このファイルを先ほどインストールした update tool で reble112FR に書き込みます
update tool
update tool を起動し、右上の "info" ボタンをクリックするとデバイス種別、Mac アドレス、シリアルナンバー、ライセンスキーが表示されます(ここでは紫のラインで消してあります)
下段に表示されたライセンスキーをコピーし、上段にペーストすることで update tool が有効になります。
Browse ボタンをクリックして、先ほどビルドして作成した out.hex ファイルを選択し、右下の update ボタンをクリックしてロムの書き込みを開始します
物理的にはロムは CC-Debugger を通じて BLE112 に書き込まれます
デバッグ
デバッグはシリアルポートへの入出力で行います。まずデバイスマネージャーを開いて、USB シリアルポート(つまり TTL-232R-3V3)が COMポートの何番にマップされているのか確認します。以下では COM8 です。
そこで、tty で com8 に 51200 bps で接続します。以下は putty での例です
接続してもコンソールは以下のように真っ黒なままです
これは、接続する前にすでに REBLE112FRが起動していて初期化コールバックの実行がもう終わっているからです。この状態では CC-Debugger は REBLE112FR への給電をおこなっているだけです。そこで、REBEL112FR を再起動させるため、CC-DEBUGGER を Windows PC につないでいる USB ケーブルを抜き差ししてみます。すると、起動シーケンスのコールバック system_boot が呼ばれ、下図のようにデバッグ出力が表示されます
#この後
開発環境の動作確認までできましたので、あとはいろいろなサンプル・アプリケーションにシリアルへのデバッグ出力や(ここではご紹介しませんでしたが)シリアルからの入力を追加していきながら bgscript のドキュメントを読むようにされるとご理解が早いかと存じます
すばらしき BLE アプリ開発に bon voyage!