2015/12/06

nRF24AP2による市販ANT+デバイスデータの読み込み

Team 'F'の世界記録挑戦用の機体Nextz Avantがロールアウトし、試験飛行が始まりました。

試験飛行再開は春先からになりますが、それまでにパイロットの要望でパワーメータを増設予定です。
増設するパワーメータは市販のもので、通信にはANT+規格を利用します。
そこで、データロガーHPA_Navi IIにANT+通信機能を増設すべく、市販のANT+デバイスとのシリアル通信の実験を行いました。

ANT+デバイスとの通信には自前の回路を利用することもできますが技適が必要なのでnRF24AP2を搭載した市販のモジュールBeatcraft BC-ANT-SERIAL-2を利用しました
また、ANT+デバイスとしてはスピード/ケイデンスセンサのCATEYE ICS-11を使いました。
実験風景。左側がUSBシリアル変換器、右側がANT+シリアルモジュール、手前がスピード/ケイデンスセンサ
実験はANT+テスト用ソフトウエアANTware IIを用いて行いました。
PCとはFT232Hモジュールを介して接続しましたが、正しく認識されるようです。

ANT+をマイコンから使うための情報はあまりweb上にはないようなのですが、Beatcraft ANT+デバイスの基礎が大変参考になりました。
ここで概要をつかんだ後公式ページに登録後利用できるドキュメントANT Message Protocol and Usageを読むのがよいように思います

市販のデバイスを使う際には、利用周波数の設定などを行う際にデバイスプロファイル情報が必須になります。
これも公式のドキュメントANT+ DEVICE PROFILESが整備されていますので、それをよく読んで設定します。

また、市販のデバイスを利用する際には、ネットワークの種類をManaged Networkに変更しなくてはなりません。
これには8ビットのネットワークキーが必要ですが、それもANT+公式サイトで公開されていますので、それを利用します。
ANTware IIでは下図の左側にある通り通信モジュールのオプションとして設定できます

これらの設定を行い、スピード/ケイデンスセンサから出力されるデータをシリアル通信で受信した様子が下図になります。

スピード/ケイデンスセンサとの通信の様子
ここまででANT+モジュールに流し込むべきコマンドが明らかになったので、残りはHPA_Navi IIに実装する作業だけです。
ANTware IIでは、通信のログをLog Filesメニューから参照できるので、その通りコマンドを実装します。
チェックサム等を含むANT+パケットの生成はBearcraftで公開しているライブラリを利用して行います。
ライブラリはLPC1114/PIC24F用に書かれていますが、マイコンに依存する部分はシリアル通信部のみなので、移植は容易だと思います。

パワーメータのプロファイルにはキャリブレーションコマンド等が含まれていて、スピード/ケイデンスセンサほど単純ではありませんが、春までには実用可能な形で実装を行うつもりです。