教育版 レゴ マインドストーム EV3 基本セット

工場のコンベヤーを作る

モーターを1つ、センサーを1つ以上使って、90度のカーブがあるコースでボールを動かすことができるロボットシステムを設計、組み立て、プログラミングしましょう。

120分以上
中級
高校
4_Make_a_Factory_Conveyor

レッスンプラン

準備

  • こちらの先生向け資料をお読みください。
  • 必要に応じて、EV3 ラボソフトウェアまたは EV3 プログラミングアプリに入っている導入用資料を使いながらレッスンを計画します。これにより、生徒が教育版レゴ® マインドストーム® EV3に慣れることができます。

興味付け (30分) -

  • 「ディスカッションを活性化させる」*セクションのアイデアを参考に、生徒の学習への関心を喚起します。
  • プロジェクトの説明 -生徒にペアを組ませます。
  • 生徒にブレインストーミングの時間を与えます。

探求 (30分) -

  • プロトタイプを複数製作するよう指示します。
  • 本体とプログラミングの両方で複数のアイデアを試すよう促します。
  • 各ペアに2つのアイディアを制作させ、動作をテストさせます。

説明 (60分)

  • 生徒に2つのモデルの動作をテストし、優れた方を選ぶよう指示します。
  • 各ペアに自分たちでチェック表を作成できていることを確認させます。
  • 各ペアがプロジェクトの仕上げをし、作業プロセスを記録するのに必要な資料をまとめる時間を設けます。

仕上げ (60分)

  • 生徒が最終レポートを作成する時間を設けます。
  • 各ペアがクラスの前で成果を発表する発表タイムを設けます。

評価

  • それぞれの生徒に取り組みを評価して伝えます。
  • 評価の際は、以下に提示するルーブリックを参考にすると良いでしょう。

ディスカッションを活性化させる

工場のコンベヤーは、原材料から梱包された完成品まで、様々な物を運ぶのに使われています。ベルトコンベヤーが最も有名ですが、あらゆる種類の物を効率よく輸送するために、そのほかにも多種多様なコンベヤーが開発されています。

Engage-Factory-Conveyor-Cover

活発なブレインストーミングになるよう促します。

生徒に以下の質問について考えてもらいましょう:

  • コンベヤーとは何ですか?また、どこで使われますか?
  • ボールを動かすにはどのような駆動メカニズムを使えばよいでしょう?
  • どうすればボールをコントロールしながら動かすことができるでしょうか?
  • センサーはどのような役割を果たしますか?

どうすればロボットシステムの有効性を評価できますか?ブレインストーミングで思いついた全てのアイデアと、最初のプロトタイプに選んだアイデア、選んだ理由を記録するよう促します。このプロジェクトでアイデアの有効性をどのように評価するのかを考え、記録してもらいます。こうすることで、見直しや修正を行う際にアイデアを評価し、効果的に問題を解決できるかどうかを判断する評価基準として使うことができます。

発展課題

国語の発展課題

言語能力を発達させるために、生徒に以下のタスクに取り組んでもらいます:

オプション 1

  • 文章やスケッチ、写真などを使って設計プロセスの概要をまとめ、最終レポートを作成する。
  • 最初のアイデアから完成モデルまで、設計プロセスを解説するビデオを作成する。
  • 自分たちのプログラムについてのプレゼンテーションを作成する。
  • 自分たちのプロジェクトを、同じようなシステムを使った実社会での実用例と比較しながら、制作したモデルをもとに開発できる新しい発明品を発表するプレゼンテーションを作成する。

オプション 2
また、このレッスンでは、現代の製造施設で使われているのとよく似た、ボールを決められたコースに沿って動かすシステムを制作しました。

  • 現代の製造施設でインターネットセキュリティや内部データのセキュリティについて配慮する必要があるかを考え、現代の製造システムとクラウドデータの使用についてまとめたレポートを書く。
  • オンラインショップの発送センターにおけるコンベヤーベルトシステムの使用を描写する。
  • 消費者の注文データをクラウド上に保存することのメリットとデメリットを議論する。

数学の発展課題

このレッスンでは、現代の製造施設で使われているのとよく似た、ボールを決められたコースに沿って動かすシステムを制作しました。現代の製造業界では、製造と品質管理で自動化が広く使われています。人工知能の一種である機械学習を使用すると、性能データを分析し、全体的な性能と効率を向上させる新しい手順を生成することができます。製造エンジニアは、システム性能と効率に関する大量のデータを収集することでこのプロセスを実現しています。機械学習アルゴリズムは、このようにして収集されたデータを分析し、性能と効率を向上させるための決断を下すのに活用されます。

数学スキルの向上を取り入れ、品質管理や機械学習など製造に関連するトピックを詳しく取り上げたい場合は、以下の課題に取り組ませてください:

  • 性能を測定するハードウェアとソフトウェアをロボットに追加し、性能を数値化する方法を考える。

  • 品質管理と性能分析においては、機械と人間のどちらが行うかに関わらず、何を合格とするかを判断する必要があることをふまえて、「合格レベル」を数値で表した品質管理基準を作る。

  • 機械学習は、大量のデータを分析し、機械データ(実行されるステップなど)と性能との複雑な関係性を理解するのに使用されるツールであることをふまえて、性能や効率に影響を与える可能性のある、システム内の変数をできる限り多く挙げる。

組み立てのヒント

組み立てのアイデア
生徒が下のリンクからいくつか例を選び、組み立てる時間を設けてください。
選んだシステムの仕組みについて考えるよう促し、課題設定に対する解決策にどのように生かせるかブレインストーミングをしてもらいます。

テストのヒント
生徒にテストツールとテスト手順を自分たちで設計し、最適なものを選ぶよう促します。
生徒がテストを準備する際に以下のヒントをあげるとよいでしょう:

  • 結果や考察を記録するチェック表を作成します。
  • 予測内容と実際の結果を比較し、制作したロボットシステムの精度を評価します。
  • テストを3回以上繰り返してください。

製作例
課題設定の条件を満たす製作例です:

Ball-Conveyor-cover
ball-conveyor-thumbnail

プログラミングのヒント

EV3 MicroPython プログラム例

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor, ColorSensor
from pybricks.parameters import Port, Stop, Direction, SoundFile
from pybricks.tools import wait
from random import randint

# Configure the belt motor, which drives the conveyor belt.  Set the
# motor direction to counterclockwise, so that positive speed values
# make the conveyor move upward.
belt_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)

# Configure the "catch" motor with default settings.  This motor moves
# the ball to either cup.
catch_motor = Motor(Port.D)

# Set up the Color Sensor.  It is used in Reflected Light Intensity
# Mode to detect when the ball is placed at the bottom of the conveyor
# belt.
color_sensor = ColorSensor(Port.S3)

# Set up the Touch Sensor.  It is used to detect when the ball reaches
# the catch at the end of the ramp.
touch_sensor = TouchSensor(Port.S4)

# Initialize the conveyor belt.  This is done by slowly running the
# motor backward until it stalls.  This means that it cannot move any
# further.  Then it resets the angle to "0."  This means that when it
# rotates backward to "0" later on, it returns to this starting
# position.
belt_motor.run_until_stalled(-300, Stop.BRAKE, 30)
belt_motor.reset_angle(0)

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, it waits until the ball is placed on the conveyor belt.
# Second, the ball is moved upward until it reaches the ramp where it
# rolls down to the catch.
# Finally, the ball is moved to the left or the right cup, or an error
# sound is made, chosen at random.
#
# Then the process starts over.  The ball can be placed at the
# beginning of the conveyor belt again.
while True:

    # Wait until the ball is placed in front of the Color Sensor.
    while color_sensor.reflection() < 5:
        wait(10)
    wait(500)
    
    # Move the ball up on the conveyor belt.
    belt_motor.run_target(250, 450, Stop.COAST, False)

    # Wait until the ball hits the Touch Sensor at the catch at the end
    # of the ramp.
    while not touch_sensor.pressed():
        wait(10)
    
    # Generate a random integer between "-1" and "1" to determine what
    # to do with the ball.
    catch_command = randint(-1, 1)

    # If it generates a "1," change the light to green and move the
    # ball to the right cup.
    if catch_command == 1:
        brick.light(Color.GREEN)
        catch_motor.run_target(400, -20)
        wait(1000)
        catch_motor.run_target(400, 0, Stop.HOLD)
    # If it generates a "0," change the light to orange and move the
    # ball to the left cup.
    elif catch_command == 0:
        brick.light(Color.ORANGE)
        catch_motor.run_target(400, 20)
        wait(1000)
        catch_motor.run_target(400, 0, Stop.HOLD)
    # Otherwise, change the light to red and play an error sound.
    else:
        brick.light(Color.RED)
        brick.sound.file(SoundFile.RATCHET)
        wait(1000)
    
    # Return the conveyor belt to its starting position.
    belt_motor.run_target(250, 0)

職業適性

この授業を楽しむことができた生徒は、以下の進路について興味がある可能性があります。

  • システム建築エンジニア
  • 科学、技術、工学及び数学(科学技術)

学習評価

この学習におけるルーブリックの例
次のルーブリックを参考に、評価規準や判定基準を作成しましょう。

  1. 課題を部分的にこなした。
  2. 課題を十分にこなした。
  3. 期待を上回る達成度であった。

以下の成功基準を使用して、生徒の進度を評価します。

  • 生徒は優先される条件と妥協できる点を考え、複数の設計案を評価することができる。
  • 自主的に、実用的で独創的な解決方法を開発している。
  • 生徒は、自分のアイデアをはっきりとわかりやすく伝えることができる。

自己評価
生徒たちが十分な性能データを収集できたら、それぞれの解決方法について考察するよう促します。
次のような質問をするとよいでしょう:

  • あなたの解決方法は課題設定の条件を満たしていますか?
  • ロボットの動作をさらに正確にすることはできますか?
  • クラスメートはどのような方法で問題を解決しましたか?

解決方法を改善する方法を2つ考えて記録するよう促してください。

生徒同士のフィードバック
フィードバックの時間を設け、各グループに、自分たちのプロジェクトとほかのグループのプロジェクトを評価させます。相互評価は建設的なフィードバックをするスキルだけでなく、物事を分析するスキルや、自分の意見の根拠として客観的なデータを使う力を育てるのに役立ちます。

教師用サポート

学習内容:

  • 設計プロセスを用いて実生活に基づいた問題を解決する

情報(共通教科):
情報Ⅰ 2-(3)コンピュータとプログラミング
    情報Ⅱ 2-(3)情報とデータサイエンス
2-(4)情報システムとプログラミング
2-(5)情報と情報技術を活用した問題発見・解決の探求
数学:数学A 2-(3)数学と人間の活動
    数学B 2-(3)数学と社会生活
    数学C 2-(3)数学的な表現の工夫
理科:科学と人間生活 2-(1)科学技術の発展
    物理基礎 2-(1)物体の運動とエネルギー
2-(2)-(オ)物理学が拓く世界
    物理 2-(1)様々な運動
2-(3)電気と磁気
理数:理数探求基礎 2-ア〜イ、
理数探求 2-ア〜イ
工業:第1 工業技術基礎〜第28コンピュータシステム技術
情報(専門教科):情報産業と社会、課題研究、情報の表現と管理、情報テクノロジー、情報システムのプログラミング、情報デザイン、コンテンツの制作と発信、情報実習

国語:現代の国語 [知識及び技能] 2-(2)話や文章に含まれている情報の扱い方
[思考力、判断力、表現力等] A話すこと・聞くこと、B書くこと
論理国語
国語表現 [知識及び技能] 2-(1)-エ、
[思考力、判断力、表現力等] A話すこと・聞くこと-(2)-オ、
B書くこと-(2)-イ、ウ
美術:美術Ⅰ〜Ⅲ 2-A-(2)デザイン、(3)映像メディア表現
総合的な探求の時間

文部科学省高等学校学習指導要領(平成30年告知)
http://www.mext.go.jp/a_menu/shotou/new-cs/1407074.htm

生徒用資料

生徒用ワークシート

オンラインの HTMLページまたは印刷可能なPDFのいずれかとしてダウンロード、表示、共有いただけます。