mbed HRM1017 (6)温度を計測(techBASIC編)
前回、前々回とアプリを変えて温度表示をやってきましたが、今回はtechBASICを使ってBLEをする方法の説明をかねて、簡単なプログラムを作ってみました。
techBASICについて
techBASICは
iOSのアプリで、iPad,
iPhoneでBASICでプログラムを作って動かすことが可能なアプリです。techBASICはBLEのアプリも比較的簡単に作れるので、
iPad/iPhoneは持ってるけどマックを持ってないのでプログラムを作れないと言う方にはいいかもしれませんね。
techBASIC
カテゴリ:
ユーティリティ
価格: ¥1,300 (かな?)
さらに、別売りで AppBuilderもあり、techBASICのプログラムをXcodeでビルドしてアプリを作れるので、App Storeで公開することも可能です。v3.0で日本語にも対応してます。
BLEプログラムの全体像
techBASICによるBLEプログラムの全体像を図にしてみましたこれに沿って作ってある空のプログラムをダウンロードできるようにしましたので参考にして下さい。
全体の流れは
- 各種設定
- スタート
- BLE処理(を参照)
- (イベント・タッチ処理ループ)
といった感じで、空のコードをもとに、自分のプログラムに合わせて、以下の事柄を追加・変更して下さい。
- Service / Characteristic UUIDを設定
- Constant, Variableの値を設定
- BLECharacteristicを設定
- ボタンなどGUIを設定
- Events and touches drivenでイベント処理
- BLEServiceInfo関数内でキャラクタリスティックの設定
- BLECharacteristicInfo関数内で受信データの処理
BLE接続確立と通信の流れ
techBASICのBLEの接続確立の流れと、通信時の流れを図にしてみました。空プログラムの関数名と対応させてみてみて下さい。
接続時は、図の中の1〜8の流れで接続されます。
- BLE利用開始
- BLE機器発見
- BLE機器の情報
- サービスの発見
- キャラクタの発見
という感じです。
温度表示プログラム
konashi用に作ったものとそうでないもの、および、TMP102用またはADT4710用どれも使えるようにしてあります。
このプログラムのBLE用techBASIC空コードから変更もしくは追加した部分は、以下の2カ所になります。
●サービス・キャラクタリスティックの設定
プログラム最初の方にある、KONASHI=1またはKONASHI=0で、konashi用のサービスで作ったプログラムがmbed HRM1017に入れてあるか、そうでないかを変えます。
●送られてきたデータの処理
データを受け取ると、didReceiveに送られるように作ってあります。
konashiの設定の場合は、小数点以上が1バイト目、小数点以下が2バイト目に入れて送信しているので、
- tmp=Str(d(1)) & "." & Str(d(2))
となります。そうでない設定の場合は、10倍にされた温度が、2バイト目がLow、3バイト目がHighで入っています。そのままStrで文字列に変換してもいいんですが、小数点以下1桁にして表示させるプログラムを加え、
- x=(d(2)+d(3)*256)*0.1
- PRINT $ tmp USING "###.#"; x
としてます。さらに3桁目がスペースになるのを嫌うなら、LTRIMを使ってスペースを除去することもできます。
データの表示は、ログメッセージ用に用意してある関数を呼んで表示させてます。
動作確認
温度表示プログラム の動作テストをしてみましょう
- techBASIC起動
- 新規にファイルを作ってのプログラムをコピー
- 「Console」をタップ:図①
- 「Run」をタップ:図②
接続が確立したら上部に温度が表示されます
このプログラムを終了させる時は、「Disconnect」をタップ後に、右上のレンチのアイコンをタップして”ストップ”を選択して止めることができます。
プログラム編集について
実際、iPhoneでプログラムを書くのは大変だと思います。tBeditorというtechBASICのプログラムに適したエディタを作りました。私は大まかにtBeditorで作った後、
- メモにコピー
- iCloudによってシンクロ後
- iPad/iPhoneのメモからコピー
- techBASICにペースト
という手順でiPadで動作テストしながらtBeditorで修正して完成させる感じで作ってます。
さらに、もしAppBuilderを持ってれば、Xcodeで書く、または、tBeditorで書いて、そのままシミュレータや実機でテストできるので便利です
----------------
にほんブログ
| 固定リンク
「無線(mbed HRM1017)」カテゴリの記事
- mbed HRM1017 (7)techBASICでナイトライダー(2014.07.28)
- mbed HRM1017 (5)温度を計測(konashi.js編)(2014.07.26)
- mbed HRM1017 (4)温度を計測(nRF Toolbox編)(2014.07.22)
- mbed HRM1017 (3)konashi.jsでナイトライダー(2014.07.29)
この記事へのコメントは終了しました。
コメント