![]() |
TigerJython | xx für Gymnasien |
| Deutsch English |
Aktoren sind die aktiven Komponenten eines Roboters. Sie führen Befehle, die sie vom Mikroprozessor erhalten, aus. Typische Aktoren sind die Motoren, aber auch LEDs und der Buzzer können auf Befehle reagieren. Im Folgenden wird an einfachen Beispielen gezeigt, wie man die Aktoren mit einem Pythonprogramm steuern kann. |
![]() |
| ► In Zwischenablage kopieren | ![]() |
Erklärungen zum Programmcode:
| from mbrobot import * importiert das Modul mbrobot | |
| delay(2000):hält die Programmausführung 2 Sekunden an | |
| stop():stoppt die Motoren |
Mit einem Klick auf die grüne Start-Schaltfläche wird das gleiche Programm im Simulationsmodus ausgeführt.
Beispiel 2: Bewegung wiederholen
| ► In Zwischenablage kopieren | ![]() |
Erklärungen zum Programmcode:
| repeat 4: Wiederholschleife. Die Befehle im eingerückten Block werden 4mal wiederholt Anstelle der repeat-Schleife kann auch while- oder for-Schleife verwendet werden |
Beispiel 3: Auf einem Kreisbogen fahren
Der Roboter bewegt sich auf einem Linksbogen mit dem Radius ungefähr 0.1 m und dann bewegt er sich auf einem Rechtsbogen. Mit setSpeed() kann die Geschwindigkeit angepasst werden (standard 60).
| ► In Zwischenablage kopieren | ![]() |
forward() |
bewegt den Roboter vorwärts |
Die Befehle forward() , left() usw. steuern das ganze Fahrwerk, das aus zwei Motoren besteht. Man kann aber auch die einzelnen Motoren einschalten und ihre Geschwindigket regeln. Mit motL.rotate(speed) wird der linke Motor in die Vorwärtsbewegung versetzt und rotiert mit der Geschwindigkeit speed. Für die positiven speed-Werte rotiert der Motor vorwärts, bei negativer Werten rückwärts und für speed = 0 hält der Motor an. Entsprechend funktioniert der Befehl motR.rotate(speed) für den rechten Motor. Um die einzelnen Motoren zu steuern muss man das Modul mbrobotmot importieren.
Beispiel 4: Der linke Motor läuft zuerst 3 Sekunden mit der Geschwindigkeit 50 vorwärts, dann 2 Sekunden mit der Geschindigkeit 30 rückwärts. Anschliessend hält er an.
Führe das Programm zuerst im Simulationsmodus aus und beobachte die Rotationen im Grafikfenster.
| ► In Zwischenablage kopieren | ![]() |
Erklärungen zum Programmcode:
| motL.rotate(50): der linke Motor rotiert mit der Geschwindigkeit 50 vorwärts | |
| motL.rotate(-30): der linke Motor rotiert mit der Geschwindigkeit 30 rückwärts | |
| motL.rotate(0): der linke Motor wird angehalten |
Des mbRobots hat zwei rote LEDs, die mit LED_L und LED_R beschriftet sind. Die LEDs können gleichzeitig oder einzeln ein- und ausgeschaltet werden.
Beispiel 5: Beide LEDs 10 mal ein- und ausschalten.
Der Befehl setLED(1) schaltet beide LEDs gleichzeitig ein. Der Befehl setLED(0) schaltet sie aus.
| ► In Zwischenablage kopieren | ![]() |
Erklärungen zum Programmcode:
| serLED(1): schaltet beide LEDs ein | |
| delay(500): die LEDs bleiben 500 Millisekunden im gesetzten Zustand |
Ein Beipiel zum Schalten der einzelnen LEDs findet man in der Aufgabe 6.
Beispiel 6: Mit einem Buzzer Töne abspielen
Der Buzzer findet man auf dem Board hinter dem Steckplatz für den micro:bit. Importiert man das Modul music, so kann man Töne und auch ganze Melodien abspielen.
| ► In Zwischenablage kopieren |
|
Erklärungen zum Programmcode:
| pitch(784, 300): Spielt den Ton mit der Frequenz 784 Hz während 300 Millisekunden ab |
Beispiel 7: Mit dem Buzzer ein Musikstück abspielen
| ► In Zwischenablage kopieren |
|
Erklärungen zum Programmcode:
| play(song): spielt den Song Entertainer. Einige weitere Musikdateien sind im TigerJython gespeichert. Diese können direkt verwendet werden (siehe Dokumentation oder TigerJython IDE/ unter Hilfe/APLU Dokumentation) |
| Aufgaben: |
1) |
|
![]() |
2) |
Der Roboter soll sich so lange auf einen Linksbogen bewegen, bis er einen ganzen Kreis zurückgelegt hat. Danach soll er sich gleich lange auf einem Rechtsbogen bewegen. |
![]() |
3) |
Ein Roboter soll nacheinander 4 Orte erreichen, indem er zuerst vorwärts bis zum Ort fährt, dann rückwärts zum Ausgangspunkt zurückkehrt und um ca 90 Grad dreht. |
![]() |
4) |
Ergänze die Bewegung in der Aufgabe 3 mit LEDs. Jedesmal, bevor der Roboter rückwärts fährt, schaltet er die LEDs ein . |
5) |
Ergänze die neben stehende Programmvorlage so dass |
from mbrobotmot import * motL.rotate(50) delay(2000) motL.rotate(0) |
6) |
Mit den Befehlen ledLeft.write_digital(1) bzw. ledLeft.write_digital(1) kann man nur die linke LED ein- bzw. ausschalten. Mit den Befehlen ledRight.write_digital(1) bzw. ledRight.write_digital(0) nur die rechte LED. Ergänze die neben stehende Programmvorlage so dass die LEDs 10 mal abwechlungsweisweise blinken (links ON/rechts OFF bzw. links OFF/rechts ON). |
from mbrobot import * ledLeft.write_digital(1) delay(1000) ledLeft.write_digital(0) ledRight.write_digital(1) delay(1000) ledRight.write_digital(0) |
7) |
Ergänze die neben stehende Programmvorlage so, dass der Roboter beim Linksbogenfahren jeweils die linke LED und beim Rechtsbogen nur die rechte LED einschaltet.
|
from mbrobot import * repeat 2: leftArc(0.15) sleep(3000) rightArc(0.15) sleep(3000) stop() |