サイクルコンピュータの自作を少しずつ始めています。
まずは、速度計を作ってみようと思っています。車輪の回転を検出し、ディスプレイに表示し続ける。これだけ。実現方法はいろいろありそうですが、まずは
arduino
回転検出センサ
ディスプレイ
これだけで組み上げてみようと思います。
回転検出センサは、とりあえずホールセンサにしました。車輪の1カ所に磁石を取り付け、ホールセンサをフロントフォークに取り付け、車輪の回転を検出し、1回転に要する時間を計測します。で、車輪の周長から1回転の距離を算出し、距離/時間で車速を出そうとしています。
スペックが決まりましたので部品の購入です。ネットでいろいろと調べると、seeed studioという中国の会社にたどり着きました。電子工作界では有名だそうです。この会社は、groveというシリーズの部品を販売しており、このシリーズであれば、arduinoに取り付けたbase shieldというインタフェースにコネクタを接続するだけで適切なピンに部品を接続できます。ホールセンサも、ディスプレイもこのインタフェースを使えば半田いらずでとても楽に取り付けできます。なので、この会社に注文しましたところ、先日届きました。深圳から12日程度で届いてしまうのでとても便利です。
grove規格の部品を使って速度計を仮組みしてみました。私は、知識の吸収のために電子工作をしているのですが、grove規格の部品があまりに簡単に動作するので、勉強のためには不向きかもしれません。例えば、ディスプレイは、コネクタに接続し、ウェブサイトで公開されているサンプルプログラムを読み解けば、すぐに動作させることができます。このディスプレイはI2Cでarduinoとディスプレイが通信するのですが、I2Cについて全く知らなくてもarduino IDEでプログラムを書けば所望の表示が得られます。I2CやSPIなど、一度は経験に基づいて学習しておきたいので、別の機会を設けて学習したいと思っています。
サンプルプログラムを使えば、ホールセンサの検出結果の利用もとても容易です。というわけで、机上ではあっという間に速度計を仮組みすることができました。
ホールセンサに磁石を近づけると割込が発生し、1回転とカウントし、カウント結果に基づいて計算した車速がディスプレイに表示されました。
問題は、自転車への取り付けです。手持ちの磁石では、ホールセンサで検出可能な距離が2cm程度しかないため、かなり強力な磁石を用いるか、ホールセンサと磁石の距離をかなり近づけるかしないと動作しそうにありません。後者の構成は、振動によってセンサの位置がずれ、スポークに巻き込まれるようなことが発生し得るため、できるだけ避けたいと考えています。磁石やホールセンサをうまく取り付けるための仕組みも考えないと行けません。3Dプリンタがあれば専用品を作れると思いますが、あまりそちら方面の沼に近づくのも危険なのでよく考えないといけません。
今後も少しずつ進めていこうと考えています。