Beschleunigen

 

Mithilfe der Aktion-Blöcke lassen sich die Motoren noch gezielter steuern.

So soll im nächsten Programmbeispiel dein Roboter sukzessive beschleunigen, bis er eine maximale Drehgeschwindigkeit (von +100) erreicht.

Das Video lässt sich als MP4-Datei herunterladen, indem du mit der rechten Maustaste auf Video-Download klickst, Ziel speichern unter ... anwählst und einen Speicherort bestimmst. So kannst du den Clip auch mit einem lokalen Mediaplayer (z. B. VLC) wiedergeben.

Der Block Standardsteuerung bietet sich auch wieder hier an, diesmal im Modus An. Damit der EV3-Stein nicht zu schnell beschleunigt, könnte man eine Verzögerung von einer Zehntel Sekunde nach jeder Geschwindigkeitserhöhung einbauen.

Die aktuelle Geschwindigkeit muss also zunächst berechnet und anschließend über Datenleitung den Motoren mitgeteilt werden. Sie könnte in einer Variablen mit dem Namen Speed gespeichert werden. Die Blöcke Variable funktionieren ganz ähnlich wie die Konstante, mit dem Unterschied, dass Variablen auch neu geschrieben werden können. In diesem Fall wird Speed ausgelesen, die Motoren dementsprechend beschleunigt, der Wert am Display angezeigt, Speed um 1 erhöht und mit diesem neuen Wert wieder überschrieben.

Das ganze wird innerhalb einer Schleife so oft ausgeführt, bis dass Speed endlich die Maximalgeschwindigkeit (größer gleich 100) erreicht. In diesem Fall schickt der Block Vergleichen im Modus Größer gleich den boolschen Wert Wahr an die Schleife, die dadurch im Modus Logischer Wert endet. Solange Speed einen Wert kleiner 100 hat, liefert der Größer-Gleich-100-Vergleich Falsch, wodurch die Schleife im Modus Logischer Wert fortgesetzt wird.

Zu Beginn des Programms muss die Variable Speed noch angelegt und mit dem Anfangswert 0 belegt werden.

Schlussendlich braucht es für die allmähliche Beschleunigung deines Roboters auf Höchstgeschwindigkeit nicht mehr Code als:

Lässt man dieses Programm ausführen, wird deutlich, dass es sehr günstig wäre, wenn dein Roboter rechtzeitig abbremsen würde, falls er sich auf ein Hindernis zubewegt. Um einen derartigen Crash zu verhindern, kann man den Ultraschallsensor als Abstandsmesser einsetzen. Nähere Informationen dazu erhältst du unter anderem im offiziellen Hilfebereich.