じゃあ次は「動きを合わせる」です。
今回は、Yが(以前の運動会でやった)大江戸舞祭りの音楽に合わせて踊ります。 そして、2台のロボットも、Yに合わせて踊ります。(動きます)
普通は、スタートしたときにタイマーをリセットして、タイマーの値によって、モーターを制御します。 10秒経ったらモ-ターAを1秒間正回転、14秒経ったらモーターBを1.5秒間逆回転・・・というようにします。
2台のロボットに同じプログラムを入れて、同時にスタートボタンを押すと・・・最初は同じように動くのですが、だんだんと動作がズレてきます。
そこで、2台のロボットの同期を取るために、NXT通信機能を使いました。
NXTには、基本でBluetoothの無線機能があり、RoboLabでは、「メールを出す」「メールを受取る」というアイコンで実現できます。
一号機は従来の通り、タイマーでタイミングを計り、時間になったら「メールを出します」。
二号機は、「メールを受取るまで」待っています。
それぞれで、「メール」でのやりとりが終わったら、次の動作をします。(前進とか回転とか)
そうすると、ほとんど同じタイミングで動いてくれます。
この、NXT通信機能を使うに当たっては、2台のNXTでBlootoothの設定をしておかなければなりません。 また、実際に使う前に2台の無線のグルーピングを設定します。 これは電源が切れると消えてしまうので、電源を入れる毎に毎回設定する必要があります。
ちなみに、本来のロボカップジュニアの競技会で無線を使うことは許可されているのかについては・・・良くわかりません。 今回は杉並区のローカルな競技会だったのでOKだっただけかもしれません。 これまでのジャパンオープンなどの運営マニュアルでは、無線の使用を厳しく規制していました。
しかし、2009ルールからは、Bluetoothについては、明確に使用を認めています。
ですので、今後、このように活用することが増えてくるのではないかと想像しています。
ところで、もうひとつ・・・音楽とロボットの動きをどのように合わせるか?については
音楽の前の部分に時報を入れました。 「プッ プッ プッ ポーン」のところで、スタートスイッチを押すことにしました。 これで、タイミングもバッチリです。