センサーを使ったプログラムを作ってみよう
センサーは「タッチセンサー」「距離センサー」「トレースセンサー」「サウンドセンサー」の4種類を使うことができます。
プログラムは実行されると人間が考えているよりも早く実行されるので、センサーが反応する前にプログラムが終わってしまっている場合があります。
「ずっと」や「<>まで繰り返す」などのブロックを使うことでセンサーを動かし続けることが出来ます。
ロボットが直進し、タッチセンサーが障害物にぶつかったら、バックして左右どちらかに60度回転して走り出すロボット掃除機型のプログラムです。
ポイントは左右のタッチセンサーが障害物にぶつかった時、当たった方のセンサーを意識してどちらに回転させるかです。
壁で囲ったステージで実行すると、障害物となる壁にタッチセンサーがぶつかった時、下がって方向を変えてから走り出しています。
ロボットが直進し、距離センサーで障害物を発見したら左に曲がってぶつからないようにする自動運転型のプログラムです。
ポイントは障害物を探し続ける必要があるので「ずっと」ブロックを使うことです。
壁で囲ったステージで実行すると、障害物となる壁を発見したらぶつからずに左に曲がって直進します。
ロボットが直進し、左のトレースセンサーが黒い線を見つけたら止まってみるプログラムです。
ポイントはトレースセンサーを反応させるために色の数値を知る必要があります。
シミュレーションでは約600から700の間を黒色としてセンサーが反応するようになっているので、条件は「左のトレースセンサーが300より大きければ」としましょう。
※白色(黒色以外)の場合は約75~85の間でセンサーが反応するようになっています。白色で反応させる場合は「左のトレースセンサーが300より小さければ」としましょう。
ロボットの前方に黒い線があるステージで実行すると、黒い線の上に左のトレースセンサーが重なった時、ロボットが停止します。
トレースセンサーは色の濃さを数値化しているので、ロボットでプログラムを実行する場合はその数値を調べる必要があります。
これは動かす環境によって数値が異なるためです。
確認方法はコチラ
ロボットが直進し、サウンドセンサーが反応したら止まってみるプログラムです。
ポイントはサウンドセンサーを反応させるために音の数値を知る必要があります。
シミュレーションではサウンドボタンをクリックすると2300の音を出しているので、条件は「サウンドセンサーが2200より大きければ」としましょう。
実行すると、ロボットが直進するのでステージから落ちる前にサウンドセンサーボタンを押してみましょう。
サウンドセンサーが音を検知してロボットが停止します。
サウンドセンサーは音の大きさを数値化しているので、ロボットでプログラムを実行する場合はその数値を調べる必要があります。
これは動かす環境によって数値が異なるためです。
確認方法はコチラ