ロビのシンクロ操作
2019年11月2日
11月3日改訂
miconoさんのRoVoCoMo2を動かせるM5Stack等のESP32ベースの小型デバイスが普及してきました。
RoVoCoMo2はBluetooth信号とWi-Fi信号を同時に送信できるのでロビ1とロビ2を同時に動かす事が可能です
ロビ2はBluetoothを標準で装備しておりロビ1はFlashAirを装備する事で同時操作が可能になります。
今までのリモート対応機能でも実現できますが、ロビ1ロビ2共にリモートの受信はロビのアイドリング時に音声認識データの取得サイクルで行っています。
このリモートデータを取得するタイミングが1秒位のバラツキがあるためプログラムの開始時間もまちまちになってしまて同期して動かす事はなかなか難しいです。
そこでこの取得周期を短くして同期して動かす方法を解説します。
ロビ1の設定
ロビ1はFlashAirでリモート操作ができますがFlashAirのプログラムを同期用のメインプログラムに置き換えます。
下記のURLよりリモート対応プグラムをダウンロードしてください。
http://www.kumagaya.or.jp/~mcc/robox/RBProgram/Robi_600.zip
それぞれの版の同期フォルダーのmain5_InitFlag確認補完無し_シーン1固定0415_test2.RM4等のメインプログラムをロビ1のSDカードに転送して置き換えます。
このプログラムでは、音声認識やQ-boでの操作や、圧監視、タイムアウトの処理は行われなくなります。
なお各プログラムでの応答は通常の場合と同様、音声認識やリモートでの応答が可能です。(取得周期は通常と同じ)
メインプログラムの同期対応版は6.00以降のロビプログラムに含まれます。
ロビ2の設定
ロビ2のプログラムはロビ設定ファイルエディタ2で設定します。
読込ボタンでロビ2のSDカードのSTARTUP.BINを読込んで下さい。
プログラム変更ボタンでプログラム変更ダイアログを開いてリモート対応とBluetoothとと同期受信をチェックしてOKボタンを押します。
ロビ2のSDカードのSTARTが書き換えられ同期対応となりRoVoCoMo2で操作する事ができます。
本機能は2.60以降のロビ設定ファイルエディタプログラム2で対応しています。
RoVoCoMo2の操作
ロビ1の電源を入れた後にRoVoCoMo2を立ち上げると自動的にFlashAirが検出され接続されます。
円で囲んである接続完了のメッセージが表示される事を確認してください。
RoVoCoMo2はFlashAirのSSIDを頭のflashairで検索するのでSSIDなどFlashAirの設定を変更している場合はRoVoCoMo2にSSIDを記述する必要があります。
ロビ2の方は特に設定はいらないのでそのままRoVoCoMo2でBluetoothの送信が行われます。
認識語を選択して送信ボタンを押すとBluetoothとWi-Fiが続けて送信されます。
ロビ2の場合はBluetoothで何台でも同時に操作する事ができます。
RoVoCoMo2は以下のURLからダウンロードできます。
https://github.com/micutil
インストール方法などはこのページの説明を参考にしてください。
開始時間の調整
RoVoCoMo2でBluetoothとWi-Fiを同時送信するとロビ2の方が若干早く(0.5秒位)開始されるようです。
ロビ設定ファイルエディタ2ではロビ2の開始時間を遅らせる事により同時に開始させる事ができます。
プログラム変更ダイアログの開始遅延を設定します。
1/60秒単位で設定するので0.5秒の場合は30を設定します
実際に動かして値を調整してください。
ロビ1のプログラムをロビプログラムコンパイラーでロビ2のプログラムに変換する時に開始時間を調整することができます。
ロビ2ではサブプログラムをSTARTUP.BINに展開するので実行時にサブプログラムファイルの読み込みが行われません。
そのためロビ1より実行速度が速くなりロビ2の処理が先に進んでしまいます。
これを調整するためにWAITコマンドをサブプログラムの先頭に入れます。
WAIT時間はファイルの大きさで自動的に計算して入れられます。
なおメインプログラムも実行時に読み込まれますのでこの設定でWAIT命令が入れられます。
USB接続の同期
ロビボイスプレイヤーで複数のUSB接続を使ってロビを2台コントロールすることができます。
プログラムの設定ファイル(RBPlayer.ini)ファイルをメモ帳等で以下のように書き換えてください。
リモートファイルの設定で設定した他方のUSBをUSBドライブ名のアルファベット大文字(半角1文字)で指定してください。
パワーアッププログラムの同期
ロビ2のパワーアッププログラムとロビ1に移植したパワーアッププログラムを同期させる方法を説明します。
ロビ1はSDカードの4フォルダーの359ものまねします9.RM4をやらせたいパワーアッププログラムに置き換えます。(例えばカンフー.RM4)
パワーアッププログラムが週利用すると続けて9フォルダーのCM週刊ロビ創刊テレビ付けて.RM4が実行するのでこれをやらせたくない場合は無動作のプログラム(直立のみ.RM4)に置き替えてください。
ロビ2はそのまま音声認識語で動きますがランダムにやるので必ずそのパフォーマンスをやるようにランダム値を固定します。
ロビ設定ファイルエディタプログラム2の設定データ変更でランダム値を固定にします。
14回までのパワーアッププログラムは次の値で実行する事ができます。
ものまねして
宇宙飛行士=2,コールセンター=3,ボティビル=12,ゾウ=14,創刊号=16,野球=18,エアギター=19,ゴルフ=21
おもしろい事言って
おしゃべりガイコツ=2,毛穴=3,映画の予告=5
イタリア語(あいさつして)=0
ブレークダンス(踊って)=0
認識語が変るので置き替えるロビ1のプログラム違ってきます。
おもしろい事言ってはものまねしてと同じプログラムが動くので上記の変更と同じです。
あいさつしては1フォルダーの032_こんにちは僕ロビ9.RM4が動くのでこれを変更します。
踊ってはまずランダムフォルダーの142-145.RM4が動くのでこれを変更します。
続けてダンス.RM4とランダムフォルダーの142-145事後.RM4が動くので動かしたくない場合は無動作のプログラム(直立のみ.RM4)に置き替えてください。
ロビ1に移植したパワーアッププログラムは以下のURLからダウンロードできます。
http://www.mcc3.mbsrv.net/robox/pwrup.zip
実際に動かした動画です。
ロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を伴うのであくまでも自己責任という事でお願いします。
ロビのオリジナルプログラムは必ずバックアップを取っておいて問題があればオリジナルのプログラムに戻してください。
目次に戻る