Upload
lemien
View
227
Download
0
Embed Size (px)
Citation preview
Workshop Aufgabenstellung Blatt 1
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Start Up – LEGO Mindstorm EV3
Aufgabe 1:
Baue den Standard Roboter (Bauanleitung bis Seite 41, Link zur Anleitung (bis Seite 48))
http://robotsquare.com/wp-content/uploads/2013/10/45544_educator.pdf
Aufgabe 2:
Der Roboter soll für 2 Sekunden geradeaus fahren.
Tipp: Verwende die Standardsteuerung.
Aufgabe 3:
Lass den Roboter im Kreis fahren.
Tipp: Verwende den Großen Motor oder die Hebelsteuerung
Zusatz: Der Roboter soll verschiedene Radien fahren können.
Workshop Aufgabenstellung Blatt 1
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Aufgabe 4:
10 Reifenumdrehungen nach vorne fahren, 1 Sekunde warten und dann wieder
zurückfahren.
Zusatz: Der Roboter soll sich um 180° drehen und dann zurückfahren.
Aufgabe 5:
Baue den Berührungssensor-Aufsatz (Bauanleitung Seite 73 – 76, Online PDF Seite 63 - 68)
Aufgabe 6:
Der Roboter soll für 4 Sekunden nach vorne fahren, es sei denn der Berührungssensor wurde
am Anfang des Programmablaufes betätigt, dann soll der Roboter für 4 Sekunden
rückwärtsfahren.
Tipp: Verwende den Schalter
Workshop Aufgabenstellung Blatt 1
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Aufgabe 7:
Baue den Ultraschallsensor-Aufsatz (Bauanleitung Seite 42 – 47, Online PDF Seite 69 - 77)
Aufgabe 8:
Der Roboter soll solange geradeaus fahren bis der Ultraschallsensor ein Hindernis in einer
Entfernung von weniger als 50cm erkennt, seine Geschwindigkeit dann reduzieren und
solange weiterfahren bis der Berührungssensor ausschlägt. Der Roboter soll dann stehen
bleiben.
Tipp: Verwende eine Schleife mit einem Schalter
Zusatz: Nach Erreichen des Hindernisses zurückfahren und das Ganze wiederholen
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Workshop #1
Grundlagen, Motorsteuerung, Schleifen
Inhalte des Workshops
• Bauen und Kennenlernen des EV3 System
• Einstieg in die grafische Programmieroberfläche
- Aufbau der grafischen Oberfläche
- Wie kommt das Programm auf den Roboter?
- Ansteuerung von Motoren
- Sequentielle Programmierung
- Programmierung von Schleifen
- Ausgabe über Text, Bild, Ton und Statusleuchten
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Aufgabe 1: Aufbau des Standard Roboter
Baue den Standard Roboter (Bauanleitung bis Seite 41, Online PDF bis Seite 48)
Download Bauanleitung: http://goo.gl/Oc1GcH
Der Standard Roboter stellt die Basis für die 4 Workshops dar.
Aufgabe 2: Motoren – Standardsteuerung
Der Roboter soll für 2 Sekunden gerade aus fahren und anschließend stehen bleiben.
Probiere aus, wie sich die unterschiedlichen Einstellungen auswirken (Umdrehungen, Zeit, Grad).
Tipp: Mit Hilfe der Standardsteuerung können die beiden großen Motoren einfach angesteuert werden.
Standardsteuerung
Aufgabe 3: Motoren – Alternative Steuerungen
Der Roboter soll im Kreis fahren.
Zusatz: Finde heraus, wie sich die verschiedenen Einstellungen auf den Radius des Kreises
auswirken.
Tipp: Verwenden den Großen Motor oder die Hebelsteuerung, um die beiden großen Motoren einzeln
ansteuern zu können.
Großer Motor Hebelsteuerung
Aufgabe 4: Parcours – Eins nach dem Anderen
Der Roboter soll mehrere Schritte hintereinander ausführen:
1. 10 Umdrehungen nach vorne fahren
2. 3 Sekunden warten
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
3. 10 Umdrehungen rückwärts fahren
Zusatz: Der Roboter soll sich um 180° drehen und dann zurückfahren.
Zusatz: Bau auf dem Boden einen Parcours mit verschiedenen Gegenständen (Federpenal,
LegoBausteine, Schultaschen, …). Programmiere den Roboter nun so, dass er sich durch den Parcours
bewegt, ohne die Gegenstände zu berühren.
Aufgabe 5: Parcours – Vereinfachung mit Schleifen
Bau auf dem Boden einen quadratischen Parcours. Programmiere den Roboter so, dass er einmal
komplett den Parcours abfährt und wieder an der Startposition zu stehen kommt.
Erweitere dein Programm so, dass der Roboter 2 x den Parcours abfährt.
Das Programm wird so ziemlich schnell unübersichtlich. Verwende den Baustein Schleife um den
Roboter 4 x hintereinander den Parcours absolvieren zu lassen.
Mit eine Schleife können Anweisungen wiederholt werden.
Aufgabe 6: Ausgabe
Gib einen beliebigen Text über den Baustein Anzeige auf dem Display des Bricks aus
Verwende den Baustein Klang, um einen beliebigen Ton für 3 Sekunden abzuspielen
Lass die Statusleuchten des Bricks in den Farben rot, gelb und grün blinken. Verwende dazu den
Baustein Stein-Statusleuchte.
Zusatz: Programmiere mit dem Baustein Klang die Melodie „Alle meine Entchen“ und spiele die Melodie
mit Hilfe einer Schleife 3 x hintereinander ab.
Zusatz: Programmiere mit dem Baustein Anzeige eine Laufschrift, die von rechts nach links durch den
Bildschirm läuft (x- und y-Werte verwenden). Verwenden eine Schleife, um die Laufschrift 5 x durch den
Bildschirm laufen zu lassen.
Ausgabe über das Display, den Statusleuchten und dem Lautsprecher
Workshop Aufgabenstellung Blatt 2
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Start Up – LEGO Mindstorm EV3
Aufgabe 1:
Verwende den Roboter aus dem letzten Workshop mit Berührungs- und Ultraschall-Aufsatz.
Kontrolliere, ob noch alle Teile richtig angebracht sind und der Roboter vollständig ist.
Aufgabe 2:
Lass den Roboter immer solange gerade ausfahren, bis er ein Hindernis in weniger als 50cm
erkennt. Sobald er ein Objekt erkennt, soll er um eine beliebige Gradzahl wenden.
Aufgabe 3:
Baue den Farbsensor-Aufsatz (Bauanleitung Seite 69 – 76, Online PDF Seite 56 - 62)
Aufgabe 4:
Suche einen schwarzen flachen Gegenstand oder farbiges Papier, welchen/welches du als
Stop-Linie für deinen Roboter verwendest. Programmiere den Roboter nun so, dass er
solange geradeaus fährt, bis er eine schwarze Linie oder ein farbiges Papier erkennt.
Zusatz: Verwende statt dem Farbenvergleich den Vergleich des reflektierten Lichts um auch
Grautöne besser erkennen zu können.
Aufgabe 5:
Der Roboter soll nun auf 3 verschiedene Sensoren reagieren: den Berührungs-, Ultraschall-
und Farbsensor. Das heißt registriert der Berührungssensor einen Gegenstand oder bemerkt
der Ultraschallsensor einen Gegenstand in weniger als 50cm oder der Farbsensor erkennt
eine Linie / ein farbiges Papier, so soll der Roboter stehen bleiben.
Zusatz: Nach jeweiligem Erreichen eines Hindernisses soll der Roboter umdrehen und
weiterfahren, bis er wieder auf ein Hindernis stößt.
Workshop Aufgabenstellung Blatt 2
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Aufgabe 6:
Verwende das Programm von vorhin, füge jedoch nun Töne hinzu, die erkennen lassen, was
der Roboter gerade erkannt hat.
Zusatz: Verwende auch die Tastenbeleuchtung um darzustellen, welcher Sensor gerade etwas
erkannt hat.
Tipp: Verwende den Klang- sowie den Stein-Statusleuchtenblock.
Zusatz: Verwende noch dazu die Anzeige des Roboters um verschiedene Symbole anzeigen zu lassen,
sobald ein Sensor ein Hindernis erkennt.
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Workshop #2
Sensoren, Bedingungen
Inhalte des Workshops
• Verbauen und Kennenlernen der Sensoren des EV3 Systems
• Programmierkenntnisse
- Auslesen von Sensor-Werten
- Bedingungen – Reagieren auf Sensor-werte
- Wiederholung Schleifen
Workshop #2, Stand 24.11.2016 Seite 2 von 5
Aufgabe 1: Berührungssensor
Baue den Berührungssensor-Aufsatz (Bauanleitung Seite 73–76, Online PDF bis Seite 63–67)
Download Bauanleitung: http://goo.gl/Oc1GcH
Der Berührungssensor reagiert wie ein Schalter.
Aufgabe 1.a: Schalter – Reagieren auf eine Startbedingung
Ist der Berührungssensor beim Start des Programms gedrückt, so soll der Roboter 3 Sekunden vorwärts
fahren, sonst rückwärts. Anschließend soll der Roboter stehen bleiben.
Tipp: Mit einem Schalter kannst du auf verschiedene Sensor-Werte reagieren.
Schalter Oft ist es hilfreich, Schalter mit Schleifen zu kombinieren.
Aufgabe 1.b: Schalter – Kontinuierliche Überprüfung von Sensoren
Immer, wenn der Berührungssensor gedrückt ist, so soll die Statusleuchte rot aufleuchten. Ist der
Berührungssensor nicht gedrückt, so soll die Statusleuchte nicht leuchten.
Tipp: Verwende eine Schleife, damit der Roboter eine Aufgabe laufend erfüllen kann.
Workshop #2, Stand 24.11.2016 Seite 3 von 5
Aufgabe 2: Ultraschallsensor
Achtung: Sollte der Ultraschallsensor-Baustein nicht in der Programmieroberfläche vorhanden sein, so
muss der Treiber dafür installiert werden:
Der Treiber dafür ist unter https://www.lego.com/de-de/mindstorms/downloads im Bereich
EV3SOFTWAREBLÖCKE zu finden. Einfach herunterladen und in der Programmieroberfläche mit
Werkzeuge ⇨ Blöcke importieren auswählen und Importieren.
Baue den Ultraschallsensor-Aufsatz (Bauanleitung Seite 42–47, Online PDF bis Seite 68–76)
Mit dem Ultraschallsensor kann man Abstände messen.
Der Roboter fährt solange vorwärts, bis er ein Hindernis in weniger als 10cm Entfernung erkennt und
bleibt dann stehen. Sobald das Hindernis weg ist, soll der Roboter weiterfahren, bis wieder ein Hindernis
erkannt wird.
Zusatz: Der Roboter fährt bis auf 10 cm an ein Hindernis heran, fährt im Anschluss um 30 cm zurück,
dreht um 45 Grad und beginnt dann von neuem.
Zusatz: Verschachtelte Bedingung – Der Roboter fährt bis auf 50 cm an ein Hindernis heran und wird
dann mit abnehmender Distanz langsamer. Sobald der Berührungssensor aktiv wird, soll der Roboter sofort stehen bleiben.
Der gemessene Abstand kann zum Beispiel auch als Wert für die Geschwindigkeit verwendet werden.
Aufgabe 3: Farbsensor
Baue den Farbsensor-Aufsatz (Bauanleitung Seite 69–76, Online PDF bis Seite 60–66)
Workshop #2, Stand 24.11.2016 Seite 4 von 5
Der Farbsensor hat drei verschiedene Modi – Farbe, Stärke des reflektierten Lichts und Stärke des
Umgebungslichts.
Aufgabe 3.a: Farbe erkennen
Baue den Farbwürfel (Bauanleitung Seite 4–6)
Halte den Würfel vor den Farbsensor und gib die Farbe als Text am Bildschirm aus.
Tipp: Du kannst innerhalb eines Schalters einen weiteren Schalter verwenden.
Zusatz: Wird eine rote, eine gelbe oder eine grüne Farbe erkannt, so soll zusätzlich die entsprechende
Statusleuchte leuchten (rot-rot, gelb-gelb, grün-grün). Wir keine Farbe erkannt, so soll die Statusleuchte
nicht leuchten.
Aufgabe 3.b: Farbe als Stopp-Linie
Zusatz: Suche einen schwarzen flachen Gegenstand, ein schwarzes Papier oder ein Klebestreifen,
welchen/welches du als Stopp-Linie verwenden willst. Drehe den Farbsensor-Aufsatz so um, dass der Sensor nach unten misst und etwa 10mm vom Boden entfernt ist. Der Roboter soll jetzt solange fahren,
bis die Stopp-Linie erreicht ist und anschließend stehen bleiben.
Workshop #2, Stand 24.11.2016 Seite 5 von 5
Zusatz: Verwende statt dem Farbvergleich den Vergleich des reflektierenden Lichts.
Der Farbsensor wird so angebracht, dass er Richtung Untergrund misst.
Aufgabe 4: Kombinationen
Zusatz: Der Roboter soll jetzt auf alle drei Sensoren gleichzeitig entsprechend folgendem Pseudo-
Quelltext reagieren:
Schleife ( Unbegrenzt )
Schalter ( Abstand > 50 cm ) ?
JA:
Roboter fährt schnell
Aktuelle Farbe am Bildschirm ausgeben
NEIN:
Roboter fährt langsam Schalter (
Berührungssensor aktiv ) ?
JA:
Roboter bleibt stehen
Aktuelle Farbe am Bildschirm ausgeben
Ende Schleife
Zusatz: Denke dir weitere Aufgaben aus, die der Roboter erfüllen soll und setze diese um.
Workshop Aufgabenstellung Blatt 3
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Start Up – LEGO Mindstorm EV3
Aufgabe 1:
Verwende den Roboter des letzten Workshops zur Weiterarbeit und kontrolliere diesen noch
einmal, ob alle Teile richtig angebracht sind. Nun baue den farbigen Legowürfel (Bauanleitung
Seite 1 ‐ 4).
Aufgabe 2:
Lass den Roboter mithilfe des Farbsensors den Würfels erkennen und die erkannte Farbe wie
folgt auswerten: • Rot: Der Roboter soll stehen bleiben.
• Blau: Eine Links-Kurve rückwärtsfahren.
• Gelb: Eine Rechts-Kurve rückwärtsfahren.
• Grün: Rückwärtsfahren.
Zusatz: Bei Grün soll der Roboter nicht beliebig weit zurückfahren, sondern bis zur Ausgangsposition.
Aufgabe 3:
Baue die Hebevorrichtung und bringe diese anstelle des Ultraschallsensors an (Bauanleitung
Seite 54 – 68, Online PDF Seite 78 - 98)
Aufgabe 4:
Versuche nun, die Hebevorrichtung wie folgt einzusetzen: • Rot: Der Roboter soll stehen bleiben.
• Blau: Eine Links-Kurve-rückwärtsfahren.
• Gelb: Eine Rechts-Kurve rückwärtsfahren.
• Grün: Die Hebevorrichtung über den Würfel klappen und mit diesem weiterfahren.
Tipp: Klappe die Hebevorrichtung nach oben, dreh den Roboter zur Seite des Würfels und klappe diese anschließend wieder nach unten.
Tipp: Gib die jeweilige Farbe am Display aus, um bei der eventuellen Fehlersuche schneller voranzukommen.
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Workshop #3
Variablen
Inhalte des Workshops
• Programmierkenntnisse: Einführung in Variablen
- Schreibender Zugriff auf Variablen
- Lesender Zugriff auf Variablen
- Verarbeiten von Variablen
- Sensorwerte in Variablen speichern
- Logische Operatoren
Einführung in Variablen
Variablen – Ich packe in meinen Koffer …
Beim Programmieren ist es oft so, dass ich der Computer (Roboter) verschiedene Informationen verarbeiten
muss. Damit er jederzeit auf diese Informationen zugreifen kann, muss er sich zuerst diese Informationen merken und „in einen Koffer packen“. So ein Koffer wird in der Informatik Variable genannt.
Damit der Computer später den richtigen Koffer wieder findet, beschriftet er den Koffer. Bei Programmieren wird diese Beschriftung Variablenname genannt. Über diesen Variablennamen kann der Computer jetzt
jederzeit den richtigen Koffer öffnen und auf den Wert (Variablenwert) darin zugreifen.
Da in einen Koffer unterschiedliche Dinge gepackt werden können, gibt es unterschiedliche Arten von
Koffern, wie zum Beispiel eine Laptop-Tasche oder ein Reisekoffer. Genauso verhält es sich beim
Programmieren – hier unterscheiden sich die Variablen durch ihren Datentyp. Es können 3 unterschiedliche
Informationen in einer Variable gespeichert werden:
• Text ( z.B.: „Hallo Lego“)
• Numerischer Wert ( z.B.: 142 )
• Logischer Wert ( Ja oder Nein )
Eine Variable besteht also immer aus dem Variablennamen und dem zugehörigen Variablenwert und hat
eine bestimmten Datentyp.
Variablenname
Workshop #3, Stand 24.11.2016 Seite 2 von 5
Datentyp Variablenwert
Lesen und Schreiben von Variablen
Beim Programmieren gibt es zwei unterschiedliche Operationen, die du mit Variablen durchführen kannst.
Willst du Sachen in den Koffer packen, kannst du das mit der Operation Schreiben machen.
Mit der Operation Lesen kannst du nachsehen, was sich in einem Koffer befindet. Bevor du nachsehen
kannst, was sich in einem Koffer befindet, musst du natürlich erst einmal Sachen in den Koffer packen:
Nachdem ein Wert in die Variable Anzahl geschrieben wurden kann jederzeit darauf zugegriffen werden. Die
Ein- und Ausgänge der Bausteine werden mit Leitungen verbunden.
Sensoren-Werte merken
Um einen Sensor-Wert in eine Variable zu Schreiben, müssen eine Leitung vom Sensor zur Variable
gezogen werden. Der Wert, der jetzt in der Variable gespeichert ist, kann im späteren Programmverlauf zum
Beispiel als Wert für die Leistung eines Motors verwendet werden.
Der gemessen Abstand wird in der Der Inhalt der Variable Abstand wird als Wert für Variable Abstand
gespeichert. eine Einstellung bei einem Motor verwendet.
Aufgabe 1: Logische Werte
Verwende für diese Aufgabe den Berührungssensor-Aufsatz.
Zu Beginn der Programms soll überprüft werden, ob der Berührungssensor gedrückt ist oder nicht.
Workshop #3, Stand 24.11.2016 Seite 3 von 5
Im Anschluss wartet der Roboter 2 Sekunden, fährt dann für 3 Sekunden vorwärts und wartet wieder 2
Sekunden, egal wie der Zustand des Berührungssensors war.
War der Berührungssensor zu Beginn aktiv, so soll der Roboter sich um 180 Grad drehen und wieder für
3 Sekunden vorwärts fahren. War der Berührungssensor nicht gedrückt, so soll der Roboter 3 Sekunden
rückwärts fahren, ohne sich zu drehen.
Variable speichern ( Zustand Berührungssensor ) > Gedrueckt
2 Sekunden warten
3 Sekunden vorwärts fahren
2 Sekunden warten
Schalter ( Variable Gedrueckt ) ?
JA:
Umdrehen
3 Sekunden vorwärts fahren
NEIN:
3 Sekunden rückwärts fahren
Tipp: In einer Variable können auch logische Werte gespeichert werden. Ein logischer Wert hat nur zwei
mögliche Zustände: Ja / Nein. Die Variable kann sich so also gut merken, ob der Berührungssensor
gedrückt ist oder nicht.
Aufgabe 2: Schalter – Kontinuierliche Überprüfung von Sensoren
Hier soll der Roboter 2 Aufgaben ausführen!
1. Aufgabe: Es soll der Zustand des Berührungssensor laufend in die Variable mit dem Namen
Gedrueckt geschrieben werden.
2. Aufgabe: Der Zustand der Variable soll laufend ausgelesen werden –
Ist der Wert in der Variable „JA“, so soll die Statusleuchte des Bricks grün leuchten, ist der Wert „Nein“,
so soll die Statusleuchte des Bricks rot leuchten.
Zusatz: Der Roboter soll die beiden Aufgaben gleichzeitig ausführen.
Tipp: Um Aufgaben laufend durchzuführen, kannst du wieder eine Schleife verwenden.
Tipp: Damit der Roboter mehrere Aufgaben zur gleichen Zeit durchführen kann, kannst du mehrere
StartBausteine verwenden. Beim Herunterladen und Ausführen beginnen dann alle Start-Bausteine
gleichzeitig zu arbeiten.
Workshop #3, Stand 24.11.2016 Seite 4 von 5
Aufgabe 3: Schalter – Zählen mit Mathe
Es soll mitgezählt werden, wie oft der Berührungssensor gedrückt wurde. Die Anzahl der Berührungen
soll auf dem Display ausgegeben werden.
Zusatz: Führe die 2 Aufgaben gleichzeitig durch (Zählen, Am Display anzeigen).
Tipp: Mit dem Baustein Mathe kannst du verschiedene Rechnungen durchführen, wie zum Beispiel zwei
Zahlen addieren.
Tipp: Um den Inhalte von Variablen auf dem Display anzuzeigen, muss die Option "Per Leitung
übertragen" ausgewählt werden:
Anzeigen von Variablenwerten auf dem Display des Bricks.
Aufgabe 4: Schalter – Zählen und Vergleichen
Wurde der Berührungssensor weniger als 5 mal gedrückt, so soll die Statusleuchte grün leuchten, für
alle anderen Werte soll die Statusleuchte rot leuchten.
Zusatz: Wurde der Berührungssensor weniger als 5 mal gedrückt, so soll die Statusleuchte grün leuchten. Wurde er mehr als 10 mal gedrückt, so soll die Statusleuchte rot leuchten. Für alle Werte
dazwischen soll die Statusleuchte gelb leuchten.
Zusatz: Die Anzahl der Berührungen sollen zusätzlich am Display des Bricks angezeigt werden.
Zusatz: Führe die 3 Aufgaben gleichzeitig durch (Zählen, Am Display anzeigen, Statusleuchte).
Tipp: Um den Inhalte von Variablen zu Vergleichen, kannst du den Baustein Vergleichen verwenden:
Beispiel: Mit dem Baustein Vergleichen wird der Wert der Variable Gedrueckt mit dem Wert 3 verglichen.
Trifft das zu, so wird ein Motor angesteuert, sonst nicht.
Tipp: Verwende mehrere Schalter.
Workshop #3, Stand 24.11.2016 Seite 5 von 5
Aufgabe 5: Zählen und mehr …
Zusatz: Roboter soll in einer Schleife 2 Sekunden nach vor und dann zurück fahren. Im Display soll
angezeigt werden, wie oft er die Strecke schon gefahren ist.
Zusatz: Roboter soll in einer Schleife 2 Sekunden vorwärts fahren, umdrehen, 2 Sekunden
zurückfahren und wieder umdrehen.
Nach jedem Durchlauf soll der Roboter so oft piepsen, wie er Strecken gefahren ist.
Schleife (Unbegrenzt)
Variable speichern ( 0 ) > Anzahl
2 Sekunden vorwärts fahren
Umdrehen
2 Sekunden vorwärts fahren
Umdrehen
Variable speichern ( +1 ) > Anzahl
Schleife ( Anzahl )
Ton abspielen
1 Sekunde warten
Ende Schleife
Ende Schleife
Aufgabe 6: Farben lesen (Für die ganz Schnellen)
Zusatz: Zeige dem Roboter 10 mal nacheinander mit 5 Sekunden Pause dazwischen verschiedene
Farben. Die aktuelle Farbe soll immer am Display angezeigt werden.
Nach den 10 Durchläufen soll im Display angezeigt werden, wie oft die Farbe rot dabei war.
Zusatz: Lege eine farbige Fläche auf den Boden.
Der Roboter soll bis zur Fläche vorwärts fahren und dort die Farbe erkennen. Anschließend soll der
Roboter umdrehen und wieder zurückfahren. Am Ausgangspunkte angekommen, soll er die gelesene
Farbe am Display anzeigen.
Zusatz: Denke dir weitere Aufgaben aus, die der Roboter erfüllen soll und setze diese um.
Workshop Aufgabenstellung Blatt 4
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Start Up – LEGO Mindstorm EV3
Aufgabe 1:
Baue den Berührungssensor Aufsatz (Bauanleitung Seite 77 – 79, Online PDF Seite 62 - 68). Entferne alle anderen Aufsätze zuerst.
Aufgabe 2:
Nun bauen wir einen Reaktionszeitmesser, daher soll der Roboter nach 3 Sekunden einen Ton
ausgeben und daraufhin solange warten, bis der Berührungssensor betätigt wird. Sobald der Berührungssensor betätigt wurde, soll der Roboter die Zeit am Bildschirm ausgeben, die zwischen Ton und betätigen des Sensors vergangen ist.
Tipp: Der Ton muss kürzer als die Reaktionszeit eines Menschen sein, aber trotzdem noch
lang genug um hörbar zu sein. (0,02 – 0,1)
Tipp: Verwende den Zeitgeber 2-mal. (Zurücksetzen nach Ton und Messen bei Sensordruck).
Tipp: Führe die gemessene Zeit des Zeitgebers in den Anzeige-Block (Anzeige Block bei Text
auf: Per Leitung übertragen).
Zusatz: Die Zeit, die vergeht, bis der Ton ausgegeben wird, soll zufällig gewählt
werden. (unter Daten-Operationen -> Zufall)
Workshop Aufgabenstellung Blatt 4
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Aufgabe 3:
Programmiere das Programm nun so um, das der Roboter nach ausgeben des Tones losfährt. Nun soll verglichen werden, wer schneller ist, Mensch oder Roboter. Dazu soll die Zeit ausgeben werden die entweder durch Betätigen des Sensors oder einer Steintaste vergeht. Der Berührungssensor wird
betätigt, indem der Roboter auf eine Wand zufährt (Stelle den Roboter dazu dann ganz nah vor eine Wand). Die Steintaste soll von dir betätigt werden.
Tipp: Vergiss nicht, dass der Roboter stehenbleiben soll, sobald der Berührungssensor oder
eine Steintaste betätigt wurde.
Tipp: Vergiss nicht, irgendwie erkennbar zu machen, wer schneller war. (du kannst dazu
auf den Bildschirm schreiben lassen, wer es war.)
Zusatz: Taste dich an die Entfernung heran, die du brauchst, um schneller als der Roboter
zu sein.
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Workshop #4
Anwenden, Line-Follower
Inhalte des Workshops
• Programmierkenntnisse
- Vertiefung Variablen
- Verwenden von Text-Bausteinen
- Durchführen von Berechnungen
• Anwenden der bereits erworbenen Kenntnisse
Workshop #4, Stand 8.12.2016 Seite 2 von 6
Aufgabe 1: Entlang der schwarzen Linie
Verwende für diese Aufgabe die Wettbewerbsmatte von 2016 und baue den Farbsensor-Aufsatz so um,
dass er nach unten zeigt und mittig vor dem Roboter angebracht ist. Der Sensor soll sich etwa 5-10 mm
über dem Boden befinden.
Spielfeldmatte „Rap the scrap“ Der Farbsensor-Aufsatz wird mittig
angebracht.
Um einer Linie zu folgen, gibt es verschiedene Methoden. Einige dieser Methoden benötigen zwei
Farbsensoren. Die folgende Methode kommt mit einem Farbsensor aus:
Folgende Schritte sind notwendig, damit der Roboter auch bei unterschiedlichen Lichtverhältnissen gut klar
kommt:
1. Kalibrieren des Farbsensors
2. Finden der schwarzen Linie
3. Folgen der schwarzen Linie
Aufgabe 1.a: Kalibrieren des Farbsensors
Die Lichtverhältnisse haben eine starken Einfluß auf die Werte der Farbsensoren. Darum ist es wichtig, diese Einflüsse auszugleichen und die Farbsensoren zu „kalibrieren“.
Wenn zwischen einer schwarzen Fläche und eine nicht schwarzen Fläche unterschieden werden soll, dann bietet es sich an den Modus Messen – Stärke des reflektierenden Lichts an.
Zeige die aktuelle Stärke des reflektierenden Lichts laufend am Display an.
Der Roboter soll die Anweisungen entsprechend folgendem Pseudo-Quelltext umsetzen:
Workshop #4, Stand 8.12.2016 Seite 3 von 6
"Weiss messen" am Bildschirm ausgeben
Schleife ( 5 Sekunden )
Messen Stärke des reflektierenden Lichts
Aktuelle Stärke des reflektierenden Lichts am Bildschirm ausgeben
Ende Schleife
Variable speichern ( Stärke des reflektierenden Lichts ) > Weiss
"Schwarz messen" am Bildschirm ausgeben
Schleife ( 5 Sekunden )
Messen Stärke des reflektierenden Lichts
Aktuelle Stärke des reflektierenden Lichts am Bildschirm ausgeben
Ende Schleife
Variable speichern ( Stärke des reflektierenden Lichts ) > Schwarz
Inhalt der Variablen Weiss und Schwarz am Bildschirm ausgeben
10 Sekunden warten
Abfolge der Anzeige zum Lesen und Speichern der Stärke des reflektierenden Lichts auf dem Brick.
Tipp: Um Texte miteinander zu verbinden kannst du den Baustein Text verwenden:
Aufgabe 1.b: Start – Finde die schwarze Linie
Ausgangsstellung
Der Roboter soll so positioniert werden, dass er sich mit einem der Räder auf der grünen Startfläche
befindet und der Farbsensor darüber hinaus steht. Der Sensor soll sich dabei links von der schwarzen
Linie befinden.
Workshop #4, Stand 8.12.2016 Seite 4 von 6
Schreibe in die Variablen Schwarz und Weiss die Werte, die in Aufgabe 1.a
ermittelt wurden.
Toleranzen einbauen
Bei der Erkennung der Farben ist es hilfreich eine gewisse Toleranz einzubauen –
Wenn der Wert für Schwarz z.B. 10 beträgt, so soll der Roboter bereits ab einem Wert von 15 Schwarz
erkennen. Die Toleranz ist die Differenz aus den beiden Werten – in diesem Fall also 5.
Erstelle eine Variable Toleranz und speichere den Wert 10 darin.
Addiere zum Variablenwert Schwarz die Toleranz und speichere das Ergebnis wieder in die Variable
Schwarz.
Subtrahiere vom Variablenwert Weiss die Toleranz und speichere das Ergebnis wieder in die Variable
Weiss.
Tipp: Um mit Variablen rechnen zu können kannst du den Baustein Mathe verwenden:
Die Inhalte der beiden Variablen werden addiert und anschließend wieder gespeichert.
Drehen bis Schwarz erkannt wird
Der Roboter dreht sich solange im Uhrzeigersinn, bis der Sensor eine schwarze Linie erfasst.
Anschließend soll der Roboter aufhören sich zu drehen
Zusatz: Zeige laufend den aktuelle Stärke des reflektierenden Lichts sowie den Inhalt der Variable
Schwarz an.
Aufgabe 1.c: Los geht’s – Folge der schwarzen Linie
Nachdem der Roboter die schwarze Linie erkannt hat, soll er nun der Linie folgen.
Der Roboter folgt der Linie entsprechend der folgenden Grafik:
Workshop #4, Stand 8.12.2016 Seite 5 von 6
Schleife ( Unbegrenzt ) Schalter ( Stärke des reflektierenden
Lichts > Schwarz ) ?
JA:
Roboter fährt nach vorwärts und rechts
NEIN:
Roboter fährt nach vorwärts und links
Ende Schleife
Tipp: Verwende den Modus AN der Hebelsteuerung.
Zusatz: Der Roboter soll der Linie so schnell wie möglich folgen.
Zusatz: Stelle die Werte so ein, dass der Roboter bei der ersten kreuzenden schwarzen Linie gerade
aus weiterfährt.
Zusatz: Der Roboter soll möglichst schnell die grüne Fläche am anderen Ende der Matte erreichen.
Zusatz: Folge einer Linie, die mit dem Klebeband auf dem Fussboden aufgeklebt wird.
Aufgabe 2: Explorer (Für die ganz Schnellen)
Ausgangsstellung
Der Roboter soll so positioniert werden, dass er sich mit einem der Räder auf der grünen Startfläche
befindet und der Farbsensor darüber hinaus steht. Der Sensor soll sich dabei links von der schwarzen
Linie befinden.
Auf den ersten Kreuzungspunkt der schwarzen Linien wird ein farbiges Plättchen gelegt.
Aufgabe
Der Roboter fährt der schwarzen Linie entlang, bis er ein farbiges Plättchen erkennt. Anschließend
merkt sich der Roboter die Farbe und fährt wieder in den Startbereich zurück, wo er die Farbe des
Plättchens auf dem Display ausgibt.
Zusatz: Der Roboter befindet sich vollständig über dem grünen Startbereich.
Zusatz: Der Roboter fährt auf den Zielbereich mit der Farbe, die das Plättchen angibt.
Workshop #4, Stand 8.12.2016 Seite 6 von 6
Tipp: Für die Ermittlung der Farben muss der Farbsensor auf einen anderen Modus umgeschalten werden.
Workshop Aufgabenstellung Blatt 5
LEGO® LEAGUE DISTRICT SCHÄRDING (mit freundlicher Genehmigung der HTBLA Braunau, Christian Hanl)
Einführung in Variablen
Variablen werden bei der Programmierung der Lego Roboter benötigt, um Zahlen, Zeichen oder Werte zwischen
zu speichern, um diese später im Programm wieder abrufen zu können.
1. Variablen hinzufügen
Bevor wir eine Variable benutzen können müssen wir eine solche zuerst hinzufügen. Dazu ziehen wir uns aus dem Reiter Daten-Operation den Block Variable in unser Programm und fügen eine neue Variable durch einen Klick in das leere weiße Feld des Blockes hinzu und benennen diese.
2. Werte speichern
Um nun einen Wert in die Variable einzuspeichern (in unserem Fall die
Variable var) wählen wir unter der Option Schreiben + Numerischer
Wert aus und geben entweder den Wert direkt ein oder ziehen den Wert
von einem anderen Block heran (z.B. den Messwert des
Entfernungsmessers).
3. Werte auslesen
Um an einem späteren Programmabschnitt nun den Variablenwert auslesen
zu können, müssen wir an der gewünschten Stelle noch einen Variablen-
Block hineinziehen und bei diesem die Option Lesen + Numerischer
Wert auswählen. Der ausgelesene Wert kann jetzt auf dieselbe Weise wie
beim Einspeichern herausgezogen werden, um Beispielsweise die
Geschwindigkeit eines Motors zu steuern.
Dies waren auch schon die grundlegenden Informationen, die man zur Benutzung von Variablen bei der Lego
Mindstorms Programmierung braucht. Doch da wir nicht nur Werte abspeichern und auslesen wollen, sondern
auch mathematische Operationen ausführen wollen, bietet die Lego Software auch noch viele andere Blöcke
unter dem Reiter Daten Operation, wie den Mathe-Block, den Vergleichen-Block oder den Runden-Block.