「光センサーを2個使いたい。
ラインを見て正確に止まるロボットを作りたいから!」
と相談がありました。
この子どもたちは、
悪性腫瘍のミッションを
最初から行わない戦略でしたから
「いいんじゃない」
と答えたのですが・・・。
実は、
2個の光センサーを使いこなすには、
問題があったのです。
その問題とは
「論理演算」
小学生の彼らにとっては、
なかなか手強いようです。
でも、
どうして論理演算が必要か?
考えてみましょう
---
「ロボットの進行方向に対して
垂直な線が引かれています。
光センサーでこの線を検知し、
ロボットを線に対し垂直に停止させなさい」
という課題を、
以下のようなロボットを用いて考えてみます。

ロボットの状態は
以下の4パターンに分けられます。
(線を通り抜けない)
パターン1(図1):
左右の光センサーともにラインに達していない。
タイヤC:前進
タイヤB:前進
パターン2(図2):
左の光センサーのみラインに達する。
タイヤC:停止
タイヤB:前進
パターン3(図3):
右の光センサーのみラインに達する。
タイヤC:前進
タイヤB:停止
パターン4(図4):
左右の光センサーがラインに達する。
タイヤC:停止
タイヤB:停止

上記のパターンをまとめると
以下のようになります。
真理値表

この真理値表をもとにプログラミングします。
例えばNXTソフトウェアの場合、
ループブロックのコントロールをロジックにし、
このループの中に左右の光センサーに対応する
2つの光センサーブロックを置きます。
それぞれの光センサーブロックの
ロジックデーターワイヤーを入力とする
ロジックブロックを置き、
その出力をループブロックに渡します。
モーターブロックも必要ですが、
モーターブロックの記述は
割愛させていただきます。
おわかりいただけるでしょうか?
サンプルプログラムをアップしないと
文章だけでは何がなんだか分かりませんね。
(私の文章能力が乏しいだけなのですが・・・)
FLL全国大会が終了し、燃え尽きていなければ、
サンプルプログラムをアップしましょう。
多分。
さて、結局子どもたちが
2個の光センサーを使ったか?、
全国大会の会場でよ~く観察してみて下さい!