【発展編】8-a スマート・ガード

image-1

Q1. ☆問題☆

上のように、「ぴったり45度手をあげて止まる」プログラムを作ったんだけど、うまくいかない。45度で止まってくれないんだ。

次のうち、どの方法で解決できるかな。一番正しそうなものを選んでね。

  • もっとゆっくり手をあげる
  • もっと速く手をあげる
  • AポートではなくDポートで同じことをする
  • 45度ではなく、50度にする

正解

  • もっとゆっくり手をあげる
  • もっと速く手をあげる
  • AポートではなくDポートで同じことをする
  • 45度ではなく、50度にする

解説

このプログラムでうまくいくときもあるし、うまくいかないときもある(うまくいかないときのほうが多いかな)。

その理由は「手をあげるスピードが速すぎるから」なんだ。

 

EV3ブロックが「いま何度回転しているかな」と調べてから次に調べるまでの間に、モーターの回転角度が45度を超えてしまっているんだ。

たまたま「いま何度回転しているかな」と調べたときに45度になっていれば止まることができるけど、タイミングよく調べられるときばかりではないよね。

だから、「もっとゆっくりと手をあげる」のが解決方法のひとつなんだ。

 

もっと速くしてしまえば、もっとタイミングが難しくなる。

Dポートでやっても、Aポートのときと何も変わらない。

50度にしても、「ピッタリ」とめるのは難しい。

 

モーターの回転角度だけではなく、センサーの数値でも「ピッタリの数字」にするのは難しいんだ(理由は同じ)。だからプログラムを作るときには、ワークブックにあるように「○○以上になったら」「○○より小さくなったら」という条件にしたほうがうまくいくことが多いんだよ。

image-2

Q2. ☆問題☆

上のプログラムと同じ動きをするのは、次のうちどのプログラムかな。選んでね。プログラムが見にくい場合は、プログラムの真ん中をタップすると大きく表示されるよ。

  • image-3
  • image-4
  • image-5

正解

解説

ワークブック6ページにあるプログラムだね。

 

これは

(1) Dにつないだモーターを、20のパワーで40度動かす

(2) Dにつないだモーターを、-10のパワーで5度動かす

(3) Dにつないだモーターを、10のパワーで5度動かす

(4) Dにつないだモーターを、-10のパワーで5度動かす

(5) Dにつないだモーターを、10のパワーで5度動かす

(6) Dにつないだモーターを、-20のパワーで40度動かす

というプログラムだね。

 

このうち、(2)(3)と(4)(5)は同じ動きをしている。だから、

・Dにつないだモーターを、-10のパワーで5度動かす

・Dにつないだモーターを、10のパワーで5度動かす

この動きを2回くり返せばいいことがわかるよね。そのプログラムは、2つ目のものだよね。

Q3. ☆問題☆

スマート・ガードに2回色を見せることになった。ただし今度は、一度見せた色はもう見せられないそうだ(スマート・ガードにとられちゃうのかな)。赤、青、緑、黄、黒の5色を使うとき、見せ方は何通り考えられるかな。

  • 25通り
  • 5通り
  • 4通り
  • 20通り
  • 18通り

正解

  • 25通り
  • 5通り
  • 4通り
  • 20通り
  • 18通り

解説

1回目は 赤の場合 青の場合 緑の場合 黄の場合 黒の場合 の5通りがあるね。

 

では、1回目が赤だったとき、2回目の色の見せ方は何通り考えられるだろうか。

         

この4通りがあるね。

 

1回目が青だったとき、2回目は?

         

やっぱり4通りがある。

 

緑の場合も、黄の場合も、黒の場合も、同じように数えると、やっぱりそれぞれ4通りある(そうなの? と思う人は、それぞれの場合を考えてみてね)。つまり、1回目でどの色を選んでも、2回目は4通りあるから、色の見せ方は全部で 4×5=20通り あることになるんだ。