【パワーメーター】BLUETOOTH受信側いじる<ANDROIDとWIN>

RN42評価キットは、RN-42使用 Bluetooth無線モジュール評価キット
http://akizukidenshi.com/catalog/g/gK-07378/
PC接続してBlueTooth通信の試験をする目的らしいので、マイコンと接続する前に、PCとAndroidスマホでの受信方法を試してみました。

●インターフェースものはややこしい
BlueToothは、PCでもマウスで使っていたり日常お馴染みなのですが、それと今回のRN42評価基板はどういう関係なのかわかなかったのですが、いじっていたらだんだん判りました。
BlueToothもANT+も通信相手同士で決められたデータの構造を持っていて、プロファイルを合わせることで通信していて、
RN42は、SPP(シリアル通信)プロファイルで通信するチップで、シリアル通信として扱える便利なものです。

●接続組合わせ

接続例 送信側
CPU
アプリ
送信
デバイス
I/F
受信側
CPU
アプリ
受信
デバイス
I/F
Arduino
スケッチ
RN-42
RX-TX接続
WindowsPC
TeraTerm
PC内蔵BT
windows 
SPP server
B Arduino
スケッチ
RN-42
RX-TX接続
Android スマホ
BlueTerm
内蔵BT
無し
WindowsPC
TeraTerm
RN-42
USBシリアル
WindowsPC
TeraTerm
PC内蔵BT
windows 
SPP server
WindowsPC
TeraTerm
RN-42
USBシリアル
Android スマホ
BlueTerm
内蔵BT
無し

今回試したのは、C、D接続です。以外とすんなり接続できましたが、RN42のコマンドも何個か使いますので、マイクロチップ社のマニュアルもダウンロードもしておいたほうがいいです。
http://ww1.microchip.com/downloads/en/DeviceDoc/bluetooth_cr_UG-v1.0r.pdf

●C接続
Displayとキーボード役に、TeraTermを使います。
WindowsPCとRN42評価基板をUSBシリアル接続します。
ドライバは、FTDI社のUSBシリアルドライバを使います。
VCPドライバと呼ばれています。
http://www.ftdichip.com/Drivers/VCP.htm

解説ブログは何個かあるので、それぞれを見ながら接続作業しました。Qiitaの解説が判りやすかったです。
https://qiita.com/TakeoChan/items/a1148546d2e56b8173b8

他にも下記が具体的な解説があります。

RN-42 Bluetoothモジュールの使い方1

・RN-42側PCの接続確認
ポイント1:USBシリアル接続するとデフォルトでは、双方向の通信モードなのですが、送信側PCからコマンドモードで、RN42とUSBシリアル通信できているか確認のためにコマンドモードに切り替えます。
$$$をキーボード入力するとコマンドモードに入ります。、
Hを入力するとHELP項目がずらずら表示されるので通信OKが確認できます。ただしキーボード入力した文字は、TeraTerm画面にエコーバックされないのが使いづらいです。最初は、RN42にUSBシリアル接続したPCからコマンドを入力しますが、受信側PCとの通信が出来たら受信側PCからも同様にコマンドを送ってコマンドモードを使うことができます。

●使ったコマンド<マニュアルとHELPに書いてあります。>
①$$$ コマンドモードに入る CMDが返る
②- – -  コマンドモード終わる ENDが返る
③H ヘルプ ずらずらと全コマンドが返ってきます。
④D シリアル設定条件が返ってきます。115200bpsを確認。
⑤SN,<string>  名前設定
基板のBlueTooth名がABCD755とかなっていたので、RN-42と名前を書き換えました。工場出荷Resetしても消えません。
⑥SF,1  工場出荷RESET

・受信側PC接続
PCにBlueToothをSPP接続できるような設定があります。、
こちらのブログで解説されてます。
https://kokufu.blogspot.jp/2014/02/windows-bluetooth-spp-server.html
Windowsの設定が面倒なのですが、特別なデバイスなしで
SPP接続してTeraTermへBlueTooth無線データが取り込めるので、便利です。

接続がOKになると送信側のキーボードで入力すると受信側に
文字が表示され、受信側のキーボードで入力すると送信側に文字が表示されます。送受信双方向ができることが確認できました。これで、C接続はOKです。

●D接続
送信側PC設定は、C接続で完成しています。受信側
アンドロイドスマホでRN42のデータを受信します。
アプリは、DgradeDIY様から教えていただいた
BlueTermというAndroid 内蔵BlueToothをSPPで
送受信できるTeraTermのようなアプリです。
 https://play.google.com/store/apps/details?id=es.pymasde.blueterm&hl=ja
 アプリをインストールして、BlueTooth接続します。

PCのTeraTermと同じ操作で使えます。
下記はDコマンドを入力したときの表示です。
PCキーボードからのでたらめな文字も受信できてます。


こちらも、PCから文字を受信した後に、スマホからH文字をリターン入力す
るとHELP文字列が返ってきました。

●実際にロードバイクで使う場合
Androidのプログラムは、JAVAです。AndrodiStudioで作るのが
一般的ですが、私は、この1年トライしましたが出来ないままでおります。これからもおいそれとは作れないと思いますので
既存アプリを利用していくいがいにありません。
そこで、今回は、BlueTermの文字を拡大することで
パワーメーター値だけでも表示できることを確認しました。

●以後
RN-42からBlueTooth経由でシリアル送信されたデータをWindowsPCとAndoroidスマホで受信できることが確認できたので
マイコン接続とプログラムを作ってみます。
マイコンは、Arduinoとmbedの両方で試作試作してみようと重います。Arduinoは小さくて安いのですが、性能面と使い勝手で
mbedに負けているので、mbedも捨てがたい点があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です