DU LERNST HIER... |
wie ein Roboter bestimmte Befehlssequenzen wiederholen kann und wie du mit benannten Programmblöcken (Funktionen) deine Programme besser strukturieren kannst. |
MUSTERBEISPIELE |
Programm: from callibot import * repeat 4: forward() delay(2000) left() delay(550) stop() Führe das Programm zuerst im Simulationsmodus aus. Im Realmodus musst du eventuell die Zeit beim Linksdrehen anpassen. Im Unterschied zur Simulation, bei der der Roboter ein Quadrat ganz exakt abfahren kann, ist es beim realen Roboter schwierig, exakt geradeaus zu fahren und exakt in einem rechten Winkel abzubiegen. Dies entspricht der Wirklichkeit, denn kein Auto wird bei starrer Radstellung, d.h. blockierter Steuerung, je exakt geradeaus fahren, man muss immer wieder regulierend eingreifen. Deswegen sind Roboter mit Sensoren ausgerüstet, die ihnen helfen, diese Ungenauigkeiten zu korrigieren. Verwende also nicht zu viel Zeit, um dem Roboter ein exaktes Quadrat fahren beizubringen. |
Programm: from callibot import * repeat: forward() delay(2000) backward() delay(2000) left() delay(550) Hier ist es nützlich zu wissen, wie man ein laufendes Programm abbrechen kann: Am einfachsten geht es mit Drücken des blauen Buttons hinten am Chassis.
|
Beispiel 3: Programme mit eigenen Funktionen strukturieren Eine Funktionsdefinition beginnt immer mit dem Schlüsselwort def. Darauf folgen ein Funktionsname, eine Parameterklammer und ein Doppelpunkt. Die Anweisungen im Funktionskörper sind eingerückt. Im Hauptprogramm wird die Funktion aufgerufen. In deinem Beispiel definierst du eine Funktion blink(), die das einmalige aufleuchten der roten LED bewirkt. Im Hauptprogramm fährt der Roboter zuerst 200 ms vorwärts und danach 2000 ms rückwärts. Während des Rückwärtsfahren blinkt er zweimal mit beiden LEDs. Diese Bewegung wiederholt er zweimal.
|
MERKE DIR... |
Um ein Programmblock n mal zu wiederholen, verwendest du eine repeat-Schleife:
Um ein Programmblock endlos zu wiederholen, verwendest du eine Endlos-Schleife:
Mit Funktionen kannst du deine Programme besser strukturieren und Code-Dupplikation vermeiden. Du musst zwischen der Funktionsdefinition und Funktionsaufruf unterscheiden.
|
ZUM SELBST LÖSEN |
|
![]() |
![]() |
![]() |