![]()
DU LERNST HIER... |
wie du ein einen Touchsensor dafür einsetzen kannst, Hindernisse zu erkennen und entsprechend zu reagieren. |
WIE FUNKTIONIERT EIN TOUCHSENSOR |
|
MUSTERBEISPIELE |
from grobot import * RobotContext.useObstacle("sprites/field1.gif", 250, 250) forward() repeat: if ts3.isPressed(): backward() delay(1500) left() delay(550) forward() delay(100) Für die Simulation verwendest du ein Bild mit einem transparenten Hintergrund, als Gegenstand, welchen du im Grafikfenster mit dem RobotContext useObstacle() und der Angabe der Koordinaten positionieren musst.
from grobot import * RobotContext.useObstacle("sprites/racetrack.gif", 250, 250) RobotContext.setStartPosition(420, 460) forward() repeat: if ts1.isPressed(): backward() delay(250) left() delay(200) forward() elif ts2.isPressed(): backward() delay(250) right() delay(200) forward() delay(100) |
MERKE DIR... |
Der Touchsensor kann nur zwei Werte zurückgeben und zwar den Wahrheitswert True , wenn der Sensorbutton gedrückt ist, oder False, wenn er nicht gedrückt ist. Für die Simulation muss du Hintergrundbilder mit einem transparenten Hintergrund verwenden und diese mit RobotContext.useObstackle() hinzufügen. |
ZUM SELBST LÖSEN |
|
ZUSATZSTOFF: BUTTON ESCAPE |
Anstelle einer Endlosschleife repeat verwendest du eine while-Schleife mit einer Abbruchbedingung. So lange der Button escape nicht gedrückt wurde, läuft das Programm. Der Roboter bewegt sich gegen eine Wand. Wenn er sie mit seinem Touchsensor berührt, fährt er kurz zurück und dann wieder vorwärts. Endlos. Bis jetzt hast du solche Programme mit Schliessen des Terminalfensters abgebrochen. Diese while-Schleife ermöglicht dir, das Programm mit Drücken des Button escape abzubrechen. Dies ist insbesondere dann praktisch, wenn du ein Programm autonom, weit weg vom deinem Computer ausführst.
|
MERKE DIR... |
Anstelle einer Endlosschleife repeat kannst du die Schleife Die Buttons enter, left, right, up und down kannst du zur Steuerung des Roboters verwenden. |
ZUM SELBST LÖSEN |
|
![]()
from grobot import * RobotContext.useObstacle("sprites/field1.gif", 250, 250) RobotContext.setStartPosition(350, 350) def turnLeft(): ... def turnRight(): ... n = 0 forward() repeat: if ts3.isPressed(): backward() ... if n == 0: turnLeft() n = 1 else: turnRight() n = 0 forward()
![]() |
Abwasserkanäle halten unsere Städte sauber und helfen, Überflutungen bei starken Regenfällen zu verhindern. Rund 80% der Abwasserkanäle sind nicht begehbar. Kanalroboter werden eingesetzt, um die Kanalnetze zu kontrolliert und Leckstellen aufzuspüren. Der Roboter navigiert autonom mit Hilfe seiner Touchsensoren in Kanälen mit 30 - 60 cm Durchmesser und kann mit dem eingebauten Laser-Kamerasystem die beschädigten Stellen entdecken. |