====== Roboter - Lego Mindstorms Steuerung ====== Die zu programmierenden Roboter sind fertig zusammengebaut und sollen zunächst nur durch die zu schreibenden Programme //gesteuert// werden. Zum Beispiel könnte ein Steuerprogramm die Anweisungen enthalten, die den Roboter ein Rechteck abfahren lassen. ==== Grundsätzliches zum Programmieren mit Robolab (TM) ==== Robolab ist eine grafische Programmierumgebung, in der die Befehle als Symbole zusammengestellt werden. Dazu startet man das Programm, wählt "Programmierer" und einen "Inventor" - je höher die Zahl, desto mehr Funktionen stehen zur Verfügung - und schon kann es losgehen. Jedes Programm beginnt mit dem Startsymbol {{schule:mint:robolab:symbole:ampelanfang.jpg?nolink|Programmstart}} und endet mit dem Endesymbol {{schule:mint:robolab:symbole:ampelende.jpg?nolink|Programmende}}. Dazwischen platziert man die Symbole des eigenen Programms. Diese müssen schließlich noch verbunden werden - dazu benötigt man die Kabeltrommel {{schule:mint:robolab:symbole:wverbinden.jpg?nolink|Verbinden}} aus den //Werkzeugen// [Fenster > Werkzeugpalette]. Hat man alles richtig gemacht, wird aus dem durchbrochenen grauen Pfeil oben links ein weißer und das Programm kann mit dem IR-Transmitter übertragen werden (natürlich nur, wenn der Roboter eingeschaltet ist). Mit "Run" wird dann getestet, ob der Roboter wirklich das tut, was man sich gedacht hat. ==== Einfache Figuren ==== Dabei werden die folgenden grundsätzlichen Bewegungsformen benötigt: |vorwärts|{{schule:mint:robolab:symbole:fmotorav.jpg?nolink|AV}}{{schule:mint:robolab:symbole:fmotorcv.jpg?nolink|Cv}}| |auf der Stelle drehen|{{schule:mint:robolab:symbole:fmotorav.jpg?nolink|Av}}{{schule:mint:robolab:symbole:fmotorcr.jpg?nolink|Cr}} oder {{schule:mint:robolab:symbole:fmotorar.jpg?nolink|Ar}}{{schule:mint:robolab:symbole:fmotorcv.jpg?nolink|Cv}}| |Linkskurve|{{schule:mint:robolab:symbole:fstoppan.jpg?nolink|Astopp}}{{schule:mint:robolab:symbole:fmotorcv.jpg?nolink|Cv}}| |Rechtskurve|{{schule:mint:robolab:symbole:fstoppcn.jpg?nolink|Cstopp}}{{schule:mint:robolab:symbole:fmotorav.jpg?nolink|Av}}| Mit "Warten auf" {{schule:mint:robolab:symbole:wazeit.jpg?nolink|4s}} lässt sich einstellen, wie lange der Prozessor wartet, um den nächsten Programmschritt auszuführen (im Beispiel 4s) - es lässt sich hiermit also die Dauer der einzelnen Programmschritte steuern.((Folgt jedoch nach einem "Warten auf"-Befehl kein neuer Befehl, so wird die letzte Anweisung vor dem "Warten auf" solange ausgeführt, bis der Roboter ausgestellt wird.)) Die benötigte Zeit für z.B. eine Rechtskurve hängt vom Untergrund und der Batterieleistung ab - muss also jedesmal ausprobiert werden. Bei der Programmerstellung kann man sich dann viele Symbole ersparen, wenn man sich überlegt, dass Befehle solange Gültigkeit haben, bis sie durch "Stop" {{schule:mint:robolab:symbole:fstoppabcn.jpg?nolink|ABCstopp}} oder einen gegenläufigen Befehl aufgehoben werden, z.B. müssen beide Motoren am Anfang auf vorwärts gestellt werden, im Fahrprogramm dann aber nur ein Motor bei den Kurven aus- und wieder angestellt werden, der andere Motor läuft durchgehend. Will man regelmäßige Figuren fahren, z.B. ein Quadrat, kann man das Programm durch //Schleifen// vereinfachen, z.B. "wiederhole 4 mal :(geradeaus, Rechtskurve)". Dieses und weitere Strukturelemente findet man im Menü "Strukturen" {{schule:mint:robolab:symbole:mstruktur.jpg?nolink|Strukturmenü}}. Das Quadrat-fahren-Programm sähe dann z.B. so aus: {{schule:mint:robolab:programme:schleife.jpg?nolink|Quadrat fahren}}