戦車の走行距離を計測するのには、車軸に付けたスリットの透過光をパルスでカウントする(右側部品)などもあるのだが、タミヤ戦車の場合は構造上手持ち部品の組み込みが困難だった。
しょうがないのでライントレーサ用に買っていた赤外線センサー基盤(左の70円)を使うことにした。
これが曲者であった・・・
戦車のキャタピラにはギアの歯が食い込む穴が規則的に開いている。
ここを挟むようにセンサを設置すれば透過光をカウントできるはず。
理論上はそうなのだが・・・
このセンサ、与えた電圧の半分の値をパルスで返すという変態仕様
3.3Vのmicro:bitの場合は1.76vが入ってくる。
これでは、電圧閾値ぴったりで、HI/LOが判別できない !
なので割り込みが発生しない orz
本来はパルスの立ち上がりを割り込みで検知するのが一番早く効率的だが、それが出来ないという悲しさ。
やむを得ずアナログ電圧測定に頼るしか無い。
こんな感じでセンサーLEDを延伸してキャタピラの上下にセットして計測してみた。
普通の「ずっと」ブロックを使うと30msに一回しか計測できない。
こんなところでパルス割り込みが使えない被害が・・
色々試行錯誤してやっと8msごとの割り込み測定ができるようになった。
見事に穴をカウントできてます。
がぁ~ しかしっ
実験データ転送や無線操縦やあれこれと組み合わせると、割り込み処理でないためか、データの取りこぼしが出だした。(赤線部分)
パルス検知用専用マイコンを積まないと確実な検知が出来ないのか???
左のようにパルス検知CPUをもう一個備えれば確実に動作するが・・・
プログラムから割り込みを発生させてデータを取得しようとしたが、割り込み中にはアナログ値の取得が何故か出来なくて頓挫
それとも実験データ取得の負荷を取り除けば、安定検出ができるのか・・・
まだまだ迷走は続きそうである。