トミカの修理
トピックス
トミカ 赤外線リモコン キャリアカーの修理
Repair of infrared remote control carrier car.
1.赤外線リモコン キャリアカーの修理
トミカの赤外線リモコンのキャリアカーが動かないという依頼です。
このおもちゃは、トミカが8台位積載できて、前進と左回りを赤外線でコントロールするというものです。
またリモコンはキャリアカーの運転席に収容でき紛失を防ぐとともに、リモコンを取り出すと電源がONになります。さすがトミカのおもちゃです。
なお、このおもちゃは省電力モードで、約15分で本体がスリープになるようです。一旦、リモコンを収納すると本体の電源がOFFになり、リモコン取出しでスイッチを入れると解除されるようですが、残念ながらうまくいきません。
(参考) メーカ取扱説明書
2.原因調査
まずリモコン送信機から赤外線が発振しているかどうかデジタルカメラで赤外線の確認します。
リモコンは問題なさそうです。分解して赤外線センサーからの出力波形を、デジタルオシロの波形観測します。
キチット、リモコンからの受信はできており、また電源スイッチの接触不良もなさそうです。
3.原因分析
本体の回路基板を取り出し回路の動作を確認すると、モータドライバーは問題なく、モータも正常に動作します。どうもICチップからの出力がないようです。
通常なら、ICチップの交換ができないので、IC不良で返却するところですが、このおもちゃは、リモコンを外すと車軸ギヤがロックされ手動で動かないおもちゃのようなので、ICチップを代用する方法を検討することにしました。
(補足)ICチップの不良ですが、本体側の電源ONしてから、受信センサーのGND1がONになりセンサーの動作が可能になることから、ICチップのスリープ機能の解除不良も考えられます。
4.赤外線波形観測
Arduinoの赤外線波形解析プログラムでは、
・前進 F12B26D2
・回転 ABEB6A0C
のデータが得られ、これなら32Bitの通常の赤外線プログラムで可能かと思いきや、どうも非標準で通常リモコンでの制御プログラムの考えでは動作しません。
Arduinoで専用の解析プログラムを作り波形観測したところ、上下に制御信号がある特殊なものと分かりました。
(補足) 最初が制御信号のリーダとして、上下に大小のひげがあり、今回は下側のひげの長いもの(有効信号)から次ぎに来る上のひげの長さで信号のON/OFFを決定することとした。
(直進と回転の2コマンドの1チャンネルなのでなるべく簡便な方法とする。)
受信側のひげの長さは、その時間長(μ秒)を表し、上ひげがLOW(0)で下ひげがHIGH(1)、送信側はその反対でLEDが点灯(受信側LOW)している。ひげ時間(許容範囲有り)の長短で制御する。
5.外付けマイコンによる動作確認
Arduinoマイコンでも作れそうですが、費用がかかりすぎです。そこで PICマイコンの12F675を使い本体の受信機側に制御プログラムを作リ込むことにしました。
制御信号は下側の波形を使い特殊信号なので、PICマイコンの動作速度が4MHz(1命令1〜2μ秒)として、数100μ秒の信号の長さを制御するのは、プログラム上でのステップ数を計算しながらコントロールするという難題があります。
波形の時間(μ秒)を見ながらアセンブラで制御プログラムを作成しました。また、モータのスピード制御はしないのでPWM制御はしません。
なんとか外付けのブレッドボード上で赤外線リモコンの動作確認ができました。
6.本体上での動作確認
ブレッドボード上のPICマイコンを本体の基板と結線し、リモコンの動作確認を行いました。特に問題なく動作します。
このPICマイコンは、電源が2.5V〜5V位まで動作しますが、確認では、3.6V程度までは、十分動作しそうです。電池電源が4.5V仕様なので問題ないかと思われます。
7.PICマイコンの取付け
本体の基板上に、PICマイコンの回路を取付けました。
PICマイコンは、今後の制御プログラムの変更や、異なるリモコン信号に対応等するため、8PinDIPソケットを付けています。
赤外線リモコンは、通常の無線ラジコンより回路がシンプルで、制御プログラムだけで修理ができるので、これはいいですね。
このおもちゃのICチップは、PICマイコンで作っているのではないかと思えるほどぴったしのマイコンでした。
8.あとがき
今回は、内蔵オシレータ付きのマイコンにしましたが、発振器を補正してもその誤差はかなりあり、リモコン受信信号との調整は、赤外線の通信仕様が不明な点で対処療法では大変困難です。できれば、リモコン送信機と受信側を同時に変える方が制御プログラムが簡単になります。
実は、テスト中にリモコンボタンを離した時に停止信号が発信され、また、制御信号(リーダBit)が下側に発生することがわかり、Arduinoの解析プログラムでは、無視していたものがありました。STOP信号と思われますが、少なくとも上下のひげで、2チャネルは同時に制御できる信号方式のように思われます。
(普通のリモコンは、1チャンネルで十分制御が可能、これは赤外線ヘリプター等の制御にも使えるかも。)
今回の修理のおかげで、他のトミカの赤外線リモコンのおもちゃも修理が可能かも知れません。
(忘備用あとがき)
このおもちゃの場合は、リーダBitを外してひげ数だけで32個になり、データの検出方法としては、ひげの長短だけでON/OFFとする方法もある。またストップ信号を把握する必要もある。(下に長いリーダBit)
上 9966 下334C
(上2Bite下2biteの32Bitが得られる。遮蔽ゴミ等の誤動作を考慮すると正確性は不明だが、この方法の方がBit飛ばしがないので、プログラムは簡単になる。メーカもこの方法かも知れない)