13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

初めての人のための1万円ちょっとでそろえる BLE112 簡単開発環境入門

Last updated at Posted at 2014-12-17

#はじめに
 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 に接続します

スクリーンショット 2014-12-16 12.13.51.png

この時、REBLE112FRへの給電は CC-Debugger から行われますので電池をセットする必要はありません。REBLE112FRの起動はオンオフスイッチとは関係なく CC-Debugger から給電が始まったタイミングで起動されているようです。後で述べるシリアルデバッグの再も、電池給電だとシリアルから読み込んだ値をご認識しているようで、デバッグ時の給電は CC-Debugger による給電がよいようです
Windows PC 用のデバイスドライバはこちらになります

TTL-232R-3V3

TTL-232R-3V3 を下記写真及び図のように REBLE112FR と接続し、Windows PC に接続します
REBLE112FRとの接続は、両者の CT を RT に、RX を TX にそれぞれクロスして接続します

スクリーンショット 2014-12-16 12.22.43.png
スクリーンショット 2014-12-16 12.24.57.png

Windows PC 用のドライバはこちらからダウンロードできます。Windows はこれが一手間めんどくさくて嫌ですね。他にも嫌な理由は山ほどありますが...

#開発用ソフトウェアのダウンロード

BlueGiga 社のアカウントの作成

BlueGiga 社のサイトからドキュメントと開発用のソフトウェアをダウンロードします。最初にユーザ登録が必要です

スクリーンショット 2014-12-16 13.42.17.png

作成したアカウントで以下のようログインします

スクリーンショット 2014-12-16 13.45.51.png

SDK のインストール

Software Release のアコーディオンボタンをクリックして開き、 "Bluetooth Smart Software and SDK v.1.3.1" をダウンロードしてインストールします。

スクリーンショット 2014-12-16 13.47.31.png

インストールした後、SDK の bin フォルダにパスを通しておくと、bgscript をビルドする時に便利です

Update tool のインストール

PC Tools のアコーディオンボタンをクリックして開き、"BLE update tool v1.0.6" をダウンロードしてインストールします

スクリーンショット 2014-12-16 13.47.51.png

ソフトウェア開発とテスト

サンプルプログラムのダウンロード

サンプルプログラムは以下のDocuments & Softwareの Example Applications と

スクリーンショット 2014-12-16 18.00.07.png

以下のsupportの Knowledgebase に用意されています

スクリーンショット 2014-12-16 18.00.42.png

Knowladge Base を開き、Bluetooth Smart / Example Projects を開き

スクリーンショット 2014-12-16 18.01.12.png

例として BGScript: hr_collecotr をダウンロードします。こちらは Central モードで動作するスクリプトの数すくないサンプルなので、Central デバイスのアプリケーションを作成する際には大変参考になります。

スクリーンショット 2014-12-16 18.01.46.png

サンプルプログラムの内容

ダウンロードしたサンプルを展開すると以下の様なファイル構造になっています

キャプチャ.2014.12.16-01.PNG

BGScript のファイルは htm_collector.bgs です
ファイルを開くと、ヘッダコメント、変数定義に続いて 111行目から以下のような関数があります。

htm_collector.bgs
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行目の以下の記述でアクティブに設定されています

hardware.xml
<usart channel="1" alternate="1" baud="115200" endpoint="none" flow="false" />

コンパイル

このスクリプトを bgbuild コマンドでコンパイルします。bgbuild は SDK をインストールしたパスの bin フォルダにあります。
bgbuild の引数には ble112用のプロジェクト定義ファイル project112.bgprj を指定します

bgbuild
bgbuild project112.bgprj

正常にビルドされると以下のように表示され、ROM イメージが out.hex ファイルとして作成されます。このファイルを先ほどインストールした update tool で reble112FR に書き込みます

キャプチャ.2014.12.16-02.PNG

update tool

update tool を起動し、右上の "info" ボタンをクリックするとデバイス種別、Mac アドレス、シリアルナンバー、ライセンスキーが表示されます(ここでは紫のラインで消してあります)
下段に表示されたライセンスキーをコピーし、上段にペーストすることで update tool が有効になります。
Browse ボタンをクリックして、先ほどビルドして作成した out.hex ファイルを選択し、右下の update ボタンをクリックしてロムの書き込みを開始します
物理的にはロムは CC-Debugger を通じて BLE112 に書き込まれます

キャプチャ.2014.12.16-03.PNG

ロムが正常に書き込まれると以下の表示になります
キャプチャ.2014.12.16-04.PNG

デバッグ

デバッグはシリアルポートへの入出力で行います。まずデバイスマネージャーを開いて、USB シリアルポート(つまり TTL-232R-3V3)が COMポートの何番にマップされているのか確認します。以下では COM8 です。
キャプチャ.2014.12.16-05.PNG

そこで、tty で com8 に 51200 bps で接続します。以下は putty での例です

キャプチャ.2014.12.16-06.PNG

接続してもコンソールは以下のように真っ黒なままです

キャプチャ.2014.12.16-07.PNG

これは、接続する前にすでに REBLE112FRが起動していて初期化コールバックの実行がもう終わっているからです。この状態では CC-Debugger は REBLE112FR への給電をおこなっているだけです。そこで、REBEL112FR を再起動させるため、CC-DEBUGGER を Windows PC につないでいる USB ケーブルを抜き差ししてみます。すると、起動シーケンスのコールバック system_boot が呼ばれ、下図のようにデバッグ出力が表示されます

キャプチャ.2014.12.16-08.PNG

#この後
開発環境の動作確認までできましたので、あとはいろいろなサンプル・アプリケーションにシリアルへのデバッグ出力や(ここではご紹介しませんでしたが)シリアルからの入力を追加していきながら bgscript のドキュメントを読むようにされるとご理解が早いかと存じます
すばらしき BLE アプリ開発に bon voyage!

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?