ラベル パワーメーター の投稿を表示しています。 すべての投稿を表示
ラベル パワーメーター の投稿を表示しています。 すべての投稿を表示

2019年4月19日金曜日

新しいひずみゲージの貼り方を試しました

■4iiii社のひずみゲージの張り方
4iiiiの特許出願



クランクアームに直接ひずみゲージをはっていない。
クランクアーム(100)に接着剤(190)でアルミのプレート(195)を張り付け、そのプレートにひずみゲージ(102)を張っている。

これでもひずみを計測できるようです。

ということで、試してみました。
クランクの上に2mm厚のアルミプレートを貼りました。




アルミプレートの上側にR1,R3を、下側(クランクアーム接着面なので、クランクとアルミプレートにサンドイッチされてます)にR2,R4を配置。(写真の赤丸内、緑のひずみゲージがアルミ用、茶色のは鉄用で失敗したものをそのまま残してるだけです。)


クランクアームにトルクがかかり曲がりが生じると、その曲げがアルミプレートにも発生するので、アルミプレートのひずみを測定すれば、トルク測定が可能、というものです。
長期間つかった場合の信頼性は要検証ですが、とりあえず、動作するようです。
初期のゼロオフセット値がけっこうバラつく感じはしますが・・・
【2019/05/24追記
やはり、アルミ素材に鉄用のひずみゲージを張り付けた場合と同じようにゼロオフセット値が安定せず、コロコロとオフセット値が変化し、実用化は不可でした。

この方法だと、アルミプレートを瞬間接着剤でクランクアームに接着すれば、瞬間接着剤はがし液でプレートをはがして、再利用、ということも可能です。
ひずみゲージを貼る位置をあれこれ試すには、よい方法かと思います。

■クランクの表面を削るか
4iiiiの初代パワー計は、キットとして販売され、ユーザが自身でエポキシ接着剤を使ってパワー計センサーユニットをクランクに張り付けるキットとなっていました。
このとき、クランクアーム側は、サンドペーパーで削るのですが、アルミ面を完全に露出するまで削ることは求めてませんでした。




もちろん基本形は、クランク表面を600番の耐水ペーパで削り、完全にアルミ面を露出し、そこにロックタイト401で接着、ということになりますが、この程度けがいた状態でもOKな事例もあるようです。

■ひずみゲージの種類
Amazonの激安ひずみゲージでも、うまく機能させることに成功している方もいらっしゃいます。
http://shinshu-makers.net/shinshu_makers/2018/08/25/%E3%80%90%E3%83%91%E3%83%AF%E3%83%BC%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC2018%E3%80%91%E3%83%9A%E3%83%80%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E5%82%99%E5%BF%98%E9%8C%B2/

激安ひずみゲージもそれ自体は、よく知られた製法で作られており、機能するもののようです。
ただ激安品は、アルミ用ではなく、鉄用です。
当方のスキルでは、鉄用のひずみゲージをアルミに張って、うまく動作させることはできておりません(3日前に試しに鉄に張ったところ、これは正常に動きました)。
うまく動かせる方もいるので、当方が何かを間違ってると思います。

日本メーカのアルミ用ゲージは、2mmと5mmの長さのものが比較的容易に入手できるようです。
ただ2mm品は、クランクアーム用には感度が足りないので、5mmを利用した方が楽だと思います(東京測器さんでは、5mm品も販売しているようです)。

経験上、面積が小さく感度が最も高いのはOMEGA社のものでした。
値段も最も高いのですが、2つのゲージが並列になっているものもあり、扱いやすいです。

4iiiiのパワー計を開発された方が、趣味でパワー計を開発していたころのブログです。たしか、OMEGAのものを利用されていて、私はこれをまねしたこともあります。
http://keithhack.blogspot.com/2013/05/testing-results.html



2019年3月14日木曜日

パワー値の算出とキャリブレーション


■パワー計のパワー算出式
パワー(watt) = トルク × 角速度

これをプログラムコードにすると
Power=Torque*(CadenceRPM/60)*6.28

以下、前回記事のAndroidパワー表示アプリで使用した、パワー算出コードです。

//calc Power
 iCdc = (6000000/iMills);  //ケイデンスを算出
              //iMillsはクランクが360度回転するのに要した時間ミリ秒

 iRead=iRead-(int)iZero; 
    //読み取り値平均からゼロオフセット値を引き、歪の変化量を抽出
             
iTorque =(iRead * 0.175 / iSlope); //スロープ値からトルクNmを算出
                  // クランク長175mm
if (iTorque <= 0) {iTorque=0;};
iPower  = (int) (iTorque * (iCdc/60*6.28)); //パワー(ワット)を算出


■ゼロオフセット値(iZero)のキャリブレーション
 負荷ゼロのときのひずみゲージ値を取得します。
 重りなしでクランクを地面に垂直に真下に向けて、ひずみゲージの値を読み取ります。
 5回計測して、 最高値と最小値を除いた3回分の値の平均をゼロオフセット値とします。
 市販のパワー計で、皆さんがよくやってるキャリブレーションです。
 温度が変わると、ゼロオフセット値も変化するため、キャリブレーションが必要になります。

■スロープ値(iSlope)のキャリブレーション

スロープ値=ひずみ変化量÷トルク(Nm)

クランク長:175mm
おもり重量:2.605Kg
の場合のトルク(Nm)= 2.605×9.81×175/1000 = 4.47213375

ゼロオフセット値:928788(実測値)
(クランクを垂直に真下に向けおもり無しのときのひずみゲージの読取り値)

クランクを3時方向(下記のwatteam方式は9時)に向けておもりを付けたときの値 :930838(実測値)

上記のひずみ変化量 = 930838-928788 = 2050

したがって、
スロープ値 = 2050/4.47213375=458.39
というように算出します。

これを自動計算するスプレッドシートを作りUPLOADしました。
ttps://sites.google.com/site/myfiles1138000
本日の日付の入ったXLファイルです。
(実際にアクセスする場合、末尾の000を削除して1138で終わるようURLを修正する必要があります。ロボット除けのためで、お手数をお掛けします)



watteam社は、ユーザが自身でスロープ値のキャリブレーションを行う際、以下の方法を指示しています。
オモリの水入りバッグ(5Kg程度)を両方のクランクにつけているのがミソです。

私は、オモリのペットボトルを片側につけ、ペットボトルの重さに苦労してましたが、バイクを逆さにして両方のクランクにオモリをつけると楽そうです。
天才的発想と感心してしまいました。


















オモリは、2.6Kg程度では軽すぎで、Powertap比で最大10%程度の差が出ます。
SRM社は20Kg程度を使っているそうです。
本来は、体重に匹敵する数十キロの オモリが必要です。
数十キロの重りはぶら下げられない・・・と思ってましたが:

https://shinshu-makers.net/shinshu_makers/2017/03/21/%E3%80%903%E6%9C%8821%E6%97%A5%E3%80%91%E3%83%91%E3%83%AF%E3%83%BC%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%EF%BC%9C%E6%A0%A1%E6%AD%A3%E5%8F%B0%E8%A9%A6%E9%81%8B%E8%BB%A2%E3%83%AD%E3%83%BC%E3%83%89/

すごいアイデアです。やはりプロ中のプロの技術者は違うと感心しました。
耐荷重40Kgということで、こちらが王道かと思います。


■ その他の校正方法

1. パワータップハブで校正

後輪にパワータップハブをつけ、サイコンにパワー値を表示し、
自作パワーメーターのスロープ値を変更していき、パワータップと同じパワー値の表示になるようにします。
お手軽なうえ、「パワータップと同じ値がでている」という安心感があります。


2. 他人頼み校正
自作パワーメーターのスロープ値を適当に入れて、時速30Km/h時に200wくらいと表示されるようにします。

次にパワーメーター付きのバイクに乗ってる仲間とヤビツ峠とかを一緒に上り、一緒にゴールして平均何ワットだったか聞き出します。
相手との体重差を計算にいれつつ、自作パワーメーターと何ワット差があるか把握して、その差をなくすようスロープ値を変更します。
間違っても、自分よりも速い人と一緒にいってはいけません。
千切られたうえに、「平均出力は320wくらいかな」とドヤ顔されて、
普段の練習方法の校正が必要と凹んでしまうだけです。

■ご参考
パワー、トルク、角速度の解説動画です。
 https://www.youtube.com/watch?v=MO5Ylm9qJ5Q
解説者の方は、世界で最初に自作パワーメータの作り方を公開し、後に4iiii社と組んで商品化したエンジニアです。
この動画は、4iiiiと組む前に、自作パワー計Version3を趣味で製作された際に公開されました。

私は、パワーとトルクの違いも説明できなかったド素人ですが、こちらの方が公開された情報をもとに、パワー計の作り方を学びました。

彼はブログの中で、エンジニアとして、この世に革新的なものを生むには、 まず自分が基本的な事項を公開し教える、とのポリシーのもと、情報公開をされていました。
ありがとうございます。








誰でも簡単!?手作りパワーメーター(準備中)

現時点で最もお手軽に作れるクランクアーム型パワーメーターを製作しました。

■必要なハードウェアは
1)歪ゲージ付きアルミクランクと
2)電子回路

電子回路の基本モジュールは
- ADコンバータHX711(約150から350円。eBay、秋月等)と
- 無線マイコンBL652(約900円@Digikey)
の2つのみです。




■動作原理
電子回路に通電すると、
- マイコンBL652がADコンバータHX711にひずみゲージの値を読み取るよう命令を発行
- HX711は、約80回/秒でBL652にひずみゲージの値を送信
- クランクが1回転し、REEDスイッチがバイク・フレーム上のマグネット上を通過すると、REEDスイッチが磁力でONとなり、BL652が1回転に要した時間(ミリ秒)とそれまでに取得したひずみゲージの読み取り値の平均値をBLEで無線送信
- AndroidでBLE信号を受信し、パワー値を算出し、画面にパワー表示

以降、この繰り返し
です。

■組み立て

各電子部品を以下のように結線します。


赤線と黒線は、電源ラインです(赤が+、黒が-)。
ADコンバータとマイコンの接続は、緑とオレンジの2本のみの簡単配線です。

電池は、爆発リスクがなく充電できるeneloop、これをAE-XCL102D333CR-G(300円@秋月)で3.3vに昇圧しています。

HX711は読み取り速度を80Hzに変更(PIN15を浮かせてVDDに接続)しておきます。
HX711をひずみゲージに接続します。
<解説準備中>



個々のひずみゲージはただの可変抵抗と考えられ、プラスマイナスの極性はありません。
でも裏表はあるので、張り付けるときは、要注意です。

私は、アルミ用のひずみゲージを使用しています。
鉄用のは、未だに使いこなせておりません。

張り方はこちらで紹介されています。
https://shinshu-makers.net/shinshu_makers/2019/03/11/%e3%80%90mft2019%e3%80%91%e7%b0%a1%e5%8d%98%e8%87%aa%e4%bd%9c%e3%83%ad%e3%83%bc%e3%83%89%e3%82%bb%e3%83%ab%e8%ac%9b%e5%ba%a7%ef%bc%91%ef%bc%9c%e5%8d%8a%e6%97%a5%e3%81%a7%e4%bd%9c%e3%82%8c%e3%82%8b/

ありがとうございます。

ひずみゲージは4個を1組にWheastone bridge(下のOMEGA社の資料の図B)として結線します。
なぜか・・・
頭の良いWheastone氏がそれがよいと考えたから。
それを真似すれば間違いない。
当初は、本当にこんなレベルでやってました。








配線が無事に完了すると(120Ωのゲージの場合)
Exc+とExc- 間は約120Ω
Exc-とSig+間は約90Ω
Exc-とSig-間は約90Ω
上記から大きく抵抗値がずれる場合は配線に失敗してるので、見直します。

クランクへの貼り付け位置は、下のOMEGA社資料にある、bending strain計測用の図Cの位置に貼るのが基本のようです。





ハード的にはこれだけです。
あとフレームに100均マグネットを一つ、クランク上のReedスイッチ(1パック300円@秋月)が通過するそばにはります。

以下、パイオニアの説明書の引用ですが、同じように磁石をフレームに貼ります。
“マーク” との記載あるクランク箇所にReedスイッチをつけます。


ソフトウェアについては、
AndroidからマイコンBL652に、パワー計のファームウェアをUPLOADし、
<UPLOAD方法要説明追加>
対応アプリをAndroidにInstallすれば、パワー表示できます。

上記はデバッグ・アプリです。
クランク上のBL652からは、「:;001812E004D00268」
というフォーマットで文字列がBLE無線送信(advertise)されています。

この文字列の意味は上の図のとおり、
青□が歪ゲージの読取値(平均)
緑□が温度(BL652内蔵温度センサ)
ピンクがクランクが360度回転に要した時間ミリ秒
赤字がこれらをもとに算出したパワー値(3回転Average)

上記のAndroidのデバッグ・アプリは、このadvertiseを受信し、
パワー値を算出し、表示しています。
このadvertise送信を受信する方法は、connectionをはる必要がないので、安定して受信できるメリットがあります。
BLEのconnectionが切れて、データを受信できなくなることがなくなります。

ただ、このADVERTISEを1秒間に複数回受信できるのは、私の知る限りSONYのXPERIA Zシリーズのみです。
ジャンクなAQUOS, ARROWS, GALAXYのいづれも、受信が安定せず、最悪6秒程度、データを受信できない場合もありました。
BLEチップのファームかドライバの実装の問題のようで、ANDROID OSからでは、どうやっても解決できませんでした。


BLE無線送信用のファームウェア(.inoファイル)と
Androidデバッグ・アプリ(.zipファイル)のソースコードをUPLOADしました。
ttps://sites.google.com/site/myfiles1138000
本日の日付のファイル名です。
(実際にアクセスする場合、末尾の000を削除して1138で終わるようURLを修正する必要があります。ロボット除けのためで、お手数をお掛けします)

Androidの開発環境は、
Ubuntu 16.04
Android Studio 3.1.2

【ANT+対応(ZWIFT対応)について-ご質問へのご回答】

ZWIFTでパワーデータを受信するには、パワー計がBLEかANT+のPowerプロファイルに対応する必要があります。

今回の記事のパワー計は、いずれのパワー計プロファイルにも対応していません。
あくまで、BLEのAdvertiseをAndroidで受信して、パワー表示をしてます。



これをANT+に対応するには、
1.市販品のようにクランクからANT+で無線送信するか、
2.パイオニアのように一旦サイコン側でパワーデータを受信し、ANT規格に変換して送信しなおす必要があります。

上記1.は、クランク上の電子回路が複雑になります。クランク上の電子回路はその衝撃と遠心力で故障リスクが高いため、なるべく簡素化したいので、ANT送信モジュールは載せたくありません。
上記2.は、AndroidでANT無線送信する手段が考えられますが、簡単に作れるソースコードを持ち合わせておりません。

そこで、クランクからAdvertiseされてる無線データを拾い、ANT+規格に変換してZWIFTやGARMINに送信するデバイス「ANTコンバータ」を作りました。



クランクのデータは、AdvertiseとしてTV放送波のようにbroadcastされているので同時にAndroidとANTコンバータで受信可能です。

ハードの構成


BL652でクランクのデータを受信し、ArduinoProMiniにTx信号線で送信、
Arduinoは、HARDWARE Rx端子で受信して、パワー値を算出、ANT送信モジュール(D52またはAP2モジュール。詳細は2019年4月19日の「ArduinoとANT無線中継機とZWIFTオーバーテイクボタン」にあります)でANT送信します。

ANT+については、2019年5月現在、自作パワー計でもZWIFTはパワーデータを受信しています。
ただ、ZWIFTの問題として、PCのスペックが低いと、時折0Wと表示されてしまう問題を抱えているようです。


ANTコンバータ用のBL652とArduinoのソースコードを以下のサイトに置きました(2019/05/25の日付をファイル名としています)。

(実際にアクセスする場合、末尾の000を削除して1138で終わるようURLを修正する必要があります。ロボット除けのためで、お手数をお掛けします)

ttps://sites.google.com/site/myfiles1138000

なお、ANT通信を行うには、NETWORK KEYを入手してソースコードに書き込む必要があります。
このあたりは信州Makers管理人様が詳しく公開されております。
いつもありがとうございます。
http://maru-yo.net/shinshu_makers/2017/08/15/%E3%80%90%E3%83%91%E3%83%AF%E3%83%BC%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%80%91antatmega328p%EF%BC%88%E5%86%85%E8%94%B58mhz%E6%8E%A5%E7%B6%9A%EF%BC%9C5v-3-3v%E3%82%82%EF%BD%8F%EF%BD%8B%EF%BC%9E/







2018年1月3日水曜日

最安パワー計製作計画 プチ成功

クランクアームにひずみゲージを貼り付けるパワー計では、クランクアームの捻じれの程度によって、見かけ上パワー値が上下してしまう問題がありました。
クランクアームの捻じれは、ペダル軸の外側を踏むとより大きく発生します。

通常踏んでいる55mm地点付近よりも110mm地点を踏んだ方が、クランクアームの捻じれが大きくなり、見かけ上のパワー値が大きくなってしまいます。

そこで、この見かけ上のパワー値を補正して真のパワー値を算出する方法を試しました。
すでに各社の特許出願に記載されている技術で、何も独創的なものはありません。

ひずみゲージセットアップ

曲げ計測用(赤丸)
ペダルを踏むとクランクアームが下方向に曲がり、クランクアームの上面が伸び、下面が縮みます。
この変化を赤丸ひずみゲージでとらえて、電圧としてフィードバックします。

ねじれ計測用(青丸)
クランクの側面に45度の角度でひずみゲージを貼り付けます。クランクアームに捻じれが生じると、捻じれ方向により、片側のひずみゲージが伸び、もう一方のゲージが縮みます。このように2つのゲージでひずみを捉えて電圧に変換することのより、2倍の感度を実現します。

実物・・・汚い・・・


ハードウェア構成
今回、2系統のひずみゲージ・ブリッジからデータを取得するため、ひずみゲージが返す電圧の変化をデジタルに変換するADコンバーターを2個設置しました。



HX711は1個でも3チャンネルの接続端子がありますが、2チャンネル分を同時に80回/秒で変換するのは無理と思い、ADコンバータを2個づけにしてみました。
Arduinoマイコンから読み取りコマンドを同時に2つのADコンバータに送信し、結果を同時取得します。

ADコンバータHX711からの読み取りルーチンは以下のとおりです。
long AE_HX711_Read(void)
{
  long data=0; long data2=0;
  uint8_t dataary[3] = { 0 };
  uint8_t filler = 0x00;

  while(digitalRead(pin_dout)!=0);
  while(digitalRead(pin_dout2)!=0);//メモ:2つのHX711が両方ともREADYになってから読み込み開始しないと不正確なデータになってしまう。1個がreadyならもうひとつも・・というのはNG。
  delayMicroseconds(10);
  for(int i=0;i<24;i++)
  {
    digitalWrite(pin_slk,1);
    digitalWrite(pin_slk2,1);
    delayMicroseconds(5);
    digitalWrite(pin_slk,0);
    digitalWrite(pin_slk2,0);
    delayMicroseconds(5);
    data = (data<<1)|(digitalRead(pin_dout));
    data2 = (data2<<1)|(digitalRead(pin_dout2));
  }
  digitalWrite(pin_slk,1);
  digitalWrite(pin_slk2,1);
  delayMicroseconds(10);
  digitalWrite(pin_slk,0);
  digitalWrite(pin_slk2,0);
  delayMicroseconds(10);

  A2D_CH1=data;
  A2D_CH2=data2;
  return data;//^0x800000;
}

しかし、ここでHX711固有の問題が発生。
HX711は、AD変換するために約10ms程度ひずみゲージに通電する必要があります。
これを1秒間に80回行うと、ずっーーーーとひずみゲージに通電することとなり、ドリフト(じわじわと読取値がズレる)が発生しました。
このドリフトが20分以上も収まらない状況で、「最初の数十分はパワー値が安定しないパワー計」ができてしまいました。

よい解決策がみつからないので、HX711の利用は一時保留としました。

そこで、ADコンバータを最先端ながらコストは10倍以上のAD7124-4に代えました。
これは1つのコンバータで4chの入力があるので、今回の2ch入力には、1個で足ります。

これで実験しました。
ねじれ計測用のゲージと曲げ計測用ゲージの計測結果に基づくパワー値等をシリアルで無線転送したログの一部です。
55mm地点のペダリング3回転分と110mm地点ペダリング3回転分です。

赤線のAxxx.xxの数値は、曲げ計測用ひずみゲージから算出したパワー値の3回転平均で、約300wです。
このときのケイデンスは、パワー値の2行上のc5080、c5084、c5115をそれぞれ100で割った値で約50RPMです。
それぞれの赤線の2行上にあるA303、A298, A306は捻じれ計測用ひずみゲージから算出したパワー値で、こちらも約300wです(やや校正があまいですが・・・)。

同一負荷の状態でペダリング位置を110mm地点にずらすと、ケイデンスは約50rpmのままですが、パワー値は緑線の値で約330wです。
他方、捻じれ計測用ひずみゲージの値は360w強で、より捻じれに反応してるのが分かります。
本来約300wとなるべきところ、クランクの捻じれにより見かけ上のパワー値がそれぞれで330w、360wと増えています。

固定ローラで、常に55mm地点でのみペダリングをするのであれば、曲げ/ねじれ計測用の一方のひずみゲージだけでパワー値を算出しても問題ないと思います。
実走でダンシングとかするとそうもいかないので、補正が必要です。

補正は、曲げ計測用ゲージとねじれ計測用ゲージの乖離率をベースに補正係数を割り出し、補正してみました。
ペダリングを55mm地点より外側で行うと、55mm地点からの距離に比例して、見かけ上のパワー値が上昇します。

青線の値が補正後の値で、55mm地点ペダリング同様、110mm地点でも約300wとなりました。
この点では、実験成功です。
激安ひずみゲージでも、この補正方式を採用すれば、パワー計として機能しそうです。

4iiiiのパワー計は、これと同じ技術で、精度を確保するため、ひずみゲージを4×2=8枚使用している、と開発者がWEB上で公言しておりました。
最安パワー計を目指すと、8枚も使えないため、1×2=2枚でどのような結果となるか実験する予定です。

数千円の自作パワー計でも、実用的なパワー値は表示されるので、普及すればむやみに上り坂でペースアップする人が減るはず・・・
これをチーム代表に提案するも「いや、登りで上げすぎちゃう人は、パワー計ついててもなおりません」との意見をもらっております。

今回のコードをこちらにアップロードしました。
ttps://sites.google.com/site/myfiles1138000
(20180103.inoというファイル名です。実際にアクセスする場合、末尾の000を削除して1138で終わるようURLを修正する必要があります。ロボット除けのためで、お手数をお掛けします)

なお、私がAD7124の使い方が変わっていないようで、しばしばゼロオフセット値がずれる問題がでておりますが、何が原因かわかっておりません。



2017年10月23日月曜日

最安パワー計製作計画 - 失敗編

最安24bit ADコンバータHX711モジュールが秋月から発売されている、と信州MAKERS管理人様より情報をいただいておりました。

秋月では350円、eBayでは100円未満のもあります。その名称にかかわらず、セブイレブンでは取り扱いがないようです。

これを利用して価格優先パワー計を製作してみました。

HX711は温度計を内蔵せず、温度補償機能を簡単に実装できないため、パワーメーターというより、Power Estimatorと呼ぶほうが適切かもしれません。

◆ 基本動作と使用部品

クランクアームのひずみゲージの値をHX711で読み、Arduinoでパワー値を算出後、SPP-CでBluetooth送信、PCのteratermやAndroidのbluetermアプリで受信・表示する、というものです。





◆ ひずみゲージ 約200円@ebay

前回までは、スパイダー・アームにひずみゲージを貼っておりましたが、走行中にランダムにゼロオフセット値が変化することがある、という問題が出ております。

そこで、新しいひずみゲージの貼り方を試してみました。

ネットで海外の自作パワーメータ製作者の方が投稿していた方法です。

写真は右側クランクアームで、ペダリングすると、アームのひずみゲージ面が右方向に延び、左のひずみゲージが伸び、右のひずみゲージが縮みます。

クランクアームの裏面の対象位置にも同様にひずみゲージを貼り、こちらは、ひずみゲージ面の縮みにより生じるひずみの変化を電圧に変換します。


◆ADコンバータHX711 約100~350円

 HX711は仕様上は、10SPSか80SPS(1秒間に10サンプル計測か80サンプル計測)でADコンバートが可能です。

しかし、秋月のモジュールでは、10SPSに固定されています。

10SPSでは、パワー計として使えないので、80SPSで動作するよう改造します。

データシートをみると、15番ピンをGNDに落とすと10SPSに、VCCに上げると80SPSになるようです。

早速、15番ピンとGNDをつなぐパターンをカッターで切断します。


結果・・・失敗。

見た目は切断されましたが、テスターでは、15番ピンはGNDとつながってました。

ならばと、15番ピンをプリント基板から浮かせて、GNDから分離する方法を試みます。

ゼッケンピンの針先部分で、15番ピンを上方向に持ち上げる圧力をかけながら、半田ごてを当てて加熱。
簡単にピンがプリント基板から浮き、無事に基板上のGNDから分離されました。

浮いた15番ピンをお隣の16番ピンVCCに半田付けします。



これで80SPSで動作するようになりました。


◆Arduino 約200円@ebay

 消費電力の低いArduino ProMiniの8Mhz品を使ってます。

これをさらに消費電力を落とすため、prescalerで4Mhzに落として駆動します。

 HX711とArduinoは、電源線(VCC, GND)に加えて、HX711のData線、Clock線の2本をそれぞれPIND6, PIND7につなぐだけで動作しました。

 今回のArduinoのソフトウェアはいつもの場所に置きました(余分はコードもいっぱいはいってますが)。

 ひずみゲージのゼロオフセット値やスロープ値をArduinoのEEPROMに保存し読出す関数は、こちらのサイトのものを使わせていただきました。ありがとうございます。
ttp://projectsbiotope.blogspot.com/2010/11/2-eeprom.html


◆昇圧DCDCコンバータ+REEDスイッチ+磁石+SPP-C 約700円

 今回は単四電池で駆動したため、1.2v->3.3vのDCコンバータを利用しました。

 角速度を算出するためにREEDスイッチを使用し、フレームには磁石を張り付けています。

 IMUは、信州MAKERS管理人様よりアドバイスはいただいておりますが、まだ実装できておりません。

 Bluetoothモジュールと置き換えでArduinoからのシリアルデータをもとに、ANT+規格でパワー値を送信するモジュールを別途製作中です。これを取り付ければ、ANT対応となります。


部品代の総額は1500円程度とお手頃価格に収まりました。

電子部品を3Dプリントしたオレンジのおにぎりの中収めます。
(イメージ図)


試作中で、ひずみゲージとその配線の整理ができておらず、実際はこんな小汚い状態です




基板類はすべておにぎりに収まり、また、おにぎりはこの位置だとペダリングに干渉することなく、取り扱いが楽です。

早速実験開始・・・結果・・・失敗。

ひずみゲージの配置/種類がNGでした。

同一負荷、同一ケイデンスで回しつつ、フラットペダルの踏位置を内側から外側にずらしていきます。

内側=155wで、外側=180w。

ダメダメです。

ペダルのより外側を踏むとより大きく生じる、クランクのねじれのひずみを大いに拾って、外側を踏むと大きなパワー値が表示されます。

しかし、ここまで派手にクランクのねじれに反応してくれると、むしろねじれの影響がよくデータとして見えるので、補正もしやすいのでは、と気づきました。

パワー測定用のひずみゲージの値を、クランクのねじれ測定ゲージの値で補正する、というのが簡単にできそうな予感です。


Tが真のパワー値とします。

ペダルの踏み位置が1から2へと外側にずれるに従い、パワー計測用のひずみゲージ(Gage1)の値が、クランクアームの捻じれにより大きく計測されてしまう(100wのはずが120w)、というのが今回の失敗です。

この誤った値に対して、ペダルの踏み位置計測用/クランクアームの捻じれ計測用のゲージ(Gage2)の値を利用すれば、補正係数を割りだし、真の値T(100w)に補正できるはず、というかそうすればいい、とPioneer, Shimano, および4iiiiの特許出願に書いてありました。

クランクアーム式ももう少し検討しますが、そもそも、ギアがインナーのときとアウターのときで、同一負荷でも見過ごせない誤差を生じるデータが出たりと問題山積です。

4iiiiのパワー計開発者の方のこちらのフォーラムでの発言もそれを裏付けています。

ttp://forum.slowtwitch.com/forum/Slowtwitch_Forums_C1/Triathlon_Forum_F1/4iiii_Precision_arrived_P5495248/

これを見て、市販のパワー計が表明している精度2%未満とかは、相当な量の前提条件をあれこれ置いたときの値なんだな、とわかりました。