POLARパワーキット用データロガーの製作(準備編)
ポラールのパワーキットは、自転車で走行中のパワー(仕事率)、ペダリング指数(クランクのトルク変動)、左右ペダリングバランス、およびスピード、ケイデンスを測定でき、心拍計本体(S710i、S720i等)の側でそれらを表示・記録できる。しかし記録可能なすべての情報(心拍計の側で測定した心拍数と標高も含める)を、最も短い間隔(5秒間隔)で記録するように設定した場合、5時間弱(正確には4時間57分)しか保存できない。これは心拍計のメモリ容量からくる制限である。S710iの説明書によると、心拍数のみを5秒間隔で記録するようにした場合の記録可能時間は44時間42分である。この場合の記録回数は約3万2千回であり、心拍数は1byteで表現できるから、心拍計のメモリ容量は約32KBということになる。また、これから逆算すると、すべての情報を記録するには1回あたり10byte必要であることがわかる。
まあ、通常は5時間も記録できれば十分な気もするが、以前の記録をパソコンに転送するのを忘れて消去していなかったり、あるいはツーリングなどで長時間走る場合にはメモリを使い切ることになる。記録の間隔を変えればもっと長時間記録できるが、5秒の次は15秒となっており、間隔が空きすぎるのが気にいらない。そこで、もっと大容量のメモリを持つ記録装置、すなわちデータロガーのようなものを作成してみようと思う。
パワーキットの通信方式
パワーキットと心拍計は、マウントにある2つの接点を介して通信している。自転車を固定ローラー台に取り付け、ホイールを回転させておいてから、この接点間の電圧を測ってみると約3Vあたりを指し(電池の電圧とほぼ等しい)、1秒間隔で脈動(電圧が定期的に低下)することがわかる。勘が良ければこの時点で調歩同期方式のシリアル信号が出ていると予想できるが、波形を見てみれば確実である。しかしオシロスコープやロジックアナライザは持っていないので、最も安価な方法として、パソコンのサウンド機能(LINE入力)を使った
"簡易オシロスコープ" を使ってみた。しかしこの場合、交流成分のみしか観測できないので、波形の電位が定まらずかなり見にくい波形となる。いろいろと試行錯誤した結果、パワーキットから心拍計に送信される信号の条件は次のようになることがわかった。
| 通信方式 | 調歩同期 |
| 通信速度 | 2400bps |
| データ長 | 8bit |
| パリティ | なし |
| ストップビット | 1 |
通信速度は遅いが、その他の設定は最もシンプルでありふれたものである。この条件で、毎秒11byteのデータのかたまりが連続的に出力される。
通信条件がわかれば、次に問題となるのはデータの中身である。それを調べるにはデータをパソコンに取り込む必要があり、パワーキットの端子とパソコンを接続しなければならない。パソコンにはシリアルポート(RS-232C)があるが、パワーキット側は3Vロジックなので電圧レベルが異なる。そのためレベル変換をしなければならないが、それを手軽に行うにはRS-232ラインドライバと呼ばれるICが必要となる。ここでは通販等で入手しやすいADM3202ANを使用した。
パワーキットへの信号線の接続
パワーキットのセンサーとマウントは3ピンのコネクタで接続される。3ピンの内訳は、センサへの電源(3V)、心拍計への信号線(TX)、およびGNDのようである。マウント上部の2つの接点は、このTXとGNDそのものと思われる。パワーキット本体やケーブル類を加工せずに信号線を引き出すには、コネクタ部分で分岐ケーブルを割り込ませるのがスマートだが、このコネクタは特殊なので同じものを入手するのは難しそうだ。そこで現段階ではとりあえず、マウント上部の接点にリード線を接続(ビニルテープで仮固定)することにした。
データの内容
自転車を固定ローラー台にセットし、パワーキットに接続したパソコンでデータを取り込むようにする。ペダルのこぎ方などをいろいろ変えてデータをとった結果、パワーキットから毎秒送信される11byteのデータは次の形式であることがわかった。
| Byte順 | 内容 | 仮の記号 | 備考(換算式) |
| 1 | 0x50 | B1 | 固定値。Polarの'P' あるいは Powerの'P'か? |
| 2 | 0x20 | B2 | 車輪停止かつクランク逆回転で0x21となる |
| 3 | パワー(下位バイト) | W3 | P[Watt] = (1.72ρS2) W3 |
| 4 | パワー(上位バイト) | ||
| 5 | 左右バランス | B5 | LR = B5 / 2 |
| 6 | ペダリング指数 | B6 | PI = B6 / 2 |
| 7 | 速度(下位バイト) | W7 | V[km/h] = (3.8×10-6・L) W7 |
| 8 | 速度(上位バイト) | ||
| 9 | ケイデンス | B9 | CD = B9 |
| 10 | ホイール回転回数 | B10 | 積算値。オーバーフローは無視。 |
| 11 | 水平パリティ | B11 | 第1〜第9バイトが計算対象(排他的論理和) |
(続く)
今後の予定
・マイコンを使ったデータロガーの製作