MINDSTORMS EV3 Set

Ein System für die Geschwindigkeits-regelung entwickeln

Eine Geschwindigkeits-regelanlage entwickeln, die per Knopfdruck die Geschwindigkeit eines Fahrzeugs ändert.

120+ Min.
Fortgeschrittene
Klassen 11–13
set-cruise-controle

Unterrichtsplan

Vorbereiten
- Lesen Sie diese Unterrichtsmaterialien durch.
- Falls Sie es für nötig erachten, planen Sie eine Unterrichtsstunde ein, in der Sie zur Einführung die Erste-Schritte-Materialien in der EV3 Desktop-Software oder der EV3 Programmier-App bearbeiten. Dies wird Ihren Schülerinnen und Schülern dabei helfen, sich mit LEGO® MINDSTORMS® Education EV3 vertraut zu machen.

Einführen (30 Min.)
- Nutzen Sie die unten stehenden Diskussionsideen, um ein Gespräch über den Inhalt dieses Projekts anzuregen.
- Erklären Sie das Projekt.
- Teilen Sie die Klasse in Zweierteams auf.
- Geben Sie den Schülerinnen und Schülern Zeit, um Ideen zusammenzutragen.

Erkunden (30 Min.)
- Lassen Sie die Teams mehrere Prototypen entwickeln.
- Regen Sie sie dazu an, sowohl beim Bauen als auch beim Programmieren zu experimentieren.
- Lassen Sie die Teams zwei Lösungen bauen und testen.

Erklären (60 Min.)
- Lassen Sie jedes Team seine Lösungen ausprobieren und anschließend die beste auswählen.
- Achten Sie darauf, dass sie in der Lage sind, eigene Tabellen für die Tests zu erstellen.
- Lassen Sie den Teams etwas Zeit, um ihre Projekte abzuschließen und Materialien zum Dokumentieren ihrer Arbeit zusammenzustellen.

Vertiefen (60 Min.)
- Geben Sie den Teams Zeit, um ihren Abschlussbericht zu erstellen.
- Lassen Sie die Teams einzeln ihre Ergebnisse vorstellen.

Beurteilen
- Geben Sie allen Schülerinnen und Schülern einzeln Rückmeldung zu ihrer jeweiligen Leistung.
- Zur Unterstützung können Sie hierfür die Bewertungsraster nutzen.

Eine Diskussion anregen

Mit der Geschwindigkeitsregelanlage wird in Pkw die Geschwindigkeit des Fahrzeugs automatisch angepasst. Auch wenn diese Technologie sehr modern erscheinen mag, wurde sie tatsächlich schon 1958 eingeführt. Wie funktioniert eine Geschwindigkeitsregelanlage?

set-cruise-controle

Regen Sie die Schülerinnen und Schüler dazu an, ihre Ideen auszutauschen.

Bitten Sie sie, über folgende Fragen nachzudenken:

  • Welchem Zweck dienen Geschwindigkeitsregelanlagen in Fahrzeugen?
  • Wie unterstützt die Geschwindigkeitsregelanlage den Fahrer bei langen Autofahrten?
  • Wie könnte man die Geschwindigkeitsregelanlage verbessern?
  • Wie würde der Fahrer ein System für die Geschwindigkeitsregelung verwenden, das über eine Taste aktiviert wird?
  • Welche Elemente müsst ihr in eure Programme integrieren, damit sich die Motorgeschwindigkeit auf Knopfdruck verändert?

Geben Sie den Schülerinnen und Schülern Zeit, diese Fragen zu beantworten:

Ermutigen Sie die Teams dazu, ihre ersten Ideen zu dokumentieren und zu begründen, warum sie diese oder jene Lösung für den ersten Prototyp ausgewählt haben. Fragen Sie, wie man die ausgewählten Ideen im weiteren Verlauf des Projekts beurteilen könnte. Wenn die Teams später ihre Arbeit überprüfen und überarbeiten, haben sie so bereits genaue Anhaltspunkte, die sie zum Beurteilen ihrer Lösung heranziehen können. Darauf aufbauend können sie entscheiden, ob die Lösung ihren Zweck erfüllt oder nicht.

Bautipps

Lassen Sie die Teams zuerst ein Fahrzeug bauen. Sie können entweder eines der vorgeschlagenen LEGO® Education MINDSTORMS® EV3 Fahrgestell-Modelle oder ein eigenes Modell bauen. Achten Sie darauf, dass die Modelle Knöpfe und Tasten enthalten, die denen von Autos mit Geschwindigkeitsregelanlage ähneln.

ev3-robot-color-sensor

Zwei Berührungssensoren verwenden

Erklären Sie, dass die Schülerinnen und Schüler bei der heutigen Aufgabe zwei Berührungssensoren verwenden werden, um die Geschwindigkeit ihres Fahrgestell-Modells zu regeln und aufrechtzuerhalten.

Programmiertipps

Die Schülerinnen und Schüler werden höchstwahrscheinlich einen Variablen-Block für dieses Projekt verwenden. Ein Variablen-Block ist ein Block, der Daten speichert (d. h. Text, logische Werte, numerische Werte oder Arrays), die jederzeit überschrieben werden können, während das Programm ausgeführt wird.

Eine Variable bietet die Möglichkeit, aktualisierbare Werte in einem Programm zu speichern. Der in einer Variablen gespeicherte Wert kann immer wieder überschrieben werden, solange das Programm läuft.

Geschwindigkeit mit einem Variablen-Programm erhöhen

coding-07-01

Erläuterung des Programms

  1. Programm ausführen.
  2. Einen Variablen-Block namens „Geschwindigkeit“ erstellen und den Wert „0“ eingeben.
  3. Wenn der Berührungssensor gedrückt wird, soll Folgendes geschehen:

    a. Variable namens „Geschwindigkeit“ auslesen.
    b. Zum ausgelesenen Wert „10“ addieren.
    c. Ergebnis in die Variable namens „Geschwindigkeit“ eingeben.
    d. Variable namens „Geschwindigkeit“ auslesen.
    e. Motoren B und C mit der Geschwindigkeit starten, die in der Variablen „Geschwindigkeit“ gespeichert ist, SONST nichts tun.

  1. Schritte 3a bis 3e unendlich wiederholen.

Geschwindigkeit mit Variablen erhöhen und verringern.

coding-07-02

Erläuterung des Programms

  1. Programm ausführen.
  2. Einen Variablen-Block namens „Geschwindigkeit“ erstellen und den Wert „0“ eingeben. Anschließend die folgenden zwei Aufgaben ausführen.

AUFGABE 1
3. Wenn Berührungssensor 1 gedrückt wird, soll Folgendes geschehen:

a. Variable namens „Geschwindigkeit“ auslesen.
b. Zum ausgelesenen Wert „10“ addieren.
c. Ergebnis in die Variable namens „Geschwindigkeit“ eingeben.
d. Variable namens „Geschwindigkeit“ auslesen.
e. Motoren B und C mit der Geschwindigkeit starten, die in der Variablen „Geschwindigkeit“ gespeichert ist, SONST nichts tun.

  1. Schritte 3a bis 3e unendlich wiederholen.

AUFGABE 2
5. Wenn Berührungssensor 2 gedrückt wird, soll Folgendes geschehen:

a. Variable namens „Geschwindigkeit“ auslesen.
b. Vom ausgelesenen Wert „10“ subtrahieren.
c. Ergebnis in die Variable namens „Geschwindigkeit“ eingeben.
d. Variable namens „Geschwindigkeit“ auslesen.
e. Motoren B und C mit der Geschwindigkeit starten, die in der Variablen „Geschwindigkeit“ gespeichert ist, SONST nichts tun.

  1. Schritte 5a bis 5e unendlich wiederholen.

Geschwindigkeit mit Variablen und Display erhöhen und verringern.
Lassen Sie die Schülerinnen und Schüler den Display-Block verwenden, um die Geschwindigkeit des Fahrgestells anzuzeigen.

coding-07-03

Erläuterung des Programms

  1. Programm ausführen.
  2. Einen Variablen-Block namens „Geschwindigkeit“ erstellen und den Wert „0“ eingeben. Anschließend die folgenden drei Aufgaben ausführen.

Aufgabe 1
3. Den eigenen Block „Beschleunigung“ ausführen.

Aufgabe 2
4. Den eigenen Block „Abbremsen“ ausführen.

Aufgabe 3
5. Variable namens „Geschwindigkeit“ auslesen.
6. Den in der Variablen „Geschwindigkeit“ gespeicherten Wert anzeigen.
7. Schritte 5 und 6 unendlich wiederholen.

BEISPIELPROGRAMME HERUNTERLADEN15 kB, erfordert die EV3 Desktop-Software

Programmierlösung EV3 MicroPython

Geschwindigkeit mit einer Variablen erhöhen

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor
from pybricks.parameters import Port, Stop, Button
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
while True:

    # Check whether the Touch Sensor is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10
    
    # If the speed variable has changed, update the speed of the robot.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

Geschwindigkeit mit einer Variablen erhöhen und verringern

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor
from pybricks.parameters import Port, Stop, Button
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Set up the Touch Sensor on Port 2.  It is used to decrease the speed
# of the robot.
decrease_touch_sensor = TouchSensor(Port.S2)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, increase the speed variable if Touch Sensor 1 is pressed.
# Second, decrease the speed variable if Touch Sensor 2 is pressed.
# Finally, the robot updates its speed if the speed variable was
# changed.
#
# Then the loop starts over after a brief pause.
while True:

    # Check whether Touch Sensor 1 is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10
    
    # Check whether Touch Sensor 2 is pressed, and decrease the speed
    # variable by 10 mm per second if it is.
    if decrease_touch_sensor.pressed():
        speed -= 10
    
    # If the speed variable has changed, update the speed of the robot.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

Geschwindigkeit mit einer Variablen und dem Display erhöhen und verringern

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor
from pybricks.parameters import Port, Stop, Button
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Set up the Touch Sensor on Port 2.  It is used to decrease the speed
# of the robot.
decrease_touch_sensor = TouchSensor(Port.S2)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, increase the speed variable if Touch Sensor 1 is pressed.
# Second, decrease the speed variable if Touch Sensor 2 is pressed.
# Finally, the robot updates its speed if the speed variable was
# changed, and displays it on the screen.
#
# Then the loop starts over after a brief pause.
while True:

    # Check whether Touch Sensor 1 is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10
    
    # Check whether Touch Sensor 2 is pressed, and decrease the speed
    # variable by 10 mm per second if it is.
    if decrease_touch_sensor.pressed():
        speed -= 10
    
    # If the speed variable has changed, update the speed of the robot
    # and display the new speed in the center of the screen.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)
        brick.display.clear()
        brick.display.text(speed, (85, 70))

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

Erweiterungen

Erweiterung: sprachliche Ausdrucksfähigkeit

Option 1
Um die sprachliche Ausdrucksfähigkeit zu fördern, können Sie die Schülerinnen und Schüler Folgendes tun lassen:

  • Mithilfe von schriftlichen Aufzeichnungen und/oder Fotos den Konstruktionsprozess zusammenfassen und einen Abschlussbericht erstellen
  • Ein Video erstellen, das den Konstruktionsprozess zeigt – von den ersten Ideen bis zum fertigen Projekt
  • Eine Präsentation über ihr Programm erarbeiten
  • Eine Präsentation erarbeiten, in der sie eine Verbindung zwischen ihrem Projekt und Anwendungen ähnlicher Systeme aus dem Alltag herstellen sowie neue Erfindungen beschreiben, die man auf Grundlage ihrer Arbeit entwickeln könnte

Option 2
Für diese Aufgabe haben die Teams ein System für die Geschwindigkeitsregelung gebaut. Einzelpersonen und Behörden erfassen Daten über die Geschwindigkeit von Fahrzeugen, um Verkehrsinformationen zu veröffentlichen und die Wahrscheinlichkeit von Unfällen zu reduzieren.
Um die sprachliche Ausdrucksfähigkeit zu fördern, können Sie die Schülerinnen und Schüler Folgendes tun lassen:

  • Schriftlich ein Argument dafür ausformulieren, dass sich die Häufigkeit von Autounfällen reduzieren lässt, wenn Einzelpersonen und Behörden Daten über die Geschwindigkeit von Fahrzeugen erfassen, um die Verkehrssicherheit zu überwachen
  • Auf das Gegenargument antworten, dass dieses Verfahren eine erhebliche Verletzung des Datenschutzes darstellt, sowie spezifische Belege finden, mit denen man die Stärken und Schwächen des Gegenarguments abwägen kann

Erweiterung: Mathematik

Für diese Aufgabe haben die Teams ein System für die Geschwindigkeitsregelung gebaut. Menschliche Fahrer sind darin geübt, die Straßenbedingungen zu beurteilen und ihre Geschwindigkeit dementsprechend anzupassen. Fahrerlose Systeme müssen das jedoch erst lernen.
Um mathematische Fähigkeiten zu fördern und die künstliche Intelligenz hinter fahrerlosen Fahrzeugen zu erforschen, können Sie die Schülerinnen und Schüler Folgendes tun lassen:

  • Überlegen, mit welchen Variablen bestimmt werden kann, wie sich die Straßenbedingungen auf das Fahrverhalten und die Leistung eines Fahrzeugs auswirken
  • Drei oder vier dieser Variablen für ein mathematisches Modell der Straßenbedingungen auswählen und eine Datentabelle erstellen, um die Beziehungen zwischen diesen Variablen und der idealen Geschwindigkeit des Fahrzeugs darzustellen
  • Vor dem Hintergrund, dass autonome Fahrzeuge das maschinelle Lernen nutzen, um die Beziehung zwischen den Variablen für die Straßenbedingungen und der Fahrzeuggeschwindigkeit zu bestimmen und zu aktualisieren, selbst Variablen für trockene, nasse und verschneite Straßenbedingungen bestimmen und dann die Beziehung zwischen diesen Variablen und sicheren Geschwindigkeiten vorhersagen (z. B. könnte eine Variable für „ trockene Straße“ die Rauheit der Straße sein)

Leistungsbewertung

Checkliste für Beobachtungen
Erstellen Sie eine geeignete Bewertungsskala, wie zum Beispiel:

  1. Erwartungen zum Teil erfüllt
  2. Erwartungen vollständig erfüllt
  3. Erwartungen übertroffen

Nutzen Sie die folgenden Kriterien, um den Lernfortschritt der Schülerinnen und Schüler zu beurteilen:

  • Sie können die wichtigsten Elemente eines Problems bestimmen.
  • Sie können selbstständig eine kreative Lösung finden und entwickeln.
  • Sie können ihre Ideen klar und deutlich kommunizieren.

Selbsteinschätzung
Wenn die Teams einige Leistungsdaten zusammengetragen haben, geben Sie ihnen Zeit, um über ihre Lösungen nachzudenken. Geben Sie Impulse durch Fragen wie:

  • Erfüllt die Lösung die Kriterien aus der Konstruktionsaufgabe?
  • Könnte man die Bewegung(en) des Roboters noch präziser gestalten?
  • Wie haben andere Teams die Aufgabe gelöst?

Bitten Sie die Teams, Ideen dazu zu sammeln, wie sie ihre Lösungen verbessern könnten. Anschließend sollen sie zwei Verbesserungsmöglichkeiten dokumentieren.

Gegenseitiges Feedback
Regen Sie eine Art „Peer-Review“ an, bei der jedes Team das eigene Projekt und die Projekte der anderen Teams beurteilen soll. Dieser Beurteilungsprozess hilft den Schülerinnen und Schülern dabei, ihre Fähigkeit zu konstruktiver Kritik zu entwickeln. Außerdem lernen sie dabei, auf Grundlage objektiver Daten zu argumentieren und zu urteilen.

In welchen Berufen sind diese Fähigkeiten gefragt?

Schülerinnen und Schüler, die sich für diese Aufgabe begeistern, könnten sich auch für folgende Berufszweige interessieren:

  • Wirtschaft und Finanzen (Unternehmen)
  • Fertigungstechnik und Maschinenbau (Planungsbüros)

Unterstützung für Lehrkräfte

Die Schülerinnen und Schüler werden
- den Konstruktionsprozess nutzen, um ein Problem mit Alltagsbezug zu lösen.

Informatik

Standards für inhaltsbezogene Kompetenzen
• Angewandte Informatik
• Softwaretechnik
◦ Planung und Durchführung kooperativer Arbeitsabläufe
• Programmiersprachen, formale Sprachen, Sprachen und Automaten, Datenstrukturen
• Technische Informatik
◦ Einblick in die Prozessdatenverarbeitung: Signal, Daten, Datentransport, Messen, Steuern, Regeln
• Algorithmen
◦ Analyse, Entwurf und Implementierung einfacher Algorithmen
◦ Beherrschen der Implementierung ausgewählter Algorithmen in einer Programmierumgebung
• Informatik, Mensch und Gesellschaft
◦ Einsatz von Informatiksystemen
◦ Wirkungen und Grenzen der Automatisierung
• Vernetzung von Themenfeldern

Prozessbezogene Kompetenzen
• Argumentieren
• Modellieren
• Implementieren
• Darstellen und Interpretieren
• Kommunizieren und Kooperieren
• Projektorientierter Unterricht
◦ Kooperieren und Kommunizieren
◦ Kreatives Schaffen und Problemlösen

Technik

Standards für inhaltsbezogene Kompetenzen
• Technische Innovation
◦ Einfluss von Grundlagenforschung auf die Produkt- und Anwendungsentwicklung
• Automatisierungstechnik
◦ Digitale Sensoren und Aktoren
◦ Logik-Bausteine, Speicher und Zähler
◦ Speicherprogrammierbare Systeme
• Entwicklungsfelder neuer Technologien, Zukunftstechnologien
◦ Informations- und Kommunikationstechnologie

Mathematik und Physik

• Diverse Grundlagen aus dem Mathematikunterricht
• Alle aufgeführten prozessbezogenen Kompetenzen

Naturwissenschaft und Technik (Schulversuch Leistungsfach und Basisfach Baden-Württemberg)

Standards für iinhaltsbezogene Kompetenzen
• Denk- und Arbeitsweisen in NwT
◦ Systeme und Prozesse
◦ Technische und wissenschaftliche Handlungskompetenzen
◦ Technikfolgenabschätzung
• Technische Mechanik und Produktentwicklung
◦ Produktentwicklung
• Elektro- und Informationstechnik
◦ Messen, Steuern, Regeln
◦ Datenkommunikation

Prozessbezogene Kompetenzen
• Erkenntnisgewinnung und Forschen
• Entwicklung und Konstruktion
• Kommunikation und Organisation
• Bedeutung und Bewertung

IMPLIZIT: Ethik

Standards für inhaltsbezogene Kompetenzen
• Verantwortung und angewandte Ethik
◦ Verantwortungsethik
• Werte und Normen des Handelns
◦ Nützlichkeit und Pflicht als ethische Prinzipien
◦ Verantwortung in ethischen Anwendungskontexten

Prozessbezogene Kompetenzen
• Wahrnehmen und sich hineinversetzen
• Analysieren und interpretieren
• Argumentieren und reflektieren
• Beurteilen und (sich) entscheiden

Deutsch

Standards für inhaltsbezogene Kompetenzen
• Texte und andere Medien

Materialien für Schülerinnen und Schüler

Schülerarbeitsblatt

Als HTML-Webseite oder PDF-Datei zum Ausdrucken herunterladen, anzeigen oder weiterleiten.

Teilen mit:

Google ClassroomGoogle Classroom