課題#4 光追跡ロボットを作ろう
この課題では、mBotの光センサーを活用し、光を使ってロボットを制御します。
光を検知すると前進し、暗いときは停止する動作をプログラムで実装します。
さらに、ライントレースプログラムと組み合わせることで、光が当たっている間はラインを追従する高度な制御を体験できます。
また、センサーを活用した条件分岐プログラムに加え、ハードウェアの影響も考慮する必要があります。
mBotの上部カバーを装着していると光センサーの反応が悪くなるため、カバーを外す工夫が必要です。
ソフトウェアとハードウェアの関係を理解しながら学べる課題となっています。
先生や親御さんへ
この課題は、プログラミング教育の必修化に伴い、子どもたちに楽しくプログラミングを教えるために作成した教材です。
未経験の先生や、家庭で子どもと一緒にプログラミングを学びたい親御さん向けに、ロボットプログラミングを通じて、子どもたちの論理的思考力や創造性を伸ばすきっかけとなれば幸いです。
チャレンジ課題の一覧はこちら
この課題で学べること
- 光センサーの働きの理解:
mBotが光を認識する仕組みを学びます。 - センサー値を活用した制御:
光センサーの値を使って、mBotの動作を変化させるプログラムを構築します。
条件分岐を適切に設定し、動作を論理的に決定する方法を学びます。 - ハードウェアの影響を考慮する:
実際のロボット構造とプログラムの関係性を学びます。
課題の概要
- ライトで照らした光を光センサーで検知し、光が当たっている間は前進、暗いと停止する動作を実装する。
- ライントレースプログラムと組み合わせ、光が当たっている間はラインを追従しながら進む。
使用するツール
- mBot
- PC、またはタブレット
- 『mBlock』をインストールしたもの
- 照明となるもの(スマホのライト等)
プログラムの構築
制御方法の概要
- 光センサーが周囲の明るさを取得し、特定の閾値以上で「光を検知した」と判断。
- 光を検知したら、ライントレースプログラムを作動させる。
- 光を検知しなくなったら、mBotは停止する。

光センサー値の取得と、閾値の決定
光センサーが検出した周囲光の明るさは、次のブロックで表されます。

明るさを0~1023の値で表します(0が暗く、1023が明るい)。
ここでは、閾値を決定するために、光センサーの値を変数に格納し、環境に応じて変数の値がどのように変化するかを監視します。


今回の測定環境は次の3パターンとします。