論理演算 | 科学教育プログラム ithinkplus

科学教育プログラム ithinkplus

アイシンクプラスでの授業の様子、お知らせetc…
いろいろお伝えしていければな~と思います。

FLL関東大会後、一部の子どもたちから
「光センサーを2個使いたい。
ラインを見て正確に止まるロボットを作りたいから!」
と相談がありました。

この子どもたちは、
悪性腫瘍のミッションを
最初から行わない戦略でしたから
「いいんじゃない」
と答えたのですが・・・。

実は、
2個の光センサーを使いこなすには、
問題があったのです。


その問題とは

  「論理演算」

小学生の彼らにとっては、
なかなか手強いようです。


でも、
どうして論理演算が必要か?
考えてみましょう
---

「ロボットの進行方向に対して
 垂直な線が引かれています。
 光センサーでこの線を検知し、
 ロボットを線に対し垂直に停止させなさい」

という課題を、
以下のようなロボットを用いて考えてみます。

$科学教育プログラム ithinkplus-ロボット定義


ロボットの状態は
以下の4パターンに分けられます。
(線を通り抜けない)

パターン1(図1):
 左右の光センサーともにラインに達していない。
 タイヤC:前進
 タイヤB:前進

パターン2(図2):
 左の光センサーのみラインに達する。
 タイヤC:停止
 タイヤB:前進

パターン3(図3):
 右の光センサーのみラインに達する。
 タイヤC:前進
 タイヤB:停止

パターン4(図4):
 左右の光センサーがラインに達する。
 タイヤC:停止
 タイヤB:停止

$科学教育プログラム ithinkplus-4パターン

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

真理値表
$科学教育プログラム ithinkplus-真理値表2

この真理値表をもとにプログラミングします。
例えばNXTソフトウェアの場合、
ループブロックのコントロールをロジックにし、
このループの中に左右の光センサーに対応する
2つの光センサーブロックを置きます。
それぞれの光センサーブロックの
ロジックデーターワイヤーを入力とする
ロジックブロックを置き、
その出力をループブロックに渡します。


モーターブロックも必要ですが、
モーターブロックの記述は
割愛させていただきます。


おわかりいただけるでしょうか?
サンプルプログラムをアップしないと
文章だけでは何がなんだか分かりませんね。
(私の文章能力が乏しいだけなのですが・・・)

FLL全国大会が終了し、燃え尽きていなければ、
サンプルプログラムをアップしましょう。
多分。



さて、結局子どもたちが
2個の光センサーを使ったか?、
全国大会の会場でよ~く観察してみて下さい!