2017年7月29日(土)と30日(日)と2日間続けて、奈義町の子どもたちに、プログラムの作り方講習会を開催しました。 プログラミングは3日ありますが、この週末は続けて2日間の開催です。 このとき講習会で使ったプログラムについて、追加説明をしておきます。
これは、参加してくれた女の子が作ったプログラムです。 A3は下を見るセンサー、A5はボールを見るセンサーです。 このときの講習は、(1)ボールを見つけたら前に進む、が終わり、(2)下に白い線があったら後ろに進む、が終わった後、(3)ボールを見つけたら前に進むけど、白い線があったら後ろに進むプログラムは?と、お題を出したときに作ったプログラムです。
まだ2つのifを重ねる使い方を紹介していなかったので、このようになるのと思いますが、最初見たときは「すごい!」と言う気持ちでした。 ロボットはこのプログラムで、ちゃんとお題の動きをしていました。
ただ、その後の講習でも、このプログラムの問題点を説明できていなかったので、ここで説明します。
A3は白い線を見るセンサーで、①は白い線を見つけたとき、②は白い線が無いときです。 A5はボールを見るセンサーで、③はボールを見つけたとき、④はボールがないときです。 このプログラムで調整するときの難しさは、白い線も、ボールもないときです。 ②④を交互に繰り返すことになるので、モーターへの値が違うと、状態が安定しなくなります。 ②④は同じ値にすると、安定するようになります。
講習会で説明すべきだったプログラムです。 説明ができないまま終わってしまったので、申し訳ありませんでした。 if文の階層化は音を出すところで教えたので、もしかしたら気づくかもしれないと、期待しています!
川野壮一