親子で学ぶロボットプログラミング講座の第6回目は、「センサーを使ったプログラミング(2) ~光センサー~」です。
第1回目:親子でロボットプログラミングに取り組む
第2回目:ロボットプログラミングの準備をしよう
第3回目:mBotで初めてのロボットプログラミング
第4回目:mBotを自由に走らせよう
第5回目:センサーを使ったプログラミング(1)~ライントレースセンサー~
第5回目で、mBotの基本キットについているラインフォロワーセンサーの基本を確認しました。第6回目は、光センサーについて確認していきたいと思います。
光センサーは、mBotのメインボード「mCore」にあります。mBotの透明ケースを外すと、写真の位置に、光センサーが見えます。
光センサーは、照度センサーとも呼ばれていて、明るさを、0~1023の数字で出力することが出来るセンサーです。光センサーは、私たちの生活の中で、色々な場所に、あります。例えば、身の回りに、暗くなったら自動で付くライトがあります。また、スマートフォンには、使っている場所の明るさに応じて、画面を明るくしたり暗くしたりする機能がついていますが、それは、光センサーが明るさを検知して実現しているのです。
STEP1:光センサーのデータの確認
まずは、光センサーの値を確認してみましょう。
光センサーの値は、0~1023です。それをmBlock5で表示させるには、「センサー」ブロックパレットの中にある、
ブロックの横にある、チェックボックスにチェックを入れると、確認できます。
図1 光センサーのデータを確認する
チェックボックスにチェックを入れると、スプライトエリアに、光センサーの値が表示されます。その状態で、mBotの光センサーの部分を手で隠して暗くしたり、手を放して明るくしてみましょう。光センサーの数字が変わっていくのが分かります。
STEP2:演算を使って光センサーを制御しよう!
mBotプログラミング(7) 明るさによってブザーを鳴らそう
明るさによって、光センサーの数字が変わることが、確認できたら、次は、明るさによって、mBotのブザーを鳴らす・鳴らさないというプログラミングに挑戦してみましょう。
「手をかざしている時、ブザーを鳴らし、手をかざしていない時、ブザーを鳴らさない」
というプログラムを作るには、どうしたらいいでしょうか?
まずは、最初なので、以下の順番で、プログラムを作ってみましょう。
1、それぞれの状態の時の、明るさを調べる
・手をかざしている時:「 」~「 」
例)95~130
・手をかざしていない時「 」~「 」
例)950~980
2、手をかざしている時の状態を表すブロックを作る
・手をかざしている時、光センサーの値は「130より小さい」「~より小さい・~より大きい」を表すブロックは、演算ブロックパレット(図2)の中にあります。
図2 演算ブロックパレット
例えば、
を使うときは、左の 〇 の部分に、
を入れて、右の〇の部分の数字を「130」に変更します。
このブロックが、手をかざしている時の状態を、表します。
ちなみに、手をかざしていない時の状態は、光センサーの値は「950より大きい」なので、このようなブロックを作ることが出来ますよね。
ブロックのカタチには意味があります。
・楕円形のブロックは、全て「センサーデータ・メッセージ・数字」など、いわゆる「情報・データ」を意味しています。
・六角形のブロックは、全て「条件」を表しています。
3、条件分岐ブロックを使ってプログラムを作る
プログラムを作ったら、イベントを実行して、手をかざしてみましょう。
チャレンジ
・暗い部屋の中で、mBotにライトをあてると、走行し、ライトをあてないと、止まるプログラムを作ってみよう
ここがポイント 演算ブロック
このSTEPでは、演算ブロックが、初めて出てきました。演算というと、少し難しいかも知れませんが、ロボットプログラミングでは、主に、このSTEPで出てきた、比較演算ブロックと、論理演算ブロックというものがあることを理解しておけば、十分に様々なプログラムを作ることが可能です。
演算ブロックは、六角形=条件を表すブロックです。
論理演算ブロックの六角形には、センサーの条件や、比較演算ブロックが入ります。
この論理演算ブロックを使うと、より細かく条件を設定することができ、より思い通りにロボットを動かすプログラムを作ることが出来ます。
筆者プロフィール
荻原 裕
TINKERBASE代表
2010年よりIOTデバイス開発ベンチャー企業での海外営業・新規事業開発・大企業向けIOT事業開発アクセラレーション責任者を歴任。
2018年より出張専門プログラミングスクール「TinkerBase」運営。
国際的ロボットプログラミング大会「MakeX」
2019東京大会審判委員長。2020東京大会事務総長。
2015年経済産業省登録 中小企業診断士。著書:IOTビジネス入門&実践講座 2016年 ソシム出版
2020年より文化学園大学杉並中学・高等学校 STEAMプロジェクト専任講師