Lesson6:演算

 Lesson5では、もし「〇〇ならば、■■する」という処理を理解しました。条件分岐処理の概要を理解するのは、そんなに難しくなかったと思います。一方で、「〇〇ならば」の、条件の部分には、色々な条件を加えることができるというお話でした。↓の動画は、カラーセンサーで床面の赤・青カードを色検出したら、RED・BLUEを表示するというデモです。

上の動画は、カラーセンサーの色が検出されたかどうかだけの単純なものですが、
CodeyRockyには、カラーセンサー以外にも様々なセンサーがついていて、例えば、照度センサーだと、周囲の明るさを数値にして検出することができます。

センシングブロックとCodeyRocky対応図

そのようなセンサーの数値を利用したりして、より複雑な条件を設定することが可能です。その為に使うブロックが演算ブロックです。今日は、そんな、演算のお話です。

■Lesson6の目標

・プログラミングにおける、演算処理の基礎を理解する
・mBlock5のブロックプログラミングにおいて、演算ブロックを使ったプログラムの作り方を理解する

■Lesson6で準備するもの

Lesson1と同じです。
・Makeblock社のCodey Rocky(アマゾンとかで\13000くらいです)
・PC(windoows10 or mac)※こちらの講座ではWindows10で話を進めます。
・mBlock5 ※PCにダウンロードして使います。無料でダウンロードできます。
 

キーコンセプト:演算とは

演算というと、慣れていない方が見ると、「うえー難しそう」と感じてしまうかもしれませんが、まずは、条件処理ブロックの六角形に入る演算ブロックの使い方を理解する所から始めれば、それだけで、かなり色々な事をロボット(CodeyRocky)にさせることが出来ます。

まずは、mBlock5を開いて演算パレットの中身を確認してみましょう。

演算パレットの説明画像

演算パレットの中にも様々な演算ブロックがあります。初めてロボットプログラミングをする人であれば、まずは、比較演算ブロックと論理演算ブロックを理解しておけばいいんじゃないかと思います。

論理演算ブロックと比較演算ブロック説明画像

小学生の子供に伝える時は、不等号や、「かつ」という言葉の意味を理解してもらう必要があります。(確か今は、小学校2年生で不等号を習うそうです。)

ですが、こちらは、大人向けなので(笑)、上記のブロックを見れば、「演算」という言葉よりは、直感的に理解することができるんじゃないでしょうか?

例えば、明るさの数値を検出する、CodeyRockyの照度センサー(光センサー・ライトセンサーなど言い方はいろいろあります)を使って、演算ブロックの入ったプログラムを作ってみましょう。

まずは、演算ブロック使う前に、照度センサーのデータの確認方法について簡単に説明です。↓の動画のような感じでブロックを組んでみましょう。

 

こんな感じで、ブロックを組んで、CodeyRockyにアップロードすると、↓の動画のようなデモができるようになります。

 

 CodeyRockyの右下にある穴が照度センサーです。日中、蛍光灯をつけて、カーテンも明けて外光も入ってくるような場所で撮影しています。通常は、「100」という数値が表示されています。
 照度センサー部分をヘラで覆い隠すと、暗くなるので、数値が減っていく様子が確認できますね。

 では、演算ブロックを使って、明るさが50より小さければ青いLEDインジケータ表示・50より大きければ、赤いインジケータ表示というプログラムを作ってみましょう。

mBlock5による比較演算ブロック説明画像

こんな感じで、組むと、こんな感じでCodeyRockyが動いてくれます。

コーディング練習

Aボタンを押すと、コーディーロッキーが、早く走り出し、暗くなると止まるというブロックを作ってみましょう。「暗くなる」の数字の設定は、皆さんのお部屋の環境によって調整が必要ですね。

まとめ:演算ブロックでセンサー数値を使うときは、センサーのデータの特徴を理解する

今回、ロボットプログラミングにおける条件分岐処理などで使われる演算ブロックの基礎を理解しました。

1、演算ブロックは、比較演算ブロック・論理演算ブロックがある
※今回は扱いませんでしたが算術演算ブロックもあります。

2、演算ブロックを使う前に、センサーの数値がどのように取得できるかをまずは確認する必要がある

演算ブロックは、様々な場面で利用しますので、基礎をしっかり理解しておきたいですね。