
ホンダモンキーのいじりネタ「
続・モンキーとiPhoneをつなげてみた」で多くの車体情報をiPhoneに表示させてみました。
なかなかうまくいっています。
その表示情報の中でどうしても「
タコメータ」を表示させたくて今回色々実験をしてみました。
ちょっと手こずったので備忘録…。
クルマなどはECUから「回転数信号」が大概出ているのでそこから信号をとれば簡単に実装できそうですが、モンキーのような4stミニにはそんなコンピューターは付いていません。回転数を得るためにはなんらかの信号を
マイコンで読み取れる形で作ってやる必要があります。
配線図を眺めて今回は一番手軽で加工しやすそうな「ピックアップコイル」から「CDI」への信号を拾ってみました。
4stミニなどの小さなバイクのほとんどはクランク1回転あたり1回のプラグを点火しています。
本来の4サイクルのプラグ点火は「圧縮工程」と「燃焼工程」の上死点あたりで点火をしているけどこの手の小さな排気量のバイクは「排気工程」と「吸気行程」の上死点あたりでも点火をしています。
これは多分構造が簡単になるのが理由と思う…。
だから、「ピックアップコイル」後の信号を拾うとその回数がそのまま回転数となる…はず。
そこで、「ピックアップコイル」後の信号を加工していくわけだけど、波形の加工にはどうしても「オシロスコープ」が必要となる。んで、我が家にはとてもチープなオシロスコープがあります。「DSO NANO V3」というやつです。

多分中華製で1万円くらいの安いオシロです。
1CHしか波形を読み取れないし、細かい周波数も読み取れない…。でも素人がバイクの回転数を読み取るくらいの低周波数の測定で使うにしては必要にして十分。
すごく小さいし、波形をCSV形式で出力できてEXCELなどで加工もできる、BMPでの波形保存もできる。なかなか侮れないおもちゃオシロです。
そのオシロでまずアイドリング時の「ピックアップコイル」からの生の波形を測定してみました。

生データ測定の時は、どんな波形かわからないので20kΩ-10kΩの分圧した1/3の電圧波形となっています。
正側・負側に大きく振っています。波長は約33msecで30Hzなので1800rpm。武川のタコメーターの値と一致します。やはりこの波形は使えそうです。
時間を短くして測定した波形がこれ。

正側の最初に「ノイズ」が見て取れます。あとは素直な波形となっています。
でも、このままでは到底マイコンへ直接突っ込めないのでこの波形を加工していきます。
んで、今回考えた回路がこれです。

この回路は大きく3つに分かれています。
まずは「
RCローパスフィルター」と呼ばれるフィルターです。これで入ってくる高周波数ノイズを除去してやります。
次に「
ダイオードクランプ」を入れてます。入力に過大な電圧が掛かった場合この部分で次のICへの保護を行ってやります。
最後に「
単安定マルチバイブレーター」を入れてやります。ここで入力のアナログ信号をマイコンで読めるようにデジタルパルスっぽく変換してやります。アナログ波形をパルスに変換するやり方は色々な方法があるけど今回は手元にタイマ555が余っていたのでこの回路でやってみます。
ここまでやれば、マイコンに突っ込める信号になる…はず。
この仮回路をブレッドボードに組んでやって。
最初に、「RCローパスフィルター」の抵抗値と容量値を決めるために実験をしてみました。
C容量を0.01μFに固定してRの抵抗値を変化させてその波形を測定してみました。
R=10kΩでC=0.01μFの「ローパスフィルター」時の「ダイオードクランプ」後のアイドリング時の波形…
ダイオードをグランドラインにクランプしているので負側への波形は抑えられています。電源側にも一応ダイオードクランプしているので5Vにクランプしていますが、もともと5V以上振っていないので波形に変化は見られません。
ローパスフィルターによって波形前半のノイズが小さくなっているのがわかります。振幅は約-0.5〜5.0Vになってます。
次に、R=35kΩでのC=0.01μFの「ローパスフィルター」時の「ダイオードクランプ」後のアイドリング時の波形…

抵抗値を上げると低周波数も通しにくくなるので振幅も下がってきます。振幅は約0.5〜4.0V。前半のノイズはほぼなくなりました。
じゃ、ってことでR=60kΩでC=0.01μFの「ローパスフィルター」時の「ダイオードクランプ」後のアイドリング時の波形…

振幅は約-0.5〜3.3Vになりやはり振幅は下がってます。前半のノイズはほぼなくなりました。
ついでに…。R=100kΩでC=0.01μFの「ローパスフィルター」時の「ダイオードクランプ」後の波形…

振幅は約-0.5〜2.5Vになりました。前半のノイズもなくなっています。
こうしてみると、ローパスフィルターのコンデンサC=0.01μFの時は、100kΩ付近では2.5Vまで振幅が下がってきており回転を上げた時(=周波数が上がる)これよりもまだ下がると思われる。次の回路へ「タイマ555」へのしきい値をしっかりON−OFFできるかわかんないので振幅が3V以上得られる30〜60kΩ付近の抵抗値を使ってみることにする。
次に「単安定マルチバイブレーター」の回路…。
ローパスフィルターで作った波形をこの回路に突っ込んでみる。
この回路は、H信号が入力されると電圧を上げて出力し抵抗とコンデンサで設定した時間だけ電圧を上げ続け時間が来たらOFFにする回路のはず…です。
アウトプットはON−OFFが反対になるので最後にトランジスタで反転しました。

綺麗に0〜5Vの振幅のパルス波形が得られています。
パルス幅は、コンデンサを1μF、抵抗値を1kΩを使用しているので時定数は約1.1msecに設定してあります。
ほぼ設定通りのパルス幅となっています。
綺麗なパルス信号が出来上がりました。これなら安心して(?)マイコンへ突っ込めます。
オシロの時間を長くして測定してみました。

波長は約33msecで30Hzなので1800rpm。最初に測った値と同じです。
なんとか、波形の加工はできたみたいです。あとは「
続・モンキーとiPhoneをつなげてみた」で作ったプログラムに時間あたりのこの波形回数を数えてiPhoneに表示させてみましょう。今はこんな感じを考えています…。

iPhoneアプリの作成はまた今度時間のあるときにでもゆっくり作ります。
今回の実験はアイドリング時だけの測定です。ちょっとは回転数を上げて観察してみたけど波長も変化して正常に読み取れそうです。
住んでいる住宅街ではやかましい音のモンキーの回転数を上げるのは無理です…w
アイドリングでの測定が精一杯。高回転時どんなノイズが出るかわからないけど次は回路を組んでみて実走して確かめてみます。