====== Schaufel verwenden ======
Vorbereitung: Stift auf zwei Klötze legen, Roboter in Startposition. Zwei weitere Klötze aufstellen. Dort soll der Stift am Ende liegen.
Ziel: Der Roboter hebt den Stift auf und legt ihn auf die anderen beiden Klötze.
===== Steuerung der Schaufel kennenlernen =====
Neues Projekt öffnen, folgenden Code ausprobieren.
###################
# Sachen bewegen #
###################
ev3.speaker.say(text="Hello, I'll move a stick.")
links = Motor(Port.A)
rechts = Motor(Port.B)
licht = ColorSensor(Port.S3)
ultraschall = UltrasonicSensor(Port.S2)
heber = Motor(Port.C)
# Sind die Motoren und Sensoren richtig verkabelt?
robot = DriveBase(links, rechts, wheel_diameter=55.5, axle_track=104)
# Einige Befehle, um die Schaufel/den Heber kennenzulernen.
# Motor laufen lassen, bis er blockiert (= stalled).
heber.run_until_stalled(20)
# aktuelle Winkelposition als 0 Grad definieren
heber.reset_angle(0)
# Heber mit Geschwindigkeit 20 Grad/Sekunde auf Winkel -135 Grad einstellen.
heber.run_target(20, -135)
# 100 Millisekunden vorwärts fahren.
robot.straight(100)
===== Wer Helligkeits- oder Abstandssensor mitverwenden will =====
Zum Beispiel: Roboter fährt geradeaus, bis er das weisse Papier verlässt/oder bis er 30 cm vor der Wand steht. Dann dreht er sich um 90 Grad nach rechts. Nun ist er in der Startposition zum Stiftaufheben (vorige Aufgabe verwenden).
# Ermittle mit Hilfe der folgenden Schleife die Werte
# für Weiss = Papier und Schwarz = Teppich und trage sie
# unten ansstelle der Nullen ein.
# Die Schleife wird aktuell nicht ausgeführt, wegen False.
while False:
r = licht.reflection()
print(r)
wait(100) # Wartezeit in Millisekunden
schwarz = 0
weiss = 0
# Hier folgt ein "Rasenmäher-Programm".
# Wegen False wird die Schleife ebenfalls nicht ausgeführt.
while False:
# Begin driving forward at 200 millimeters per second.
robot.drive(200, 0)
# Wait until an obstacle is detected. This is done by repeatedly
# doing nothing (waiting for 10 milliseconds) while the measured
# distance is still greater than 300 mm.
while ultraschall.distance() > 300:
wait(10)
# Drive backward for 300 millimeters.
robot.straight(-300)
# Turn around by 120 degrees
robot.turn(120)