Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf19:robofollow [2020/06/14 19:35] – Ivo Blöchliger | lehrkraefte:blc:informatik:glf19:robofollow [2020/06/15 10:45] (current) – Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Line Follower ====== | ||
| + | Ziel: Der Roboter folgt einer Linie. | ||
| + | |||
| + | ===== Vorbereitung ===== | ||
| + | * Laptop und Roboter (Taste in der Mitte) starten. | ||
| + | * Stromversorgung vom Roboter ausstecken. | ||
| + | * Bezeichnung der Roboter-Tasten verstehen: | ||
| + | * ESC, Escape: Oben links | ||
| + | * Enter, Bestätigen: | ||
| + | * TigerJython starten. | ||
| + | * IP von Roboter ablesen und in TigerJython wie folgt eintragen: | ||
| + | * Datei -> Einstellungen -> Bibliotheken -> zuunterst die IP eintragen. Bestätigen. | ||
| + | * Auf dem Roboter Enter drücken (mittlere Taste), **Run default**. | ||
| + | * Beispiel-Code kopieren, **speichern**, | ||
| + | |||
| + | <code python> | ||
| + | from ev3robot import * | ||
| + | |||
| + | # Roboter initialisieren | ||
| + | robot = LegoRobot() | ||
| + | |||
| + | # Linker und rechter Motor hinzufuegen | ||
| + | right = Motor(MotorPort.A) | ||
| + | robot.addPart(right) | ||
| + | |||
| + | left = Motor(MotorPort.B) | ||
| + | robot.addPart(left) | ||
| + | |||
| + | |||
| + | # Lichtsensor hinzufuegen und starten | ||
| + | ls = LightSensor(SensorPort.S3) | ||
| + | robot.addPart(ls) | ||
| + | ls.activate(True) | ||
| + | ################################## | ||
| + | ## Platz fuer eigene Funktionen ## | ||
| + | ################################## | ||
| + | |||
| + | |||
| + | ########################################### | ||
| + | ## B E G I N D E S P R O G R A M M S ## | ||
| + | ########################################### | ||
| + | |||
| + | left.setSpeed(20) | ||
| + | left.forward() | ||
| + | right.setSpeed(10) | ||
| + | right.forward() | ||
| + | |||
| + | # Die Motoren drehen sich jetzt | ||
| + | |||
| + | Tools.delay(2000) | ||
| + | |||
| + | # Motoren stoppen, Geschwindigkeit auf Null | ||
| + | left.setSpeed(0) | ||
| + | left.forward() | ||
| + | right.setSpeed(0) | ||
| + | right.forward() | ||
| + | |||
| + | robot.exit() | ||
| + | </ | ||
| + | |||
| + | ===== Challenge 1 ===== | ||
| + | Der Roboter soll auf weissem Untergrund starten. Er soll so lange geradeaus fahren, bis der Helligkeitssensor auf auf dem Teppich ist. Bonuspunkte, | ||
| + | |||
| + | **Wichtig: Speichern Sie Ihr Programm regelmässig!** | ||
| + | |||
| + | Pseudo-Code: | ||
| + | Motoren an | ||
| + | Wiederholen: | ||
| + | Lichtsensor auslesen | ||
| + | Schleife verlassen (mit '' | ||
| + | Motoren aus | ||
| + | | ||
| + | Lichtsensor auslesen und anzeigen. Diesen Code verwenden Sie anstatt der Pause. | ||
| + | <code python> | ||
| + | while True: | ||
| + | l = ls.getValue() | ||
| + | print(" | ||
| + | if True: # Hier die Bedingung mit der Helligkeit einbauen. | ||
| + | break | ||
| + | </ | ||
| + | |||
| + | ===== Challenge 2 ===== | ||
| + | Ziel ist es, dass der Roboter mit dem Helligkeitssensor einer hell-dunkel Kante folgt, z.B. entlang einer weissen Fläche auf dem Teppich, oder entlang der Bahn auf der Blache. | ||
| + | |||
| + | Um die beiden Motoren etwas konfortabler steuern zu können, dürfen Sie gerne folgende Funktion verwenden, die Sie unmittelbar vor dem Kommentar '' | ||
| + | <code python> | ||
| + | # Beispiele: | ||
| + | # steuern(0, | ||
| + | # steuern(20, | ||
| + | # steuern(40, | ||
| + | # steuern(10, | ||
| + | def steuern(links, | ||
| + | left.setSpeed(int(abs(links))) | ||
| + | if (links> | ||
| + | left.forward() | ||
| + | elif (links< | ||
| + | left.backward() | ||
| + | else: | ||
| + | left.stop() | ||
| + | right.setSpeed(int(abs(rechts))) | ||
| + | if (rechts> | ||
| + | right.forward() | ||
| + | elif (rechts< | ||
| + | right.backward() | ||
| + | else: | ||
| + | right.stop() | ||
| + | </ | ||
| + | |||
| + | Idee 1: In einer Endlos-Schleife jeweils die Helligkeit ermitteln und je nach Helligkeit mit der Funktion '' | ||
| + | |||
| + | Idee 2: Abschätzen, | ||
| + | |||
| + | ===== Aufräumen ===== | ||
| + | * Roboter ausschalten (Escape, Escape, dann bestätigen). | ||
| + | * Roboter an seinen Platz auf den Laptop mit gleicher Nummer. | ||
| + | * Roboter an die Stromversorgung anschliessen. | ||
| + | * Laptop ausschalten (Menu oben rechts) | ||
| + | * Sich melden, vor dem Roboter warten, bis ich Sie verabschiede. | ||
| + | |||