シンクロパフォーマンスプログラムの作成
2021年5月24日
5月25日改訂
9月14日改訂


 ロビ2はBluetootのリモート操作の同期機能を使って複数のロビ2を一斉に動かす事ができます。
 一斉に同じ動作をさせる場合は同じプログラムを動かせばいいのですが少し動きをずらしたプログラムの作成方法を解説します。

 

 説明にあたってはプログラムに必要なデータとサンプルプログラムを使いますので下記のファイルをダウンロードしておいてください。

 sync_pform.zip

 なおBluetoothによるリモート対応のロビ2プログラムは以下のURLよりダウンロードできます。

 ロビ2用リモート対応プログラム


番号ファイル

 パフォーマンスを行う順番を登録したファイルをプログラムの実行時に読み込んでそれに従ってパフォーマンスを行います。
 また実行時にはロビの総数も必要でこのデータも登録されています。
 データは上記のzipに含まれていますので個々のロビのSDカードに入れておいてください。
 ADDON\NUMBER.BIN
 ロビの総数(1バイト目)
 ロビの番号(2バイト目)
 ロビの番号(2バイト目)

 番号ファイルの例  総数3体のうち2番目のロビのファイル
 

 zipファイルにの番号ファイルフォルダーにはパフォーマンスを行うロビ2の総数が2〜5体のデータが含まれていますのでインストールする数のフォルダーを参照します。
 それぞれのロビ2のSDカードに対応する1番〜*番フォルダーのADDONフォルダーをコピーしてください。
 例)総数3体の2番目のロビ2には3体フォルダーの2番フォルダーに含まれるADDONフォルダーをコピーします。


トランスフォーム

 ロビのトランスフォームプログラムを順番にやって最後に全員で一斉にするパフォーマンスです。
 このプログラムを例にとって説明します。
 まずロビ2のプログラムからトランスフォームのサブルーチンを見つけます。
 ロビプログラムアナライザーにSTARTUP.BINを読込んで認識ボタンでを押すとトランスフォームのサブルーチンのアドレスが分かります。

 

 サンプルプログラムのトランスフォーム.RM4のcall adrのアドレスがこのアドレスです。(個々に行うのと一斉に行うのとで2ヶ所)

 

 wait dataはトランスフォームの演技時間を指定します。
 ロビのプログラムでは1/60秒単位で指定しますので360=6秒となります。
 最初のwaitは最初にトランスフォームするまでの待機時間でロビの番号によってループ回数が変るので待機時間も変わります。
 二番目のwaitは最後一斉にトランスフォームするまでの待機時間で最初の待機時間によってループ回数が変わります。

 本プログラムをメモ帳等で変更する場合はバイトアドレスが変らないように注意してください。
 変更後ファイルのプロパティでサイズが変っていないか確認してください。

 ロビプログラムコンパイラーでロビ2のプログラム(STARTUP.BIN)に組み込む事ができます。

 

 ロビプログラムコンパイラーを立ち上げて「読込みボタン」を押します。
 ファイルダイアログが表示されるのでをトランスフォーム.RM4指定してください。
 この時ファイルの種類をロビプログラム(*.RM4)に切り替えてください。

 「変換ボタン」を押してロビ2のプログラムに変換してください。
 この時「LEDアドレス変更」と「サーボトルク変更」のチェックを付けておいてください。
 「サーボトルク変更」の値は80を設定しておいてください。
 「開始時間調整」と「CALL時間調整」はロビ1とのシンクロでタイミングを合わせる場合の設定なのでチェックを外しておいてください。

 「書出しボタン」を押して組み込むSTARTUP.BINを指定してください。
 割付ける認識語を聞いてきますので「トランスフォーム」を指定してください。
 割付けるのは任意の認識語が可能です。

 ロビプログラムコンパイラー1.40以降ではテキストファイルを読込む事ができます。
 テキストファイルはRM4形式のjump adrの飛び先がバイトアドレスではなくブロック名で記載されています。
 テキストエディタで修正した時にバイトアドレスの変更を気にせずに変更や追加する事ができます。
 サンプルプログラムで対応するテキストファイルも入れてあるので大幅に変更する場合はそちらを活用してください。
 テキストファイルを読込む時は読込のファイルダイアログでファイル形式の指定(右下プルダウンリスト)をロビプログラム(*.RM4)からテキストファイル(*.TXT)に切替てください。

三三七拍子

 三三七拍子はロビ2のパワーアッププログラムとしてSTARTUP.BINに組み込まれていて第16回のメール配信で実行できるようになったプログラムです。
 パワーアッププログラムのサブルーチンアドレスはこちらの記事を参照してください。
 サンプルプログラムでは最初の「三三七拍子するよ」の部分を飛ばしています。
 本来の三三七拍子のアドレスは0x2a4315ですがサンプルプログラムでは0x2a4968にしています。
 このアドレスはロビプログラムアナライザーで本来の三三七拍子を追いかけると調べる事ができます。
 パフォーマンスの演技時間は17.5秒(1050)に設定しています。

瓦割り

 瓦割り(空手)はロビ2のパワーアッププログラムとしてSTARTUP.BINに組み込まれていて第19回のメール配信で実行できるようになったプログラムです。
 パワーアッププログラムのサブルーチンアドレスはこちらの記事を参照してください。
 サンプルプログラムではプログラムを三分割するためにパッチを当てています。
 パッチはロビプログラム設定ファイル2で行います。
 ロビ設定ファイルエディタ2の「読込み」ボタンでSTARTUP.BINを読込みます。
 「プログラム変更」ボタンを押します。
 「バイナリパッチ」ボタンを押して瓦割り.csvを読込みます。
 「OK」ボタンを押してプログラム変更を閉じます。
 STARTUP.BINの書き出しに時間がかかりますので「プログラムの書出しに成功しました」というメッセージが出るまでSDカードは取り出さないでください。

 

 最初のサブルーチンで全員で一斉に「瓦割りするよ」と言います。
 このため音声ファイル(空手するよ)を挿し替えています。
 voiceフォルダーのS_新コンテンツフォルダーのS_116.wavファイルがこのファイルです。
 瓦を割る演技時間は5秒(300)で設定しています。

ウェーブ

 シンクロパフォーマンス用に作成したオリジナルプログラムです。
 番号を言わせるため音声ファイル(numberフォルダー)が必要です。
 番号ファイルで自分が再生する音声ファイルを識別しています。
 なおロビ2は10体まで縦王しています。


 実際に動かした動画です。

 トランスフォーム(動画前半)
   

 三三七拍子
   

 瓦割り
   

 ウェーブ
   

目次に戻る