TigerJython4Kids
HomeTurtlegrafikRobotikDatenbanken
bewegen

2. ROBOTER STEUERN (AKTOREN)

 

 

DU LERNST HIER...

 

die wichtigsten Befehle, mit welchen du deinen Roboter steuern kannst.

 

 

MUSTERBEISPIELE

  Beispiel 1: Fahren und abbiegen
Der Roboter soll zuerst vorwärts fahren, dann links abbiegen und danach wieder ein kurzes Stück vorwärts fahren.

Die Zeilen deines Programm werden der Reihe nach ausgeführt. Mit dem Befehl forward() wird der Roboter in den Zustand "forward" versetzt. delay(2000) gibt die Zeit im Millisekunden an, bis der Mikroprozessor den nächsten Befehl left() erteilt. Dieser versetzt den Roboter in den Zustand "linksdrehen". Während der 550 Millisekunden dreht sich der Roboter ca. um 90° links. Danach fährt er wieder 2000 Millisekunden vorwärts, eher er den Befehl stop() erhält.

 

from mbrobot import *

forward()
delay(2000)
left()
delay(550)
forward()
delay(2000)
stop()
► In Zwischenablage kopieren

 

Beispiel 2: Mehreres gleichzeitig tun
Obwohl das nachfolgende Programm aus einer Sequenz von Anweisungen besteht, die der Reihe nach ausgeführt werden, kann der Roboter mehreres gleichzeitig tun. Der Roboter fährt während 4 s vorwärts und anschliessend 4 s rückwärts. Während des Rückwärtsfahrens schaltet er die LEDs ein und aus.

Die Motoren und die LEDs werden durch den Mikroprozessor gesteuert, wobei der Mikroprozessor auch mehrere Aktoren gleichzeitig bedienen kann. Während sich die Motoren nach dem Erhalt des Befehls backward() im Zustand backward befinden, werden mit dem Befehl

setLED(1) die LEDs einschaltet und nach 3000 ms mit setLED(0) auschaltet. Nach weiteren 1000 ms erhalten die Motoren den Befehl stop() und der Roboter hält an.  

from mbrobot import *

forward()
delay(4000)
backward()
setLED(1)
delay(3000)
setLED(0)
delay(1000)
stop()
► In Zwischenablage kopieren

 

Beispiel 3: Auf Kreisbogen fahren
Der Roboter soll zuerst 5 s auf einem Linksbogen, dann 5 s auf einem Rechtsbogen und anhalten. Für das Bogenfahren verwendest du die Befehle leftArc(r) bzw. rightArc(r), wobei der Radius r in Meter ist.

Mit setSpeed(speed) kannst du die Geschwindigkeit ändern. Als speed kannst du Werte zwischen 0 und 100 wählen. Default speed ist 50.

 


from mbrobot import *

setSpeed(40)
leftArc(0.2)
delay(5000)
rightArc(0.2)
delay(5000)
stop()
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Für die Steuerung des Roboters stehen die folgende Befehle zur Verfügung:

 forward()  fährt vorwärts
 backward()  fährt rückwärts
 left()  dreht links
 right()  dreht rechts
 leftArc(r)  fährt auf Linksbogen mit Radius r
 rightArc(r)  fährt auf Rechtsbogen mit Radius r
 stop()  hält an
 setSpeed(speed)  setzt die Geschwindigkeit (default 50)
 delay(ms)  bleibt ms Millisekunden im gleichen Zustand
 setLED(1)  LEDs einschalten
 setLED(0)  LEDs ausschalten
 setAlarm(1)  Schaltet einen Pipton ein
 setAlarm(0)  Schaltet den Pipton aus

Bei der Roboterprogrammierung musst du in Zuständen denken. Der Befehl forward() versetzt den Roboter in eine Vorwärtsbewegung. Während die Motoren in diesem Zustand sind, kann der Microprozessor Befehle an andere Aktoren erteilen.

Ein laufendes Programm kannst du jeder Zeit abbrechen, indem du den kleinen Switchschalter hinten auf der Roboterchassis auf "OFF" stellst.

 

 

ZUM SELBST LÖSEN

 

 

1.
Erstelle mit einigen Gegenständen einen Parcours und schreibe ein Programm so, dass der Roboter vom Start zum Ziel fährt.

 

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.

Mit setAlarm(1) wird ein Alarm eingeschaltet (ein Pipton). setAlarm(0) schaltet den Alarm aus. Der Roboter soll zuerst 5000 ms vorwärts und danach 5000 ms rückwärts fahren. Während des Rückwärtsfahrens soll er Alarm einschalten.

Damit du den Befehl setAlarm() verwenden kannst, musst du das Modul mbalarm importieren.

Mit nebenstehendem Programm wird der Alarm während 3000 ms eingeschaltet.

 
from mbrobot import *
from mbalarm import *

setAlarm(1)
delay(3000)
setAlarm(0)
► In Zwischenablage kopieren

 

 

ZUSATZSTOFF: MOTOREN UND LEDs EINZELN STEUERN

 

Die Befehle forward(), left() usw. steuern das ganze Fahrwerk, das aus zwei Motoren besteht. Man kann aber auch die einzelnen Motoren einschalten und ihre Geschwindigkeit 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.

 

Beispiel 4: Der linke Motor läuft zuerst 3 Sekunden mit der Geschwindigkeit 50 vorwärts, dann 2 Sekunden mit der Geschwindigkeit 30 rückwärts. Anschliessend hält er an. Führe das Programm zuerst im Simulationsmodus aus und beobachte die Rotationen im Grafikfenster.

from mbrobotmot import *

motL.rotate(50)
delay(3000)
motL.rotate(-30)
delay(2000)
motL.rotate(0)
► In Zwischenablage kopieren
 



Beispiel 5: Leds eonzeln ein - und ausschalten
Mit den Befehlen setLED(1) und setLED(0) kannst du beide LEDs gleichzeitig ein- und ausschalten. Beim genauen Hinsehen auf die Platine deines Roboters, siehst du, dass die linke LED mit LED-L und die rechte mit LED-R beschriftet ist. Du kannst die LEDs auch einzeln ansprechen:
ledLeft.write_digital(1) schaltet die linke LED ein
ledLeft.write_digital(0) schaltet die linke LED aus
ledRight.write_digital(1) schaltet die rechte LED ein
ledRight.write_digital(0) schaltet die rechte LED aus

Dein Programm schaltet jeweils eine LED ein und die andere aus.

 


from mbrobot import *

ledLeft.write_digital(1)
ledRight.write_digital(0)
delay(600)
ledLeft.write_digital(0)
ledRight.write_digital(1)
delay(600)
ledLeft.write_digital(1)
ledRight.write_digital(0)
delay(600)
ledLeft.write_digital(0)
► In Zwischenablage kopieren

 

 

ZUM SELBST LÖSEN

 

 

4.
Lasse die beiden Motoren mit der gleichen Geschwindigkeit 4000 Millisekunden vorwärts rotieren.

5.
Lasse während 4 Sekunden den linke Motor vorwärts und den rechten Motor rückwärts laufen.

6.

Wie musst du den linken und den rechten Motor steuern, damit sich der Roboter 4 Sekunden auf einem Linksbogen bewegt?

7.

Ergänze das Beispiel 3 so, dass wenn der Roboter auf dem linken Kreisbogen fährt die linke LED leuchtet und wenn er auf dem rechten Kreibogen fährt die rechte LED leuchtet und die linke ausgeschaltet wird.