Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:glf22:robotik:schaufel [2024/06/27 07:16] – created Olaf Schnürer | lehrkraefte: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: | ||
| + | |||
| + | 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=" | ||
| + | |||
| + | 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, | ||
| + | |||
| + | # Einige Befehle, um die Schaufel/ | ||
| + | |||
| + | # 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/ | ||
| + | heber.run_target(20, | ||
| + | |||
| + | # 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/ | ||
| + | |||
| + | <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, | ||
| + | while False: | ||
| + | r = licht.reflection() | ||
| + | print(r) | ||
| + | wait(100) | ||
| + | |||
| + | schwarz = 0 | ||
| + | weiss = 0 | ||
| + | |||
| + | # Hier folgt ein " | ||
| + | # Wegen False wird die Schleife ebenfalls nicht ausgeführt. | ||
| + | while False: | ||
| + | # Begin driving forward at 200 millimeters per second. | ||
| + | robot.drive(200, | ||
| + | |||
| + | # 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) | ||
| + | </ | ||