Dies ist eine alte Version des Dokuments!


Lego Mindstorms, Container

Um im Programm Werte zu speichern nimmt man die sogenannten Container. Da gibt es den „normalen“ Container, dessen Inhalt durch die Grundrechenarten verändert werden kann. Und es gibt die interne Stoppuhr (sozusagen ein Container, der sich nach dem Starten selbst füllt). Und schließlich gibt es den Briefkasten, also einen Container, der empfangene (Zahl-)Nachrichten enthält.

Interne Stoppuhr

Unter „Regelung“ war schon das folgende Beispielprogramm mit der internen Stoppuhr enthalten:

Zeit-Abfrage

Die „rote“ Stoppuhr wird am Anfang initialisiert (auf Null gesetzt und gestartet) und zum Programmende abgefragt. Je nachdem, ob die enthaltene Zeit (in Zehntelsekunden) kleiner-gleich bzw. größer als die Vergleichszeit ist (hier: 0.5 s, sinnvoll wäre jedoch eine Zahl wie 250, also 25 s) wiederholt der Roboter das Programm oder bleibt stehen.

Container

Ein ähnliches Programm kann man unter Verwendung des Containers schreiben - hier wird nach jedem angefahrenen Hindernis (jedem „Druck“) der Wert des Containers um 1 erhöht, und am Ende zum Vergleich ausgelesen - nach 5 Hindernissen soll der Roboter stoppen.

Die Initialisierung setzt den Wert des Containers auf Null, mehr passiert hier dabei nicht. Die weitere Veränderung des Wertes des Containers muss bewusst durch das Setzen der entsprechenden Symbole geschehen.

Container

Kombination aus Stoppuhr und Container

Hier soll der Roboter für eine vorgegebene Mindestzeit Hindernisse anfahren und nach dem Ablauf der Zeit so häufig piepsen wie er Hindernisse angefahren hat.

Timer und Container

Vereinfachung

Anstelle der Subtraktion und der Abfrage-Sprung-Schleife (bei der ein Zweig ohne Aktion bleibt) lässt sich auch ein Zählschleife verwenden. Die Anzahl der Schleifen wird hier nicht fest vorgegeben sondern dem entsprechenden Container entnommen (gekennzeichnet durch das invertierte Symbol)1)

Timer und Container mit Schleife

Nachrichten senden

Beispielprogramm für Roboter 1:

Mail senden

Der Roboter soll einen Ton spielen, um zu zeigen, dass das Programm gestartet wurde. Nachdem ein Sensor ein Drucksignal erhalten hat wird eine Nachricht gesendet.

Beispielprogramm für Roboter 2:

Mail empfangen

Zu Beginn des Programms wird der „Briefkasten“ des Roboters geleert. Dann wartet der Roboter auf eine eingehende Nachricht. Nachdem eine Nachricht erhalten wurde, wird Motor A rückwärts bewegt und nach weiteren 2 s gestoppt - der Roboter fährt also nach Erhalt einer Nachricht für 2 s rückwärts eine Linkskurve.

1)
Die Symbole mit farbigem Hintergrund dienen der Kennzeichnung eines Containertyps, die Symbole mit farbigem Containersymbol stellen den Wert des Containerinhalts zur Verfügung.
schule/mint/roboter/container.1527631740.txt.gz · Zuletzt geändert: 2018/05/30 00:09 von ahrens
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0