2017年7月21日金曜日

DuraAce9000で手作りパワーメーター

Tiagraに続き、Dura Ace 9000をパーワーメーター化してみました。

パワー計、量産体制です。

完成図



コンピュータ・ユニットのアップです

不器用臭さがプンプンします。

臭いものには蓋をします。

3D印刷に失敗して隙間だらけなので、やり直しです。

なんか不細工ですが、本ブログのurlは、
D Grade DIY(D級工作)なので合格です。

ひずみゲージ貼り付け位置です。
スパイダーアームがチェーンにより反時計回り方向に引かれる歪を計測してます。


モジュール構成は、いつも通り以下の3点セットぽっきりで、お手軽です。

1. ひずみゲージ付きクランク
 お手軽な1000Ωひずみゲージ2枚構成(上の写真のピンク矢印の位置)で、他の2つの抵抗はひずみゲージでなく固定抵抗(1000Ω)です。 
2. コンピュータ(nRF52使用)モジュール
 ↓こちらで過去に公開したものです。
 https://dgradediy.blogspot.jp/2017/03/4999.html
3. 上記2.のソフトウェア
 ↓こちらで過去に公開したものです。
 https://dgradediy.blogspot.jp/2017/06/49-nrf-uart.html
 今回は、これをnRF5 SDKにあるANTパワーセンサーのサンプルコード(..\nRF5_SDK_12.1.0_0d23e2a\examples\ant\ant_plus\ant_bpwr\bpwr_tx
)に移植し、ANT+対応とし、ガーミンでパワー表示を可能にしてます。

以下、詳細です。
【①クランク】
 クランクにひずみゲージを貼る際、以前はクランクを耐水ペーパーで削り、アルミの地肌を出してましたが、面倒です。
今回は、お手軽に、脱脂してアルマイト加工?の上から100均の瞬間接着剤で貼り付けました。
これでも大丈夫そうです。
失敗しても、瞬間接着剤のはがし液で、きれいに剥がせます。
ひずみゲージは、以下のようにまずセロテープで貼り付け、位置決めをします。


次に、セロテープを半分剥がし、ピンクの矢印のひずみゲージ面に瞬間接着剤を適量付けます。









つけすぎるとクランクではなく、固形化した瞬間接着剤のひずみを拾うこととなるので、要注意です。

瞬間接着剤をつけたら、セロテープをもとの位置にもどし、むにゅー、と1分程度加圧します。
セロテープの半分はついたままなので、それがガイドとなり、元の位置にひずみゲージは張り付きます。こうして、面倒な位置決めを簡単にできます。

これは4iiiiのパワーメーターを開発されたエンジニアの方が、4iiiiと組む前に、個人のブログで公開して、教えてくれた方法です。


【②配線】
ひずみゲージ付きクランクとコンピュータモジュールは、以下の配線でVCC, GND, Sg+,Sg-を接続してます。



今回の電池はボタン電池CR2032を使用しました。
CR2032の最大連続放電電流は2mAなので、
消費電力を落とす必要があります。

マイコン(nRF52)とADコンバーター(AD7124)は余裕で2mAを下回りますが、
ひずみゲージ回路をつけると6mAを超えます。

どうするか・・・

ひずみゲージを読み取る時だけゲージ回路に通電し、読み取り終了後は直ちにスイッチを切ることにより、消費電力を2mA以下に落とします。

ADコンバータAD7124は、このひずみゲージ回路への通電を切るPSW(パワー・ダウン・スイッチ)が搭載されており、nRF52からソフトウェア・コマンドを発行することで、スイッチをON/Offできます。便利です。

これに伴い、ひずみゲージ回路のGNDをGNDから分離し、AD7124のPSWピンに接続します。

右下の紫色の線で示しています。



【②ソフトウェア】
上記のとおり、今回は、省電力化のため、PSW(パワーダウンスイッチ)をソフトでON/OFFします。

以下のプログラムでPSWを制御するも、ADCのデータをうまく読み取れないトラブル発生。
悩むこと2週間以上。
 m_tx_buf[0]=0x03;//アドレス3番地書き込み
 m_tx_buf[1]=0x00;
 m_tx_buf[2]=0x08;//PSWをONに設定
 m_tx_buf[3]=0x00;
          m_tx_buf[4]=0x42;//ADC読み取りコマンド発行
 m_tx_buf[5]=0xff;
 m_tx_buf[6]=0xff;
 m_tx_buf[7]=0xff;
 m_tx_buf[8]=0x03;//アドレス3番地に書き込み
 m_tx_buf[9]=0x00;
          m_tx_buf[10]=0x00;//PSWをOFFに設定
 m_tx_buf[11]=0x00;
    spi_xfer_done=false;
   nrf_drv_spi_transfer(&spi, m_tx_buf, 12, m_rx_buf, 12); // SPI経由でコマンド転送
       while (!spi_xfer_done)
        {
err_code = sd_app_evt_wait();
APP_ERROR_CHECK(err_code);
        }



正解は、こちらでした。
  m_tx_buf[0]=0x42;//読み取りコマンド発行
  m_tx_buf[1]=0xff;
  m_tx_buf[2]=0xff;
  m_tx_buf[3]=0xff;
   m_tx_buf[4]=0x42;//読み取りコマンド発行
  m_tx_buf[5]=0xff;
  m_tx_buf[6]=0xff;
  m_tx_buf[7]=0xff;
  m_tx_buf[8]=0x03;//アドレス3番地に書き込み
  m_tx_buf[9]=0x00;
   m_tx_buf[10]=0x00;//PSWをOFFに設定
  m_tx_buf[11]=0x00;
明示的にPSWをONにしなくとも、0x42で読み取りコマンドを発行すると自動的にONになるようです。0x03で強制的にONにすると、誤動作するようです。

最後に、ソーラーパネル&充電池で駆動できるヘンタイオリジナル仕様にしてみました。CR2032は万一のバックアップ電池とし、2系統電源で運用する予定です。

これで電池切れともおさらばできる・・・ハズ

昔つくった、手作りパワー計の試作1号機の写真を発掘しました。

これを作った当時は、DuraAceベースのパワー計は30万円ほどしてました。
今年は、中華ベンチャーが2万円程度でパワー計の販売を開始しました。
微妙な価格設定なので、すぐに値下げすると予想してます。
本自作パワー計とほぼ同じ構成のはずなので、ライセンス料を無視すれば、原価は、数千円と予想します。
販売価格が1万円程度まで下がれば、わざわざ自作するメリットはなくなるので、
自作パーワー計もそろそろ潮時かと思いました。



0 件のコメント:

コメントを投稿