スフィロを使って図形を描こう!その①正方形の描き方

ケン博士
サイエンストレーナーの桑子研です。 ボール型ロボットSpheroを使って授業や家庭でプログラミングをするためのヒントについてお届けします。

スフィロ(Sphero)の操作に慣れてきたら、スフィロを使って図形を描いてみましょう。今日は正方形の描き方についてみなさんと一緒に考えてみたいと思います。

正方形を描くとしたら、まずは直進するブロックが必要になりますよね。ですので、ロールのブロックをおき、0度、120、1秒と設定します。これでスタートを押せば、前回のようにまっすぐと進みますよね。

こども
ということは、これを繰り返せばいから、角度を変えて見れば、、、

良いアイデアですね。早速スタートボタンを押してみてください。

こども
スタート、、、わ!できた!

うまく行きましたね!おめでとうございます。次に四角形を2回描くプログラムを作ってみましょう。

こども
ということは、、、

たしかに、これでも良いのですが、例えば2周だけではなく、3周、4周、とまわるときには、さらに長くなり、少しプログラムをセットするのが面倒です。

そこで変数というものを使ってプログラムを作り変えて見ましょう。正方形のプログラムでなにか気がつくことはありませんか?

こども
方向の部分以外は同じだな、、、。

ピンポン!そうですね。角度に注目してみると、0、90、180、270と、90°ごとに変化していることがわかります。ということは、ここを変数で置き換えてみましょう。

次の画像を見てください。メニューから、①変数(赤色)を押して、変数を作るを押します。②変数名は何でも良いのですが、今回は数字が入るのでナンバーnumberの英語、「num」として、③「数字」を選びます。④最後に右上のチェックマークを押しましょう。

すると変数numが作られます。これを4つのブロックのうち一番上のロールブロックの角度のところに入れてください。

こども
入った!

あとは、その他の3つのブロックをゴミ箱にすてて、一度消してしまいましょう。

そして、コントロール(紫)を選び、永久ループを持ってきます。

永久ループの中に、ロールを挟み込んで、「プログラム開始」のブロックとつけます。

変数のボタンから、「numを0にセット」というブロックを、次の図の2つの位置に入れてください。

こども
あ!わかった!下の「numを0にセット」というブロックの「0」を「90」に変えればいいんだ!

どうでしょうか。プログラムは考えるよりやってみる!が大切。答えもたくさんあります。うまくいくかも!スタートを押して動かしてみましょう。

こども
あれ?はじめは調子良かったのに、戻ってこない、、、。

どこがおかしいのでしょうか。プログラムを上から見ていきましょう。

プログラムが開始されると、① このプログラムは、まずは変数numが0になり、② その後0の方向、つまり上に動きます。③ そして、numに90が入ります。次の図を見てください。

④ プログラムの上に戻り、⑤90°の方向(右)に進みます。ここまではいい感じですね!⑥ 次にnumにまた90が入ります。同じ90です。そのため、上にまた戻ったときも、また90°の方向に、つまり右に進んでしまいます。

このようにして、0、90、90、90、、、

と進んでしまうので、うまく正方形を描くことができません。失敗したからと行って気にしないでくださいね。プログラムは何度も試行錯誤して、実際に試していくことが大切です。ここでわかったことは、変数というのはいろいろな数字が入る箱だということです。この箱に入るものを1回ごとに変えていく必要があるのです。

では、このようにしてみたらどうでしょうか。

下の演算子(青)から、「0+0」のブロックを、ループの中の「numを90にセット」の、90の部分に入れます(90が消えてしまいますが気にしないでください)。そして、「0+0」のはじめの「0」に変数「num」をまたいれて、次の「0」に「90」を打ち込みます。

さて、これで動かしてみましょう。うまくいくでしょうか?

うまくいきました。なぜうまくいくのでしょうか?考えてみましょう。

プログラムを上から読んでみてくださいね。

このようにすると、2個めの「numをnum+90にセットする」の部分で、今のnumに90°が足されたたものが、再度numにセットされます。こうするとはじめnumという箱には0が入り、ループに入り、その方向に動きます。

次に箱には0+90=90が入り、ループの上に戻ります。右(90°)に動くと、次に90+90=180が入りループの上に戻ります。下(180°)に動くと、次に180+90=270が…、というように入っていくので、うまく正方形を回り続けるということになります。

変数を使う前と使ったあとのプログラムを見てみましょう。変数を使うとブログラムも短くなって、読みやすくなりましたね。

変数の中身が本当に変化しているのか確認したい場合は、スフィロに今の変数を説明させながら回すこともできます(スフィロが話します!)。下のプログラムのように組んで試してみてください。

変数を使うことの良いところは、「見やすくなる!」ということだけではありません。実はこの状態でプログラムを少し直すと、今度は正三角形が描けるのです。どうすればいいのか?考えて見てくださいね。

続きます。

科学のタネを発信中!

ニュースレターを月1回配信しています。


 

登録はこちらから

科学イベントのお知らせ

全国で科学イベントを実施しています。詳しくは下のボタンからどうぞ。

桑子 研(くわこけん)
 1981年群馬県生まれ。サイエンストレーナーとして全国で実験教室やICT活用講演会を開いている。著書は『大人のための高校物理復習帳』(講談社)、『きめる!物理基礎』(学研)など10冊。