今回は、mBotプログラミングシリーズ(mBlock編)の第7回です。
ここからは、mBotに搭載されているセンサーを使ったプログラミングを学びます。
センサーは周囲の情報を取得するための重要なツールであり、これを活用することでmBotの動きにより知的な要素を追加することができます。
今回は光センサーについて紹介します。
この記事で分かること
- mBotの光センサーについて
- 光センサーに関するブロックとその使い方
- 光センサーを活用したプログラムの作成方法
光センサーとは
mBotのカバーを外すと、基板上に『Light Sensor』と書かれたところがあります。
これが光センサーです。

光センサーは、明るさを測定することができます。
明るさを0~1023の範囲で測定します。(0が暗く、1023が明るい)
mBlockとは?『スクラッチ(Scratch)』との違い
mBlockは、小学校や学習塾で取り入れられている『スクラッチ(Scratch)』をベースとしたビジュアルプログラミングツールです。
スクラッチの基本的な操作感を引き継ぎながら、ロボットやハードウェアの制御に特化しているため、mBlockを使えば、プログラミング初心者でも簡単にロボットプログラミングを始めることができます。
mBlockで使用するブロック
『センサー』パレット
各種センサーのブロックが入っています。
今回は光センサーのブロックを使います。

光センサーが測定した明るさを0~1023の値で表します。
簡単な動作プログラム作成
『光センサーの値をmBlockのステージ上にモニタリングする』プログラムを作ってみます。

変数『光センサーの値』を作って、光センサーブロックの値を変数に入れます。
『変数を表示する』ブロックを処理することで、光センサーの値がmBlockのステージ上に表示されます。
旗マークを押すたびに、その時のセンサー値で値が更新されます。

【例題】光センサーを使ってみよう
例題1:センサー値のモニタリング
- 例題
- 解答例
『光センサーの値をmBlockのステージ上にモニタリングし、常時、値を更新する』プログラムを作ってみましょう。

- 先ほど作成したプログラム『光センサーの値をmBlockのステージ上にモニタリングする』に対して、処理を繰り返しブロックで囲う
これにより、値が常時更新されます。
mBotをいろんな場所に持っていき、センサー値を確認してみましょう。
例題2:センサー値に応じて処理を切り替える
- 例題
- 解答例
『暗い場所でブザーが鳴る』プログラムを作ってみましょう。

- 繰り返し処理で、光センサーの値を常時読み出す
- 明るい場所と暗い場所の中間値を、条件分岐の判定に用いる(この場合500)
本記事執筆の環境での光センサー値は、明るい場所:900、暗い場所:300でした。
そのため、『暗い場所』の判定に用いる値は、中間の500としています。
例題3:センサー値を用いて処理を切り替える
- 例題
- 解答例
『周囲の明るさに応じて、ブザーの音が変わる』プログラムを作ってみましょう。

- 繰り返し処理で、光センサーの値を常時読み出す
- 光センサーの値を、そのままブザー音の周波数に設定することで音を切り替えている
『センサー値のブロック』は、そのまま数字入力の箇所に入れることができます。
条件分岐を使わずに、処理を節約することができます。
まとめ
今回は、光センサーを活用して周囲の明るさに応じた動作を作成しました。
センサー値を使うことで、mBotはよりインタラクティブで柔軟な動きを実現できます。
次回は、超音波センサーを用いたプログラムを学びます。
mBlockを使ったmBotのプログラミング方法を丁寧に解説していておススメです。
mBotを使用した拡張的な遊びは『mBotでものづくりをはじめよう』が参考になります。mBotのパーツを段ボールと組み合わせてオリジナルのロボットを作るといったような拡張的な遊びが楽しめます。