【EV3 Classroom入門】7-5 カラーセンサー(色モード)の処理

デフォルトアイキャッチ

みなさん、こんにちは。さいたま市のプログラミング教室「ツクリウム」です。

こちらはEV3 Classroomの入門記事になります(後継のSPIKEプライムやスクラッチにも役立つかと思いますので参考にしてみてください)。さて、今回のプログラムはカラーセンサーの色モードに関するブロックの解説です。


7-5 (指定ポート)のカラーセンサーの色が(X)になるまで待つ

【EV3 Classroom入門】7-5 (指定ポート)のカラーセンサーの色が(X)になるまで待つ

解説:カラーセンサーの色モードで一定の色になるまで待つ命令です。6-1や6-2で説明したようにカラーセンサー使ったループ処理(例:赤いテープまで進むなど)を使うときのためのブロックです。指定できる条件は、色なし、黒、青、緑、黄色、赤、白、茶、大きく変わる、です。

 一定の色になるまで何かをするという処理はループブロックで行うことができます。ただEV3のプログラムでは頻出する処理のためわざわざこうしたブロックが作られたのでしょう。このブロックの前の部分に繰り返したい命令(表示や移動し続ける命令など)を入れると指定した色になるまでその処理を続けます。ただし全ての命令ブロックがループ処理の対象ではないことに注意するのは6-1、6-2などと同様です。
例:

【EV3 Classroom入門】カラーセンサーの処理。指定した色を検出するまで前進する。

注意: 黒かつ赤で止まるという場合には?
止まる条件がひとつの色であれば上記の例でよいのですが、「赤または黒のテープで止まる」という場合はどうすればよいでしょうか?
旧版のLabVIEW版では待機ブロックを2つ使ってもそうした処理は可能でした。
しかし、この例では赤では止まりますが黒では止まりません。なぜなら「赤になるまで待つ」という命令が実行され続けており、また赤になると移動が止まってしまうからです。そのため赤または黒で止まるという処理にはならないのです。

【EV3 Classroom入門】カラーセンサーの処理:黒かつ赤で止まるという場合には?

いくつか条件があるときは、以下のような「または」という論理演算を使ったプログラムにします。またイベントブロックを複数使ってもよいでしょう。

【EV3 Classroom入門】カラーセンサーの条件が複数ある場合は論理演算の「または」を使うのもよい

7-6 (指定ポート)のカラーセンサーの色は(X)ですか? 真偽値を返す

【EV3 Classroom入門】7-6 (指定ポート)のカラーセンサーの色は(X)ですか? 真偽値を返す

解説:カラーセンサーの色モードで指定した色かどうかを真か偽で返します
例:7-5も参照。
プログラムがスタートすると、
無限ループを繰り返します。
内容は、
もし、カラーセンサーの値が黒ならば、
Blackと音を出す。
1秒待つ。
です。

【EV3 Classroom入門】カラーセンサーが黒色を検出すると音を出すプログラム例

7-7 (指定ポート)のカラーセンサーの色を取得

【EV3 Classroom入門】

解説:カラーセンサーの色モードで読み取った色を取得します。他のブロックの楕円の空欄に代入して使います。返される値は以下の通りです。
0=色なし
1=黒
2=青
3=緑
4=黄
5=赤
6=白
7=茶

例:
プログラムがスタートすると、カラーセンサーの値が変わった時に、カラーセンサーの値を表示します。

【EV3 Classroom入門】例:
プログラムがスタートすると、カラーセンサーの値が変わった時に、カラーセンサーの値を表示します。

例:
3本の線(赤か黒)を横断し、それぞれの数とカラーセンサーの値での合計を表示するプログラム

【EV3 Classroom入門】例:
3本の線(赤か黒)を横断し、それぞれの数とカラーセンサーの値での合計を表示するプログラム


入会、または、体験会のお申込み

プログラミング教室「ツクリウム」ではスクラッチやPythonなどを学ぶ、小学生、中学生、高校生、主婦層やシニアなどの初心者向けの講座を通学形式やオンライン形式で開講しています。
お問いあわせ・ご入会・体験会のお申込みは下記のリンクからお願いいたします。

画像をクリックするとお問い合わせページにジャンプします。

お問い合わせアイコン