TigerJython4Kids | HomeTurtlegrafikRobotikDatenbanken |
DU LERNST HIER... |
dass die meisten Roboter mit Sensoren ausgerüstet sind, die wie unsere menschlichen Sinne die Umgebung erfassen und wie Messgeräte die Messdaten an den eingebauten Mikroprozessor melden, der sie auswertet und entsprechende Aktionen ausführt. |
MUSTERBEISPIEL |
from raspisim import * #from raspibrick import * RobotContext.useBackground("sprites/oval.gif") RobotContext.setStartPosition(250, 460) robot = Robot() gear = Gear() irLeft = InfraredSensor(IR_LINE_LEFT) irRight = InfraredSensor(IR_LINE_RIGHT) gear.forward() while not isEscapeHit(): vLeft = irLeft.getValue() vRight = irRight.getValue() if vLeft == 1 and vRight == 0: gear.forward() elif vLeft == 1 and vLeft == 1: gear.rightArc(0.1) elif vLeft == 0 and vRight == 0: gear.leftArc(0.1) robot.exit() |
MERKE DIR... |
dass Sensoren als Objekte aufgefasst werden und man mit der Funktion getValue() einen Messwert holen kann. Du kannst das Programm im autonomen, fremdgesteuerten oder Simulationsmodus laufen lassen. Beim Drücken der Escape-Taste wird die Bedingung robot.isEscapeHit() wahr und die while-Schleife bricht ab. |
ZUM SELBST LÖSEN |
|
Die Messwerte können als analoge Grössen, d.h. als Spannung in einem bestimmten Bereich (z.B. zwischen 0 und 5V) oder als digitale Grössen, d.h. als zwei Spannungspegel (z.B. 0 oder 5V) an das eingebettete Microkontroller-System übermittelt werden. Analoge Werte werden dann mit einem Analog-Digital-Konverter in eine ganze Zahl umgewandelt (z.B. als 8 bits im Bereich 0 und 255 oder 10 bits im Bereich 0..1023). Digitale Werte entsprechen den Logikwerten 0 oder 1 bzw. False oder True.
In diesem Zusammenhang spricht man davon, dass man die Wirklichkeit softwaremässig abstrahiert oder modelliert. Eine adäquate Umsetzung bzw. Abbildung der Wirklichkeit in die Software gehört zu den wichtigsten Aufgaben der Informatik. Hier zeigt sich, dass die objektorientierte Programmierung den Problemen aus der Mess- und Steuerungstechnik und der Robotik perfekt angepasst ist, da man ja auch in der realen Welt Sensoren und Aktoren als Objekte auffasst.
Es kann sinnvoll sein, zu einem späteren Zeitpunkt aufzuzeigen, wie man Sensor- und Aktorobjekte konstruiert, d.h. wie mit Aufrufen des GPIO-Interfaces Sensoren und Aktoren angesprochen werden.
Das Koordinatensystem der virtuellen Welt hat die x-Achse im Bereich 0...500 nach rechts und die y-Achse im Bereich 0..500 nach unten mit dem Nullpunkt in der oberen linken Ecke.
Das Fahren auf einer Kante ist eigentlich ein Regelungsprozess. Der Kurvenradius ist ein Regelkreisparameter und man erkennt bei der Bewegung das für Regelprozesse typische Schwingen um den Sollwert.
Zu Beginn wird die Zustandsvariable s auf null gesetzt. In der while-Schleife schaltet man den Zustand um:
s = 0 while s < 3: v = is.getValue() if v == 0 and s == 0: # Bei Haltestelle s = 1 ... if v == 1 and s == 1: # Auf weisser Zwischenfahrt s = 2 if v == 0 and s == 2: # Am Endbahnhof s = 3