配膳ロボ RCの修理
Repair of the food delivery robot RC.
Repair of the food delivery robot RC.
猫型配膳ロボットのコピー商品の様ですが、一応、ネコマークにLEDが点灯し喋りながら動きます。江戸時代のからくりの茶運び人形の現代版のような感じのおもちゃです。リモコン操作時に左旋回ができないと依頼です。
プログラム釦とオート釦があり、予めリモコン操作を設定して、猫などのご飯を運ぶと面白そうな機能も持っています。
ただ、プログラム機能は、約30回分の予約登録できるにもかかわらず、せっかく登録した機能は1回しか保持できないし、オート操作も前後左右の動作だけで、おもちゃとしては、釦は、あるけど機能はなんだか不完全なおもちゃに思えます。
分解し、外部電源経由で動作確認したところ、左旋回のときだけ、モータ出力が弱く回転出来ないようです。
それ以外では、時たま他のモードでも動作が不完全なことがあります。
モータドライバーはLC118x2が使われており、モータは左右反対に組み込まれ、進行方向 左側(X)、右側(Y)のドライバーとすると、出力端子の配線は、右側モータ(白色、青色)、左側モータ(緑色、青色)の順になっており、前進方向へのドライバー入力は、青色+、緑色+、バックは白色+、黄色+の出力になっています。左旋回は、青色+、黄色+のはずですが、ドライバー入力には電圧がかかっているもののモータ出力には電圧が現れません。これは不思議な事象です。
電源回路から調べていくと、6Vの電池端子からTrで5Vに落とされ、基盤用ICとモータ用ドライバーICに電圧がかかっています。? 普通はモータ用電力は電池端子から直接かけ基盤電源と分けて2系統にするのですが、よくわかりません。
結局、モータへの電力不足で左回転が出来ない状態になっています。
コスト削減や、LC118での試作時は問題なく、製品化時の半導体の製品品質の問題かもしれませんが。
ラジコンでRE130等のモータドライバーとして定番のMX612を代用として使うことにしました。既存のLC118は、VCC端子がなくVCCとVDD(モータ用入力電源端子)と共通化されているため、MX612のVCC端子には220Ωの抵抗をVDD経由でつなぎます。その他の配線は基盤配線のままで問題なさそうですが、
MX612に換装して外部電源から前後、左右モータは問題なく動作しました。
できれば、MX612のVDDは、わざわざ6Vから5Vに落とさずを6Vの電源を直接入力したほうが良かったかもしれません。
動作としては、なかなか面白いおもちゃなので、からくり人形の茶運び人形のように、せっかくのプログラム機能を利用すればEEPROMによるメモリ記録トレース等できるのではと思い、
入力信号のみおもちゃのリモコンを利用して、外付けでARDUINO PROminiを使ってプログラムを作ってみました。
多分、このおもちゃもこのような機能を持たせたかったかもしれませんが、赤外線の受信コードと操作する時間差により思うように制御できないため、このような仕組みにしたかと思われます。
ARDUINOで機能を改変してみた(現行おもちゃは触らず)
赤外線受信 IRremote V2.81
前進コード FF807F ⇒807Fに短縮
バックコードFF20DF ⇒20DF
右方向コードFF08FF ⇒08FF
左方向コードFF40BF ⇒40BF
ストップコード FF00FF ⇒00FF
プログラムコード FF10EF ⇒10EF
オートコード FF01FF ⇒01FF
EEPROMは8Bitなので入力信号を16Bitに変換し、ストップ釦を除き押下回数をEEPROM 0、1番地にいれ、2番地以降に2番地単位で釦の押した操作コードを記録していきます。
釦を押した時に操作コードが発信され釦を離したときストップコードが発信されます。
プログラム釦押下後、各前後左右の釦押下を実際のモータ動作に合わせて実走行(LED点灯をモータと見做して仮想走行)をしながらメモリーに記録し、プログラム釦を最後に押したときストップコードを記録するようにしました。また、プログラムの実行は、オート釦としました。
実走行でのモータ動作を記録するには、タイヤの回転数や、動作時間も記録しないとリアルの走行トレースを再現することは難しいです。でも、なかなか拡張性の有りそうな面白いおもちゃでした。