Sphero BOLTの通信機能を使ってみよう!

Sphero BOLTには、赤外線通信機能がついています。この機能を使うと、複数台のSphero BOLTとの間で、連絡を取り合いながら動くプログラムを組むことができます。今回は通信機能の「メッセージ」ブロックや「チャンネル」ブロックを使って、「2台Sphero BOLTの間で手紙のやりとりをする」プログラム(A)と、「ウマの役割を与えたSphero BOLTが別のニンジン役のSphero BOLTを追いかける」プログラム(B)を、それぞれ作ってみましょう。

A)「メッセージ」ブロックを使って、手紙のやり取りをしよう

「メッセージ」ブロックを使って、黒ヤギさんが白ヤギさんに手紙を送るという、ちょっとかわいいプログラムを作ります。まずは完成の動画を御覧ください。

どうでしたか?2台のSpheroBOLTの間で情報がやり取りされていましたね。それでは1つずつプログラムを見ていきましょう。まずは手紙を送る側の黒ヤギさんのSpheroBOLTのプログラムです。

左側の「プログラム開始」ブロックについたプログラムを見てください。プログラムが始まると、自動で位置合わせをして(「コンパスを調整」+「AIMをリセット」ブロック)、「マトリックスアニメーション」ブロックによって黒ヤギが表示されます。なお「コンパスを調整」ブロックはSphero BOLTならではのブロックです。このブロックをつけると正面合わせ(AIM)が自動で行われ、Sphero BOLTが自分が持っているタブレットの方を向いてくれる便利なブロックです。
次に右側の「衝突時」ブロックについたプログラムを見てください。

「衝突時」ブロックはイベントメニューにあります。Sphero BOLTを手の上にポンと置くと衝突とみなされ、「衝突時」ブロックのプログラムがはじまります。そして上から「スピーク」、「マトリクスアニメーション」ブロックが実行されていきます。今回のプログラムでもっとも大切な「メッセージ」ブロックについて説明します。「メッセージ」ブロックは通信メニューにあります。メッセージの「0」通の部分をタップすると、0〜7のチャンネルでメッセージを送ることができます。

どのチャンネルでも良いのですが、今回は「1」を選んでいます。次に距離ですが、距離は1〜64までの数字が選べます。この数字が大きいほど遠くまで赤外線電波が届きます。例えば1を選択すると1m程度の距離までの範囲でメッセージが飛びます。今回は1mよりも近い範囲でよいので、ここも「1」を選んでいます。これで黒ヤギさんから白ヤギさんにむけてチャンネル「1」で距離「1」のメッセージが飛びます。
次に白ヤギさんのプログラムを見てみましょう。

白ヤギさんも左側の「プログラム開始」のほうは、黒ヤギさんと同様です。右側の「受信した1通のメッセージ」ブロックのほうを見てください。このブロックはイベントメニューにあります。この「1」通の部分をタップすると、0〜7の数字が出てきますが、この数字は黒ヤギさんの赤外線のチャンネルと合わせて「1」にします。これでチャンネル「1」のメッセージを受け取ることができます。

黒ヤギさんからチャンネル1のメッセージが白ヤギさんのもとまで届くと、マトリクスアニメーション」ブロックや「スピーク」ブロックがはじまります。2つのプログラムが用意できたら、SpheroBOLT2台とタブレット2台を用意して、それぞれのプログラムを動かしてみましょう。はじめの動画のようになりましたか?
次にさらに工夫をして、黒ヤギさんが送った手紙を受け取った白ヤギさんが、黒ヤギさんに向けて別の手紙を送り返すというプログラムを作ってみましょう。チャンネルは送る時に「1」、返事を返す時に「2」の2種類使用します。

【プログラム】自分のSphero EduのMy Programに下記からダウンロードしてみよう。

黒ヤギさん
https://edu.sphero.com/remixes/4106813
白ヤギさん
https://edu.sphero.com/remixes/4106812

いかがでしたか?みなさんもこのプログラムを参考に工夫してプログラムを作ってみましょう。このようにSphero BOLTは「メッセージ」ブロックを使うことで、複数台のSphero BOLT同士でやりとりをすることができます。

B)「ブロードキャストチャンネル」ブロックで、Sphero BOLTを追いかけよう!

あるSphero BOLTをウマに、もう一方のSphero BOLTをニンジンに見立てて、「ランダムに動くニンジンをウマが追いかける」というプログラムを組んでみましょう。次の動画を見てください。

赤く光るSphero BOLT(ニンジン)を、青く光るSphero BOLT(ウマ)が追いかけています。そう、ウマがニンジンを追いかけるシーンを考えて、プログラムしました。
はじめにニンジンSphero BOLTのプログラムを見てみましょう。

プログラムが始まると、自動で位置合わせをして(コンパスを調整+AIMをリセット)、マトリクスアニメーションブロックでニンジン(赤く光る)を表示させます。

次にコントロールメニューにある「永久ループ」ブロックがあります。この「永久ループ」ブロックは、間に入っているプログラムを何度も繰り返して行うためのものです。ここに通信メニューにある「ブロードキャストチャンネル」ブロックが入っています。今回はこのブロックが最も重要です。このブロックによりニンジンSphero BOLTから、通信用の電波が発生します。ブロードキャストチャンネルでは2つの電波のチャンネルを使用しますが、ここではチャンネルを「0と1」にしました。この「0と1」の電波を、あとで説明するウマSphero BOLTのプログラムで受け取るようにすると、ニンジンSphero BOLTをウマSphero BOLTが追いかけるようになります。

なおチャンネルは「0と1」の他にも「2と3」「4と5」などがあり、関係をもたせたいSphero BOLTの間では、同じチャンネルにする必要があります。
「ブロードキャストチャンネル」ブロックの下にあるブロックは、「ニンジンSphero BOLTがいろいろな方向にランダムに動く」という指示です。

「ロール」ブロックの「「0」方向に」、の部分に演算子メニューから「ランダム」ブロックを入れます。ニンジンをいろいろな方向に動かしたいので、「ランダム」ブロックの数字は0〜359とします。こうすることで、動く方向が1秒ごとに変わり、次にどこに動くのかがわからなくなります。最後に「ディレイ」ブロックを1秒として入れることで、動きと動きの間に1秒待つ時間ができ、ニンジンSphero BOLTがゆっくりとなめらかに動くようになります。

次にニンジンを追いかけるウマSphero BOLTのプログラムを見てみましょう。

チャンネルをフォロー強調

ウマSphero BOLTもニンジンSphero BOLTと同じように、プログラム開始時に自動で位置合わせをします。そして通信メニューの「チャンネルをフォロー」ブロックをいれますが、このブロックが鍵となります。「チャンネルをフォロー」ブロックで、ニンジンSphero BOLTの発信チャンネルと同じ「0と1」を選びます。このブロックにより、チャンネル「0と1」を出しているニンジンSpheroB OLTを、ウマSphero BOLTが追いかけます。馬の足音は、「サウンド」ブロックと「永久ループ」ブロックで出続けるようにしました。2つのプログラムが用意できたら、さっそくプログラムを動かしてみましょう。

【プログラム】自分のSphero Eduに下記のプログラムをコピーしてダウンロードして、実際に動かしてみましょう。

ニンジン
https://edu.sphero.com/remixes/4106816
ウマ
https://edu.sphero.com/remixes/4106817