システム担当の北條というものです。今回11/24にEne1-GP MOTEGIに参加してきました。
今回私はメカニックとして計器類の開発をしていました。
しかし、この計器は本番では役に立ちませんでした。
以下そのことについて専門的な話になります。
この計器がなかなか曲者で、電池の温度と電圧、それと速度を扱うものでした。温度はアナログの温度センサ、電圧が抵抗を二本直列につなぎ分圧比で求めるもの、速度がタイヤについたホールセンサーで回転を取りそこから求めるものでした。
センサーで読み取った値を一回サーバーに送り、それをブラウザで見るというものだったため、センサーの値はすべてRaspberry Piに送る必要がありました。今回はすべてのセンサーがアナログだったので、一回A/D変換をする必要があったのです。そのために、温度と電圧をラズパイに送るためのArduino一つと、速度センサーだけクロック周期が速いのでそのためのArduino一つが必要になりました。
このシステムは機能のわりに複雑になっていて、これが不具合を起こしました。
本番のレースでは、タイムアタック、ロングディスタンス共にラズパイの起動後10分ほどでセンサーの値の取得ができなくなってしまいました。その結果、ドライバーはセンサーの値なしでほとんどの時間走ることになってしまいました。
この不具合の原因は未だに調査中なのですが、不具合を起こした状態はわかっています。
Arduino間と、計器とは別にデータの収集のために動かしていたGPSのI2Cは通信をしていました。これは、各ArduinoのTXのLEDが一定周期で動いていたことからわかります。しかし、センサーの値を表示しているはずのラズパイにつけていたディスプレイには何も表示されず、画面全体が白くなっていました。この現象は今まで一回もなったことがなかったので、原因がわからないというわけです。
ログは、不具合が起こる前までとれていて、それには不調は見当たりませんでした。
何らかの理由でラズパイに不具合が生じたとしか考えられないのですが、本番の前に行っていた実験では2時間程度連続で動いていたので、なぜか本番になると動かなくなるシステムになってしまいました。
不具合は起きてしまいましたが、今までこのようなシステムは作っていなかったので、うまくいかなかったことも含めていい経験になりました。
自分はまだ一年生なので、あと三回学生のうちに大会に参加できるということになります。なので、次回は今回の反省を生かし、全部のセンサーをI2Cのモジュールにしてみたり、そもそもセンサーの値をLCDに表示してみたりするかもしれません。
それと、今回の車両は、モータードライバが市販されている電動自転車についているものの流用だったので、これも自作したいと思います。
最後に、Ene-1GP関係者の方々、ありがとうございました。