球体型ロボット
Sphero(スフィロ)mini
iPadを使って「Sphero mini」を走らせます。
球体型プログラミングロボット「Sphero(スフィロ)」を使ってプログラミングの体験実習を行います。
内部にある2つのモータ(タイヤ)を回転させ、外側の殻を回転させることで、Spheroはコロコロと転がります。iPadに入れた専用アプリで思い通りに転がして、その動作ついて確認します。
1.Spheroを手動で走らせてみる。
(1) 専用アプリ「Sphero Edu」を実行し、メニューの「ドライブ」をクリックすると、手動でSpheroを操作する画面が表示される。
(2) AIMボタンをクリックし、Spheroの走行方向(前方)を決める。Spheroを動作させる前には必ずこの操作を行わなければならない。
●をクリックしながら、操作するとSphero内のLEDが点灯し、Spheroを走行させたい方向とは逆側にLEDの光を向ける。LED点灯方向の逆側がSpheroの走行方向(前方)となる。
(3) 手動操作画面の左側が走行レバー、右側がLED点灯色となるので、操作してみよう。
2.プログラミングでSpheroを制御してみる。
(1) 「動作」グループの「ロール」コマンドを用いる。
進行方向および移動させたい距離から、「方向」・「スピード」・「継続時間」の数値を決める。
<方向>
設定画面で、走行させた方向に矢印を合わせると、走行する角度が設定される。
<スピード> <継続時間>
前方(モーター正転) 後方(モーター逆転) 直接数値を入力する。小数も設定できる。
<例題>
① 20cm前方に走行させる。各数値を設定して、走らせてみる。
② 20cm後方に走行させる。
2通りの方法があるので、それぞれ動作させてその違いを確認してみる。
<課題>
次に示すように、前方に20cm走行させ、続いて右に40cm走行させて停止する。
スピードは60固定で、方向と継続時間を設定し、走行させる。
(2) 「コントロール」グループの「ディレイ」コマンドを用いる。
動作を一時的に止めたいとき、その停止時間から「継続時間」の数値を決める。
<例題>
次に示すように、前方に20cm走行させ、続いて右に20cmおよび後方に20cm走行させて停止する。
以下のプログラムを作成し、その動作を確認する。
<改良版>
以下のプログラムのように少し修正を加えた。「方向」のみのコマンドを追加している。
Spheroの方向だけを変えるコマンドである。動作がどのように変化したか、確認する。
<課題>
作成したプログラムをさらに追加修正し、以下のように正方形の形に走行させる。
(3)「コントール」グループの「ループ」コマンドを用いる。
同じコマンドを繰り返し行いたい場合に、その回数を設定する。(2)の課題で作成した正方形走行動作を2回繰り返すようにする。ループコマンドのカウント値を2回に設定し、動作させてみる。
(4) 進行方向を検知し、次の動作を決める。
「演算子」と「イベント」を利用し、進行方向に対してどの方向に走行するかを決める。
この「演算子」と「イベント」を方向およびロールコマンドに応用する。
<動作>
1秒間停止する。
Spheroの方向に対して90°右に向く。
1秒間停止する。
方向そのままでスピード60・時間1s、すなわち20cm走行する。
この動作を4回繰り返す。
<課題>
正三角形の形で走行させる。
Spheroの前方から次に進む方向は、外角となるので、正三角形の場合、360°÷ 3 = 120°となる。あるいは、正三角形の内角が60°であることから、180°- 60°= 120°となる。
以上から、(4)のプログラムを修正し、動作確認しよう。
(5)「コントール」グループの「永久ループ」コマンドを用いる。
ループコマンドの違い繰り返し行いたい回数が無限となります。(4)の課題で作成した正三角形走行動作を無限に繰り返すようにする。
<課題>
円形に走行させる。
Spheroの前方から次に進む方向すなわち外角の数値を設定すると、正○角形の形で走行します。この外角の値を小さくしていくと、次第に円形に近い形になっていきます。
正6角形 外角 = 60° 正12角形 外角 = 30°
走行する距離が20cmのままだと、円形が大きくなって走行させるのに広いスペースが必要となるので、走行距離を小さくしてみます。継続時間を小さくすれば距離が短くなります。また、ディレイコマンドで1秒停止させると動作が遅くなってしまうので、ディレイコマンドはなしにします。
以上のことを参考にプログラムを作成し、円形に走行させてみよう。ただし、円形の直径はおよそ50cm程度のなるようにしてください。
※ なるべく滑らかな円を描くような走行を目指そう。