« mbed HRM1017 (4)温度を計測(nRF Toolbox編) | トップページ | 「思い出のマーニー」を観ました »

mbed HRM1017 (6)温度を計測(techBASIC編)

Techbasic_ble_mbed_hrm1017

前回、前々回とアプリを変えて温度表示をやってきましたが、今回はtechBASICを使ってBLEをする方法の説明をかねて、簡単なプログラムを作ってみました。

onetechBASICについて

techBASICは iOSのアプリで、iPad, iPhoneでBASICでプログラムを作って動かすことが可能なアプリです。techBASICはBLEのアプリも比較的簡単に作れるので、 iPad/iPhoneは持ってるけどマックを持ってないのでプログラムを作れないと言う方にはいいかもしれませんね。
techBASIC App
カテゴリ:
 ユーティリティ
価格: ¥1,300  (かな?)

さらに、別売りで AppBuilderもあり、techBASICのプログラムをXcodeでビルドしてアプリを作れるので、App Storeで公開することも可能です。v3.0で日本語にも対応してます。

twoBLEプログラムの全体像

techBASICによるBLEプログラムの全体像を図にしてみましたhappy01これに沿って作ってある空のプログラムをダウンロードできるようにしましたので参考にして下さい。

全体の流れは

  1. 各種設定
  2. スタート
  3. BLE処理(threeを参照)
  4. (イベント・タッチ処理ループ)

といった感じで、空のコードをもとに、自分のプログラムに合わせて、以下の事柄を追加・変更して下さい。

  • Service / Characteristic UUIDを設定
  • Constant, Variableの値を設定
  • BLECharacteristicを設定
  • ボタンなどGUIを設定
  • Events and touches drivenでイベント処理
  • BLEServiceInfo関数内でキャラクタリスティックの設定
  • BLECharacteristicInfo関数内で受信データの処理

Techbasic_ble_flow_2

threeBLE接続確立と通信の流れ

techBASICのBLEの接続確立の流れと、通信時の流れを図にしてみました。空プログラムの関数名と対応させてみてみて下さい。

接続時は、図の中の1〜8の流れで接続されます。

  • BLE利用開始
  • BLE機器発見
  • BLE機器の情報
  • サービスの発見
  • キャラクタの発見

という感じです。

Techbasic_ble_mbed_hrm1017_2

four温度表示プログラム

konashi用に作ったものとそうでないもの、および、TMP102用またはADT4710用どれも使えるようにしてあります。

このプログラムのBLE用techBASIC空コードから変更もしくは追加した部分は、以下の2カ所になります。

●サービス・キャラクタリスティックの設定

プログラム最初の方にある、KONASHI=1またはKONASHI=0で、konashi用のサービスで作ったプログラムがmbed HRM1017に入れてあるか、そうでないかを変えます。

Tbeditorscreensnapz001

●送られてきたデータの処理

データを受け取ると、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を使ってスペースを除去することもできます。

データの表示は、ログメッセージ用に用意してある関数を呼んで表示させてます。

Tbeditorscreensnapz002

five動作確認

温度表示プログラム の動作テストをしてみましょうpaper

  1. techBASIC起動
  2. 新規にファイルを作ってfourのプログラムをコピー
  3. 「Console」をタップ:図①
  4. 「Run」をタップ:図②

Img_5502

接続が確立したら上部に温度が表示されます

Img_5503_2
このプログラムを終了させる時は、「Disconnect」をタップ後に、右上のレンチのアイコンをタップして”ストップ”を選択して止めることができます。

sixプログラム編集について

実際、iPhoneでプログラムを書くのは大変だと思います。tBeditorというtechBASICのプログラムに適したエディタを作りました。私は大まかにtBeditorで作った後、

  1. メモにコピー
  2. iCloudによってシンクロ後
  3. iPad/iPhoneのメモからコピー
  4. techBASICにペースト

という手順でiPadで動作テストしながらtBeditorで修正して完成させる感じで作ってます。

さらに、もしAppBuilderを持ってれば、Xcodeで書く、または、tBeditorで書いて、そのままシミュレータや実機でテストできるので便利ですhappy01paper

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ

Photo  

|

« mbed HRM1017 (4)温度を計測(nRF Toolbox編) | トップページ | 「思い出のマーニー」を観ました »

無線(mbed HRM1017)」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/221673/60016934

この記事へのトラックバック一覧です: mbed HRM1017 (6)温度を計測(techBASIC編):

« mbed HRM1017 (4)温度を計測(nRF Toolbox編) | トップページ | 「思い出のマーニー」を観ました »