lehrkraefte:snr:informatik:glf22:robotik:schaufel

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
lehrkraefte:snr:informatik:glf22:robotik:schaufel [2024/06/27 07:19] – [Steuerung der Schaufel kennenlernen] Olaf Schnürerlehrkraefte:snr:informatik:glf22:robotik:schaufel [2024/06/27 07:20] (current) – [Wer Helligkeits- oder Abstandssensor mitverwenden will] Olaf Schnürer
Line 1: Line 1:
 +====== 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.
 +<code python>
 + 
 +###################
 +#  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)
 +
 +</code>
 +
 +===== 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).
 +
 +<code python>
 + 
 +# 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)
 +</code>