【PowerMeter2020】M5StickCでANTセンサ接続できた<DgradeDIY様に感謝>

パワーメーター計測システムで、校正用にPowerTapからのパワー値をM5Stack母艦に取り込んで、自作パワーメーター2種類(左右クランクトルク方式、シートチューブひずみ方式)の値と比較検証用システム開発してます。

3年前からご指導いただいている、DgradeDIY様のANT用ArduinoプログラムをM5Stickへ移植させていただきました。DgradeDIy様は、日本で初めて自作パワーメーターを開発されたお方で、英語に堪能で、高度なお仕事をされている方です。世界のサイクリングガジェットに詳しいお方で、お話しを聞きながら信州MAKERSの開発ネタとして提供いただいております。
http://dgradediy.blogspot.com/

今回は、2017年のANT接続の記事とソースを拝借して、3日かけて
何とか、動作させるところまできました。未だ、システム全体に組み込んでないので、
5月末あたりに全体が完成すると思います。



 

●参考にさせていただいた記事
①2017年5月4日の記事(基本ソースのリンクがあります)
これが基本となるソフトです。TFT液晶に、ANTセンサからの各種データを表示する機能がありますが、現在のギアの段数まで表示できる機能が開発されてます。

ANT+対応サイコンの自作(ソフトウェア編)

この記事の最後にプログラムソースのリンクが紹介されてます。ボット除けになっているので、hを追加して、000を除く必要があります。このURLへ行くと
サンプルコードページにソースの表があって、一番上の
20170504.INO  をダウンロードします。
ダウンロードされた方は、お礼のコメントをいれていただいたほうが
DgradeDIY様のモチベーションがあがると思います。何しろ超多忙なので、更新する暇がなく、大変重要なお仕事をされてます。

➁2019年4月19日の記事
最近は、ANT勢の衰退が目立っていて、ANTモジュールが市場に無くなりつつあります。国産のビートクラフト製BC-ANT-Serialも欠品になってしまて,
中国製のNRF AP2Eもモジュールを使う以外になくなってきてます。中国製のモジュールなので、国産のビートクラフト製のように丁寧に解説と使いやすい設計になってません。そこで、DgradeDIY様が使い方を解説した記事がこれです。私は、Alliの商品ページの配線図をみて配線したら、RXとTXが逆に解説してあって、それに気づくのに半日かかりました。新しいチップの場合仕様書を学習してからでないと動作ができないという基本を忘れてました。
DgradeDIy様の記事
http://dgradediy.blogspot.com/2019/04/arduinoantzwift.html

Nordic社の仕様書はサポート/ドキュメントにあります。
https://infocenter.nordicsemi.com/pdf/nRF24AP2_PS_v1.2.pdf?cp=10_6_0_0

 

●トラブった点備忘録
①nRF 24 AP2モジュールの配線
・仕様書を読まずにAllliの商品ページのピン配置で配線したら動作しなかった
=>1日無駄にした、Alliの古い商品ページは、3番ピンがTX4番ピンがRXと書いてあったら、DgradeDIy様のブログ写真だと3番ピンがRX4番ピンがTXで正解であった
・SleepピンをGNDへSuspendピンを3.3Vへ結線しないと動作しないことを知らなかった
=>DgradeDIy様のお写真の通りに配線すれば1日無駄にしなかった
➁ボーレートが読みにくい
ボーレートのバンプが小さすぎて、虫眼鏡で見てテスタをあてないとボーレートが解読できません。BR1,BR2,BR3のチップ抵抗をあててみるとGNDになっているのとVccになっているものが混在していて、9600bpsになっているのが判るまで時間がかかって手間取りました。
③ANTのプログラムがちんぷんかんぷん

gistに置いてありますが、arduinoIDE  M5StickCです。
動作するか自己責任で使ってください。
https://gist.github.com/dj1711572002/3a07b1dd6ef038d8e5f3f46dc94b83c3

これは、どうしようもないのですが、DgradeDIy様が作った仕様から自分の仕様への変更箇所を1行ずつ変更をかけては、コンパイルしてエラーがでるか確認しながら進めていきました。訳がわからないところをコメントアウトするとエラーになることが多々ありますので、複数行をまとめて消去したりコメントアウトすると収拾がつかなくなります。1歩1歩コメントアウトしていくので、コンパイルの回数が半端ではありません、しかも、M5シリーズはライブラリーが大きくて1回のコンパイル時間が純正arduinoの数倍かかるので、この作業だけで1日くらいかかります。

●主な仕様変更点


①Arduino用のプログラムなのでANTとの接続がSoftwareSerialになっている。
それを、M5StickのSerial1に一括で置換した。setupに1行追加
Serial1.begin(9600, SERIAL_8N1, 26, 0); // EXT_IO To NRF AP2E 26->TX 0->RX
=>Alliの誤表記のおかげで26番がRX、0番がTXに変更となってしまった

➁TFT液晶は使わないけれど、消さないで、そのままにしておく。

=>うっかり消すとそこいら中エラーになって収拾がつかなくなります。

③デバッグ用、初期設定用のprintlnは、当初はいじらない。
一歩一歩コンパイルを通していきます。

最後に動作できるようになってから、1行ずつ消して、コンパイルエラーにならないか
確認しながら一歩一歩コメントアウトしていく。1日がかりで、改造します。

④M5Stickの液晶表示部分を追加します。
loop()内でSerial.print()があるので、そこの下にM5.Lcd.print()を追加していきます。
使うのは、
●パワー値Serial.print(“P:”);の下部にパワー値iRev1とoldHeartRate値を表示

/==========================M5 POWER Display==============================
t_1=t;
t=millis();
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setRotation(3);
M5.Lcd.setTextSize(2); // 文字サイズを2にする
M5.Lcd.setCursor(10, 10);
M5.Lcd.printf(“%3dW”,iRev1);
M5.Lcd.setCursor(70, 10);
M5.Lcd.printf(“%3dbpm”,oldHeartRate);
M5.Lcd.setCursor(10, 40);
M5.Lcd.printf(“%4d msec”,t-t_1);

//==================================================================

 

⑤ANTはGARMINが参入障壁になっている
ANTのモジュールは、暗号キーがないと動作しないようになってます。GARMINの陰謀(ANT規格は、Garminカナダの子会社が開発した)だと思います。しかし、ANTの会員になればPUBLIC KEYが容易にみられるので
会員になってログインしたらPublicKeyと検索すればたどりつきます。
DgradeDIY様の公開ソースには、0x55が8個並んだダミーのKEY書いてありますので
ANTのHPで見たPublicKEYに書き換えればモジュール動作するようになります。
ANTの会員登録はこちらからです。https://www.thisisant.com/register/

⑥デバッグが大変
ANTの値を送信するのにローラ台でこぐわけにもいきませんのでDgradeDIY様に教えていただいた、SimlANT+を使って、あたかもローラ台でパワーメーターが稼働している状態でデバッグします。私の場合は、
refresh->Add Simulator->DeviceProfileのBike Power Sensor(Wheel Torque)を選んで->ScriptがでてくるのでRun押し->Properties欄下部Turon On 押し
->Output ANT Messagesを見ると送信データが次々と追加されていれば送信OKで、デフォルトのScriptでパワー値が数秒おきに0W~760Wくらいまでステップで変化していきます。このPowerデータがANTドングルで出力されます。これをnRFAP2Eに受信させてプログラムのデバッグを行います。このやり方は下記ローラ台の記事にものってます。
  SimlAnt+もANTの会員登録しないと入手できませんが、
会員登録は無料で何も縛りはありません。

【PMD2018】EliteQuoboDigital再開/My E-Training PC版使う<SimlAnt+で接続チェック>

 ここで、パワータップに相当する。WheelTorqueを選んで動作させてW数をANT送信させます。

 

●以後
  6月からシステムを実稼働させてローラ台で各種データをとりながらデバッグしていきます。ANTのプログラムに関しては、私はちんぷんかんぷんなので、今回のM5Stick用のソースも公開するレベルではありません。
  ソース元のDgradeDIY様と相談して、公開するならDgradeDIY様のM5シリーズ用としてDgradeDIy様ソース置き場においてもらうのはいいのではないかとおもいます。

どうしても早く欲しいかたは、1週間くらい時間をつぶす覚悟で、デバッグ作業を行う必要があります。私の知っている程度のアドバイスはできますが、DgradeDIY様が開発元ですが超多忙なので、サポートする時間は無いので、自力でやる以外にないです。

 

 

 

 

コメントを残す

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