ロビのココロ2DXカルタプログラム
2016年12月7日
2016年12月13日改訂


 オプション販売されたロビのココロ2DXの目玉のひとつにカルタがあります。
 そのカルタプログラムですが私のロビでは最後まで読めた事がありません。
 途中でリセットがかかり強制終了されてしまいます。
 そこでこのプログラムを調べてみました。



 カルタプログラムですが基本的にロビがランダムに札を読むのですが同じ札を二回以上読まないように工夫されています。
 0から99までの乱数が書かれたファイル(randomTableBin\rndTblxx.log)を読込みます。
 このファイル100個あってカルタをする度に次のファイルを使うようになっているため毎回に違った順番で読むようになっています。

 ロビのカルタは46枚なので0〜45の数字でしか札を読みません。
 46以上の数字の場合ロビは何もせず次の数字の処理をします。

 ロビのマイコンボードの制限(仕様?)でロビが何もしないで同じところを短時間でループするとボードにリセットがかかるようです。
 ロビが何もしない数字が続くとこのリセットにひっかかるようです。
 rndTbl27.logというパターンは22枚目と23枚目の間に46以上の数字が7回続いてこの間でリセットがかかります。

 その回で使用する乱数ファイルの番号はrandomTableBin\rndtblindex.logというファイルに書かれています。
 このファイルをバックアップしておいてカルタの実行前に置き換えるとバックアップした回の順番で札を読んでくれます。



 修正方法としては46以上の数字の場合、何もしないで終わらないで短時間の命令をロビで実行させます。

  <mem_w size="2" adr="0x0b00">xx</mem_w>
  <wait size="1" adr="0x0b43"/>

 サーボを動かす時にサーボ速度を指定する時に使うウェイト命令です。
 xxはウェイト時間でロビの時間単位(1秒=60)で指定します。
 今回の修正プログラム(かるたmotionSel.RM4)では10(0.17秒)を指定しました。
 なおこの命令の追加で46以上の数字がひとつあたり0.17秒の間が空くようになります(10個続くと1.7秒)ので修正前に比べると札と札の間が少し長くなります。

 また全ての札を読み終えた時に何も言わずに終了するのでロビが「楽しかったね」というように聞き音声にモーションdx.RM4を改造しました。
 必要なければこのプログラムは置き換えなくても構いません。

 修正プログラムは以下のURLよりダウンロードする事ができます。

 karuta_fix.zip

 なおロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を及ぼす可能性があるのであくまでも自己責任という事でお願いします。



 このカルタプログラム、途中で終わらせることができません。
 プログラムのコメントには「かるたmotionSel.RM4でモーションが呼び出されたら、こちら側に進むので、この後に特定のセリフを認識するまで待つ処理を入れる」とありますが実際この処理は行われていないようです。
 もう少し頑張って欲しかったですね。(入れるの忘れたのかな)

 また今回調べてみて分かったのですが47枚目のプグラムが存在します。
 「(を)っけー了解分かったよ」というものなのですが呼ばれないように修正されています。

 「(を)っけー了解分かったよ」という音声は「ま」を読むプログラムから呼ばれています。
 「ま」の音声ファイルは2つ存在していて「(ま)だまだ続くよロビとの暮らし」という音声はどのプログラムからも呼ばれていません。
 従って文字とプログラム番号との対応はあ〜ほまでは01から30となっていいますが31は「を」なので以降ずれています。
 46のプログラムは呼ばれていませんが「を」は31のプログラムで読まれています。



 その後他の方からも本不具合の報告があがっています。
 その結果マイコンボードのレビジョンに依存する事が分かりました。
 本不具合は再刊行版と第三版のマイコンボードでしか起こらず、初販版のマイコンボードでは起こらないようです。
 おそらくマイコンボードのファームウェア改訂の影響が本不具合を誘発したものと考えられます。

目次に戻る