前回の記事で、Arduinoを使ってラリーコンピュータを作ることを目標にしてしまったので、まずはラリーコンピュータを作るのに必要なものを考えてみよう。
ラリーコンピュータは、
- 時計
- トリップメーター
- 主催者からの指示速度
- スタート時刻
といった要素を元に、走行中の競技車両がその時点での正解時間に対してどれくらい早いのか遅いのかを計算してくれる装置です。
これらの要素の中で、
の3つはコンピュータ内部の処理だけで済みますが、トリップメーターだけは外部からの入力が必要になる面倒なヤツです。
通常ラリーコンピュータのトリップメーターは、車速パルスと呼ばれる車が速度(走行距離)に合わせて出してくれる信号を利用しており、車速パルスはカーナビも自車位置を測位する目的で使用しています。
なので、この車速パルスをArduinoに取り込んで距離を計算し、トリップメーターに利用したいと思います。
車速パルスについてはJIS規格があり『JIS D 5601 自動車用スピードメータ』に定義されています。
そう車速パルスは元々スピードメータに速度を表示するための信号なのです。
昔の機械式のメーターが大元になっていて、20年くらい前までの車ならトランスミッションからスピードメータにケーブルが繋がっていて、中のケーブルがグルグル回る速さでスピードメータが指す速度が決まるという仕組みでした。
このケーブルがグルグル回る速度が『637rpm』の時、車は『60km/h』で走っているものとするとJISで規定されています。
rpm は revolution per minute の事なので1分間当りの単位で、km/h は kilo metur per hour の事なので1時間当りの単位と時間軸が違うので統一して考えてみよう。
60km/h を 分速に直すと 60km/h ÷ 60分 = 1km/min となり1分間で1km進んでいると言う事になります。
637rpm = 1km/min というのがJISの規定なので、車が 1km 進む間にスピードメータケーブルは 637回転 すると解釈する事ができます。
と言う事は、スピードメータケーブルが 1回転 した時の走行距離は
1km ÷ 637回転 = 0.0015698587127159km = 1.569858712715856m
と言う事になります。
車速パルスはスピードメータケーブル1回転当り『2パルス』『4パルス』『8パルス』『16パルス』を発生させるものがあり、最近の車は概ね『4パルス』発生させるようです。
と言う事は、スピードメータケーブル1回転当り4パルスなので1パルス当りの走行距離は
1.569858712715856m ÷ 4パルス = 0.3924646781789639m/パルス
と言う事になります。
1パルスで39.24cm、結構細かく距離が測られている事が分かりますね。
これらの事から、Arduinoで車速パルスをカウントし、カウントした数に『0.3924646781789639』を掛ければトリップメーターが作れると言う事が分かりました。
あとは、パルスの入力回路とか表示器をなんとかすればArduinoでトリップメーターが作れそう。