4. die schalter - hauserurs.ch schalter.pdf · lösung 1 1. wir beginnen mit ... 6. bleibt nur noch...
Post on 18-Sep-2018
215 Views
Preview:
TRANSCRIPT
4. Die Schalter 1
4-LEGO Schalter 1 14.05.2012
4. Die Schalter
Inhaltsverzeichnis
4.1. Die Sensor-Schalter ................................................................................................... 2
4.1.1. Der Ultraschall-Schalter ...................................................................................... 2
4.1.2. Der Licht-Schalter ................................................................................................ 5
4.1.3. Der Berührungs-Schalter .................................................................................... 7
4.1.4. Der Geräusch-Schalter ........................................................................................ 9
4.2. Der Wert-Schalter ..................................................................................................... 9
4.2.1. Der Zahl-Schalter ............................................................................................... 10
4.2.2. Der Logik-Schalter ............................................................................................. 12
4. Die Schalter: Die Sensor-Schalter 2
4-LEGO Schalter 2 14.05.2012
4.1. Die Sensor-Schalter
Ohne Schalter lassen sich keine komplexen und intelligenten Programme schreiben.
Sie dienen dazu dem Roboter eine Entscheidungsmöglichkeit anzubieten. Du kannst
dir den Schalter als Weiche einer Eisenbahn vorstellen: Je nachdem wie die Weiche
gestellt ist, führt der Roboter einen anderen Programmteil aus. Wovon die Weichen-
stellung abhängt, das können wir festlegen: Entweder von einem Sensor, der reagiert,
von einem Zahlen- oder einem Logikwert.
4.1.1. Der Ultraschall-Schalter
Beispiel 1
Der Roboter soll so lange geradeaus fahren, bis er ein Hindernis auf 30cm erkennt.
Solange das Hindernis immer noch in Sichtweite (30cm) ist, soll er sich nach rechts
drehen.
Lösung 1
1. Wir beginnen mit einem neuen Arbeitsblatt «1_Bsp_4_1_1».
2. Da der Roboter ständig fährt oder dreht, beginnen wir mit einer ∞-Schleife.
3. Nun muss der Roboter ständig den Ultraschallsensor abfragen: Ist ein Hindernis
in Sichtweite oder nicht? Dazu verwenden wir aus der «Allgemeinen Palette» den
untersten «Schalterbaustein» und setzen ihn in die Schleife hinein .
1 2
2 1
Schalter sind Ent-scheidungsbaustei-
ne: Der Roboter
kann je nach Situa-
tion auf eine Bege-
benheit anders
reagieren.
4. Die Schalter: Die Sensor-Schalter 3
4-LEGO Schalter 3 14.05.2012
4. Ändere die «Sensor»-Eigenschaft des Schalters und stell den «Ultraschallsensor»
neu ein . Pass die Parameter des Sensors an, damit die Sichtweite auf 30cm re-
agiert Experimentiere mit der «Offenen Ansicht» bzw. der «Geschlossenen
Ansicht» . Achte dabei auf den Schalter: In der «Geschlossenen Ansicht» sind
die beiden Programmstränge hintereinander auf zwei Reitern (Karteikarten) sor-
tiert, wobei der vordere den hinteren verdeckt. Du kannst durch Klicken auf die
beiden Symbole die Reiter wechseln. Wähle die Ansicht, die dir besser ge-
fällt.
5. Der obere Schalterpfad ist mit einer Nahaufnahme einer Blume markiert.
D.h. dieser Ast des Programms wird ausgeführt, wenn der Roboter die eingestell-
te 30cm-Grenze unterschreitet. Füge in diesen Ast einen Motorbaustein ein,
der langsam nach rechts dreht. Damit wir eine kontinuierliche Drehung errei-
chen, wähle die Dauer «unbegrenzt». Der untere Ast des Programms ist mit einer
Bergsilhouette markiert. D.h. der Roboter ist weit weg vom Objekt. Füge in
diesen Ast ebenfalls einen Motorbaustein ein. Dieser soll langsam geradeaus
fahren und die Dauer sollte ebenfalls auf «unbegrenzt» gestellt sein.
1
2
2
1
1 2
3
3
2
1
Schalter bilden
Verzweigungen wie
bei Zugweichen.
Die Verzweigungen
kannst du gleichzei-
tig oder wie Reiter (Karteikarten)
hintereinander
darstellen lassen.
Ein Motorblock,
dessen Laufdauer
auf «unbegrenzt»
gesetzt wird, hört erst dann auf, wenn
ein anderer Motor-
block die Bewe-
gung unterbricht
oder das Programm
beendet ist.
4. Die Schalter: Die Sensor-Schalter 4
4-LEGO Schalter 4 14.05.2012
6. Überlege dir, was das Programm genau macht, bevor du es probierst. Wird der
Roboter die Vorgaben erfüllen? Wieso sind die Motorbausteine auf «unbegrenzt»
eingestellt?
Aufgabe 1
Erweitere das letzte Beispiel so, dass der Roboter eine kurze Strecke rückwärts fährt,
wenn er zu nahe am Hindernis ist. Danach soll er eine 90°-Drehung machen und
weiterfahren.
Aufgabe 2
Konntest du Aufgabe 1 selbst lösen und programmieren? Um die Lösung solcher
Probleme zu finden, ist es oft hilfreich ein schematisches Diagramm der Abläufe
aufzuzeichnen. Danach ist der Schritt zur Umsetzung in ein korrekt laufendes Pro-
gramm nicht mehr so gross. Drei mögliche Schemata für Aufgabe 1 sind unten abge-
bildet. Das linke nennt man «Flussdiagramm», das rechte ist ein «Struktogramm» und
das dritte ein Übergangsdiagramm zwischen den beiden. Studiere die drei Diagram-
me, ergänze sie wenn nötig und erkläre, wo die wesentlichen Unterschiede liegen.
Flussdiagramm Struktogramm
Start
Distanz x
x<30cm? J
�R �V
90°
N
Wiederhole
Bis ∞
Start
Distanz x
x<30cm? J
�R
N
�V
90°
Start
Distanz x
x<30cm? J
�
N
�
90°
Diagramme helfen
die schematischen
Abläufe zu ordnen,
zu verstehen und in eine zeitliche Rei-
henfolge zu setzen.
Aus einem korrek-
ten Diagramm kann
man dann ein Pro-gramm umsetzen.
4. Die Schalter: Die Sensor-Schalter 5
4-LEGO Schalter 5 14.05.2012
Aufgabe 3
Übersetze das folgende Diagramm in ein lauffähiges
Programm und erkläre in Worten, was es machen
wird!
Aufgabe 4
Das letzte Programm soll folgendermassen erweitert
werden:
Sollte die 20cm-Grenze unterschritten werden, hält der Roboter kurz an.
Er fährt anschliessend rückwärts, bis die 30cm-Grenze erreicht ist. Dabei ertönt
ein Warnsignal.
Er dreht sich so lange nach links, bis er eine frei Sicht von mindestens 50cm hat.
Erst dann fährt er geradeaus weiter.
Skizziere für dieses Problem ein Struktogramm bevor du anfängst zu programmieren!
4.1.2. Der Licht-Schalter
Beispiel 2
Der Roboter soll einer schwarzen Linie folgen: Er soll gera-
deaus fahren so lange der Lichtsensor einen tiefen (= dun-
kel) Wert meldet. Wenn es heller wird, soll der Roboter eine
Korrektur des Fahrtweges vornehmen. Da der Helligkeits-
wert sehr von den Lichtverhältnissen des Raumes abhängt,
soll der NXT-Bildschirm den momentan gemessenen Hel-
ligkeitswert anzeigen.
Lösung 2
1. Wir beginnen mit einem neuen Arbeitsblatt «2_Bsp_4_1_2».
2. Da der Roboter ständig die gleichen Schritte wiederholen muss, beginnen wir mit
einer ∞-Schleife.
Start
Helligkeit h
h<35? J
∞� ∞
N
Wiederhole
Zeige h an
Bis ∞
Start
Distanz x
x>30cm? N
�V
J
Wiederhole
1s �R
Wiederhole
Bis ∞
Bis x>50
Der Lichtschalter
regiert auf Hellig-
keit bzw. Dunkel-
heit.
4. Die Schalter: Die Sensor-Schalter 6
4-LEGO Schalter 6 14.05.2012
3. Um den Helligkeitswert anzugeben, müssen wir ihn zuerst separat messen: Auf
der «Vollständigen Palette » findest du unter den «Sensoren » den
«Lichtsensor»-Baustein . Füge ihn in die Schleife ein.
4. Konvertiere die Helligkeitsintensität (das ist eine Zahl) mit Hilfe des Konvertie-
rungsbausteins in einen Text und gib das Ergebnis auf den NXT-
Bildschirm aus.
5. Als nächstes folgt die Entscheidung: Ist es hell genug oder nicht? Setze einen
Schalter nach dem Anzeigebaustein. Ändere die Sensor-Eigenschaft in
«Lichtsensor» und stell den Schwellwert auf « >39 » ein .
1 2
2 1
1 2
2
1
1
2 3
3
2 1
Du kannst jeden
einzelnen Sensor
abfragen: Du fin-dest die Bausteine
auf der «vollständi-
gen Palette» unter
den Sensoren.
4. Die Schalter: Die Sensor-Schalter 7
4-LEGO Schalter 7 14.05.2012
6. Bleibt nur noch die richtige Reaktion des Roboters je nach Helligkeit zu pro-
grammieren: Wenn es hell ist, soll er drehen, wenn nicht, dann geradeaus fahren.
Aufgabe 5
Der Roboter soll sich langsam um seine eigene Achse drehen und den Helligkeits-
wert anzeigen, wenn es «dunkel» ist. Sobald es heller wird, fährt er in dieser Richtung
los! Skizziere zuerst ein Struktogramm und setze das Programm erst danach um. Tes-
te dein Programm: Folgt der Roboter einem Taschenlampenlicht?
4.1.3. Der Berührungs-Schalter
Beispiel 3
Der Ultraschallsensor arbeitet nicht immer zuverläs-
sig: Sind kleine oder nur tiefe Objekte im Weg, er-
kennt der Sensor sie nur schlecht oder gar nicht.
Um die Kollision mit Objekten abzufangen bzw.
abzufedern, soll der Roboter:
1. Kurz stehen bleiben, wenn der Berührungs-
sensor gedrückt wird.
2. Danach soll er so lange langsam rückwärts fah-
ren bis der Sensor keine Berührung mehr meldet.
3. Danach soll er nach links abdrehen bis er eine freie Sicht von mindestens 50cm
hat.
1
2
Start
Gedrückt? J
�V
N
Wiederhole
Wiederhole
�R
Bis los
Wiederhole
Bis x>50
Distanz x
Bis ∞
Der Berührungs-
schalter reagiert auf
«Druck», «Freigabe» oder auf einen
«Stoss».
4. Die Schalter: Die Sensor-Schalter 8
4-LEGO Schalter 8 14.05.2012
Lösung 3
1. Wir beginnen mit einem neuen Arbeitsblatt «3_Bsp_4_1_3».
2. Da der Roboter ständig die gleichen Schritte wiederholen muss, beginnen wir mit
einer ∞-Schleife und setzen einen Berührungsschalter in die Schleife hinein.
Achte darauf, dass er am Port 1 angeschlossen ist und auf Druck reagiert .
3. Setze in den unteren «kein Druck»-Ast einen Motorbaustein für das Geradeaus-
fahren.
4. In den oberen «Druck»-Ast kannst du eine Berührungssensor-Schleif mit
Druckfreigabe hineinsetzen.
5. In dieser Schleife soll der Roboter lediglich rückwärts fahren.
1
2 1
2
1
2
1
2
1
4. Die Schalter: Die Sensor-Schalter 9
4-LEGO Schalter 9 14.05.2012
6. Im Anschluss an diese Schleife brauchen wir eine Ultraschallsensor-Schleife ,
die so lange eine Linksdrehung ausführt, bis die gemessene Distanz grösser
als 50cm ist.
Aufgabe 6
Für diese Aufgabe brauchst du einen Roboter mit einem Greifarm und das Spielfeld
3. Platziere den Ball mit dem Sockel irgendwo auf der schwarzen Linie. Der Roboter
soll vom Startpunkt aus der schwarzen Linie folgen bis er mit dem Berührungssensor
den Ball findet. Er soll den Ball aufnehmen und zum Startfeld zurückbringen. Am
Startfeld sollte ein gösseres Hindernis aufgestellt werden. Wenn es der Roboter er-
kennt, soll er anhalten und den Ball wieder freigeben.
4.1.4. Der Geräusch-Schalter
Aufgabe 7
Experimentiere mit der Funktionsweise des Geräuschschalters. Du könntest den
Roboter auf den ersten lauten Ton fahren lassen, beim zweiten nach links drehen
und beim dritten wieder geradeaus fahren lassen.
4.2. Der Wert-Schalter
Beim Programmieren kommt es häufig vor, dass der Roboter mit Hilfe eines Schal-
ters Entscheidungen treffen muss. Diese hängen aber nicht unbedingt von einem
Sensor ab, sondern von einer Zahl oder einem anderen Wert. Um solche Verzwei-
gungen zu realisieren, braucht es die Wert-Schalter. Davon gibt es drei verschiedene:
den Logik-, den Zahlen- und den Text-Schalter. (Der Text-Schalter funktioniert ge-
nau gleich wie der Zahl-Schalter und wird hier deshalb nicht speziell behandelt.)
1
2
2
1
Der Geräuschschal-
ter reagiert ab einer
bzw. unter einer gewissen Lautstär-
ke.
Der Wert-Schalter reagiert nicht auf
Sensoren, sondern
auf Zahlen-, Text-
oder Logikwerte.
Damit hat der Roboter eine viel
grössere Entschei-
dungsfreiheit und
kann auf verschie-
dene Einflüsse
reagieren.
4. Die Schalter: Die Wert-Schalter 10
4-LEGO Schalter 10 14.05.2012
Mit ihnen kann der Programmierer nicht nur zwei Zustände programmieren, sondern
beliebig viele:
Mit dem Zahl-Schalter kannst du beliebig viele Bedingungen setzen. Sensor- und Logikschalter haben nur zwei Zustände.
4.2.1. Der Zahl-Schalter
Beispiel 4
Erweitere das Beispiel 3 so, dass der Roboter beim Schritt Nummer 3 zufällig nach
links oder rechts abdrehen soll – und nicht immer nach links.
Lösung 4
1. Der erste Teil des Programms ändert sich natür-
lich nicht. Erst im letzten Teil, wo es darum
geht nach links oder rechts abzudrehen, musst
du das Programm anpassen.
2. Vor der Drehung muss eine Münze geworfen
werden: Zeigt sie «Kopf» bzw. «0», dann soll der
Roboter nach links drehen. Wenn sie «Zahl»
bzw. «1» zeigt, dann nach rechts. In der «voll-
ständigen Palette» findest du unter «Daten»
den «Zufalls»-Baustein . Setze ihn vor die
letzte Schlaufe.
1 2
2
1
Zahl-Schalter
0 1 2 … x
Logik-Schalter
Wahr Falsch
Sensor-Schalter
Ja Nein
Start
Gedrückt? J
�V
N
Wiederhole
Wiederhole
�R
Bis los
Wiederhole
Bis x>50
Zufallz. z
Bis ∞
Distanz x
J z=0?
N
Der «Zufalls»-
Baustein liefert eine
ganze Zufallszahl in
den eingestellten
Grenzen.
4. Die Schalter: Die Wert-Schalter 11
4-LEGO Schalter 11 14.05.2012
3. Ändere den Wertebereich des «Zufalls»-Bausteins von ursprünglich 1 bis 100 auf
0 bis 1 – da wir nur eine Münze mit «Kopf» bzw. «Zahl» brauchen.
4. An der Ultraschallsensor-Schleife müssen wir nichts ändern, denn der Roboter
soll ja so lange drehen bis er eine freie Sicht hat.
5. Hingegen ersetzen wir die Linksdrehung durch einen Wert-Schalter: Setze einen
Schalter in die Schleife und ändere die Steuerung auf «Wert» . Der Schalter soll
Zahlen vergleichen: Wähle den Typ «Zahl» . Standardmässig sollten bei den
Bedingungen die Zahlen «0» bzw. «1» stehen . Wenn nicht, werden sie beim
nächsten Schritt automatisch eingestellt.
6. Dieser Wert-Schalter soll auf das Ergebnis der Münze reagieren: Verbinde den
Ausgang des «Zufalls»-Bausteins mit dem Datenblockeingang des Schal-
ters. Damit weiss der Schalter, was die Münze angezeigt hat. Ist es eine «0», dreht
er nach links, sonst nach rechts. Setze die beiden Drehungen in den Schalterbau-
stein ein und probiere das Programm aus.
1 2
2 1
1
2 3
3
2
1
1
1
Ein Wert-Schalter
braucht einen Ein-gabe- bzw. Ver-
gleichswert. Die
Sensorschalter
erhalten diesen von
den Sensoren. Beim Wert-Schalter muss
die Eingabe aus
einer anderen Quel-
le erfolgen, z.B.
durch eine Zufalls-
zahl.
4. Die Schalter: Die Wert-Schalter 12
4-LEGO Schalter 12 14.05.2012
Aufgabe 8
Der Roboter soll bei einem lauten Geräusch mit einem sechsseitigen Würfel einmal
würfeln. Die Zahl, die er würfelt, soll auf dem NXT-Bildschirm dargestellt werden
und er soll sie auch aussprechen! Diese Prozedur wird unendlich oft ausgeführt.
Tipp
Um mehr als zwei Fälle unterscheiden zu können, musst du den «Zahl»-Schalter
wählen. Deaktiviere die «offene Ansicht» und füge bei den Bedingungen mit Hilfe
der «+»-Taste weitere Möglichkeiten hinzu.
4.2.2. Der Logik-Schalter
Beispiel 5
Der Roboter soll mit zwei sechsseitigen Würfeln ständig würfeln, die Summe der
beiden Zahlen berechnen und am NXT-Bildschirm anzeigen. Wenn die Summe
grösser als 8 beträgt, soll er nach links drehen, sonst geradeaus fahren.
Lösung 5
1. Beginne mit einer Endlosschleife und setze als erstes einen «Anzeige»-
Baustein hinein. Dieser soll «Würfelergebnis» anzeigen.
2 1
2 1
1
2
3
3
2
1 Mit dem Zahlen-Schalter kannst du
auch mehr als zwei
Bedingungen abfra-
gen.
Der Logik-Schalter kann zwischen
«Wahr» oder
«Falsch» entschei-
den. Um diese
Entscheidung zu treffen, muss dieser
Wert dem Schalter
als Eingangswert
vorliegen.
4. Die Schalter: Die Wert-Schalter 13
4-LEGO Schalter 13 14.05.2012
2. Nun kannst du mit einem Würfel (1-6) würfeln und das Ergebnis in eine Zahl
konvertieren . Würfle gleich anschliessend ein zweites Mal und konvertiere das
Ergebnis ebenfalls in Text um.
3. Füge mit einem «Text»-Baustein aus der «Vollständigen Palette» aus dem unters-
ten Bausteinmenu die beiden Würfelergebnisse zusammen : A = 1. Würfel, C
= 2. Würfel, B= « =W1, W2= ». Der Baustein fügt die Würfelergebnisse zu ei-
nem einzigen Textteil zusammen. Gib den Text auf der zweiten Zeile aus .
Achte drauf, dass die Anzeige NICHT gelöscht wird.
4. In der «Allgemeinen Palette» unter «Daten» findest du den «Mathe»-Baustein .
Mit diesem kannst du Operationen ausführen.
2
1
2
2
1
1 2
2
1
4. Die Schalter: Die Wert-Schalter 14
4-LEGO Schalter 14 14.05.2012
Lege zwei Datenleitungen von den Würfeln in den «Mathe»-Baustein hin-
ein und stell die Operation auf «Addition» ein. Klick dabei immer zuerst auf
den Datenausgang der Würfel und dann auf den Dateneingang des «Mathe»-
Bausteins.
5. Konvertiere und zeige die Würfelsumme an. Achte auch hier wieder darauf, dass
der Bildschirm nicht gelöscht wird!
6. Um die Fahrtrichtung zu bestimmen, musst du zuerst aus der «Allgemeinen Pa-
lette» unter «Daten» den «Vergleichen»-Baustein einsetzen. Er kann zwei Wer-
te miteinander vergleichen. Verbinde die Würfelsumme mit dem Datenein-
gang des «Vergleichen»-Bausteins. Prüfe ob der Eingangswert grösser als 8 ist.
Setze danach einen Logik-Schalter und verbinde den Ausgangswert des
«Vergleichen»-Bausteins mit dem Eingang des Logik-Schalters.
1
2
3
4
4 3
2
1
1 1 2
2
1 Mit dem «Mathe»-
Baustein kannst du
zwei Zahlen addie-
ren, subtrahieren,
multiplizieren oder
dividieren.
Mit dem «Ver-gleichs»-Baustein
kannst du die
Grösse zweier
Zahlen miteinander
vergleichen. Das Ergebnis ist entwe-
der «Wahr» oder
«Falsch».
4. Die Schalter: Die Wert-Schalter 15
4-LEGO Schalter 15 14.05.2012
7. Der «Vergleichen»-Baustein liefert entweder den Wert «Wahr» oder «Falsch». Der
Wert wird dem Schalter übergeben. Dieser kann nun entscheiden, welcher Pro-
grammast ausgeführt werden soll: Bei «Wahr» soll er nach links drehen und
bei «Falsch» geradeaus fahren.
1
2
2
1
top related