ロビをUSB電源で動かしてみる
2014年10月11日
2014年10月12日改訂
2014年10月14日改訂


 ロビのマイコンボードが壊れて音声が出ないためマイコンボードを新たに購入して無事音声が出るようになりました。
 ただスピーカーも壊れていたようで外部スピーカーで動かしています。

 壊れたマイコンボードですがオーディオアンプを交換すれば復活するのではないかとゴチャゴチャいじっていました。
 その結果興味深い事が分かったのでレポートします。

 まずオーディオアンプの交換ですが使われているオーディオアンプはテキサスインスツルメントのTPA2006D1という8PINのICチップです。
 しかしこのIC、表面実装でしかも足のピッチは0.65mmととても半田ごてで交換できるシロモノではありません。
 後日DIPパッケージのスタンダードな物を実装する予定です。

 そのため音声の入力信号が出ているところを調べる必要があります。
 ロビをずっとしゃべりっぱなしの状態にしておいてパソコンのマイク端子にオーディオケーブルを接続して片方をGNDにもう片方をオーディオアンプの入力部の周辺に片っ端から接続していきました。
 まぁ一度壊れたボードなので怖い事はありません。

 ありましたありましたしかもスルーホールになっていてリード線はひっぱりやすそうです。
 CPUからの音声信号は生きていました。



 スルーホールとは言え小さいのでACケーブルに使われるている銅線1本がやっと通るくらいなのでこれで引っ張り出しました。(図黄色線)
 片方はGNDで電源コネクターの近くに大き目のスルーホールがあるのでこれに太めの銅線をハンダ付けしました。

 これらのリード線をオーディオケーブルに接続してパソコンのマイク端子に入力しました。



 アンプで増幅していないとはいえマイク入力としては結構大音量なのでマイクのレベルはかなり絞る必要があります。
 今までロビのスピーカーからしかロビのしゃべり声を聴いていませんでしたが実にクリアな音です。
 パソコンでロビの音声ファイルを再生したのとそん色はありません。



 USB接続をしてからロビがしゃべらなかったので気が付きませんでしたが、パソコンにUSB接続すると「充電して・・・ガクッ」とと言って起動プログラムが終了するよです。
 USBの電気がCPUにも供給されUSBを接続するとロビのプログラムが起動されるようです。

 それじゃあそのままロビのプログラムを動かす事が出来ないかと考えました。
 初期化プログラムで電圧をチェックしている所がありそれを誤魔化してやればそのまま動くんじゃないかと考えました。



 main5_InitFlag確認補完無し_シーン1固定0415_test2.RM4の510行目(メモ帳の行へ移動)の値と電圧を比較しています。
 これを0000に変更します。  バイト数がずれないように4桁の0に置き換えます。

 動かしてみたのですがもちろんサーボは動きませんしLEDも点灯しないようです。
 また電圧が低いので音声認識も正確に認識してくれないようです。

 しかし何もできないかと言うとそうでもなく最初に「充電して・・・ガクッ」と言うくらいなので音声はちゃんと出力できるようです。



 上の写真はロビとは呼べないでしょうがれっきとしたロビのプログラムを動かす事ができる構成です。
 オーディオアンプが壊れているのでパソコンのマイク端子に出力していますがロビのスピーカーに接続すれば音は出るはずです。(やっていないので確証は得てませんが)
 実際ロビのスピーカーをつないでやってみました。
 サーボを全部つないだ状態でもロビはちゃんとしゃべってくれました。

 なおUSBの電圧によってUSB接続が切れる事があるようです。
 こちらの記事を参照してください。

 音声認識ができないのでロビボイスプレイヤーで音声を再生してみます。

 そのため起動プログラムを少しいじったものを動かします。
 まず先程の電圧チェックを誤魔化して、サーボの脱力化でサーボにトルクを入れないようにしてリモート接続.RM4を呼ぶようにしています。



 今回の構成を動かすにはマイコンボードをパソコンとUSB接続する必要があります。
 USB接続はこちらの記事を参照してください。
 今回USBコネクタ(ミニB)を購入したのでそれでパソコンとつないでいます。



 ロビボイスプレイヤーのリモート接続の機能でロビにしゃべらせる事ができます。
 またプログラム出力でロビのおしゃべりプログラムを作成してロビにしゃべらせる事ができます。
 その時の出力プログラムはリモート接続.RM4にしてください。
 USBを接続すると同時にロビがしゃべりだします。
 プログラムは繰り返し実行されますので止めたい時はUSBを切断するか正規のリモート接続.RM4を転送し直してください。



 LEDが点いていないので動いているかどうか分かりませんがちゃんとロビはリモート接続で喋っています。

 ロビの音声が大きいのでSTARTUP.XMLをいじって音声のアッテネータの値を2にして動かしていますがこの値を0(標準)にするとビープ音になりUSB接続が切れてしまいました。
 接続するパソコンによって違ってくるかも知れませんがうまくUSB接続されない場合はこの値をいじってみてはいかがでしょうか。
 音声のアッテネータはメモ帳等でも変更できますがロビ設定ファイルエディタを使えば簡単に変更する事ができます。

 改造した初期化プログラムは以下のURLからダウンロードできます。

 ロビボイスプレイヤーのリモート接続の機能でロビにしゃべらせる時も音量スライダーで音量を大きくするとアッテネータの値が小さくなるのでビープ音になりプログラムが暴走してしまうようです。
 USB電源のみで行う時はなるべく音量を小さくしてロビにしゃべらせてください、

 usb_init.zip

 またロビボイスプレイヤーとリモート接続のプログラムはこちらからダウンロードできます。

 なおロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を及ぼす可能性があるのであくまでも自己責任という事でお願いします。
 また必ずオリジナルのSDカードのバックアップは取っておいてください。
 問題があったらオリジナルのSDカードに戻してください。

 特に今回はロビのマイコンボードの改造が必要になってきます。
 マイコンボードの改造を行うとディアゴスティーニの無償保証が受けられなくなりますので注意してください。

目次に戻る