~~NOTOC~~ ====== Robotik (Micropython auf EV3 mit VSCode) ====== * https://www.youtube.com/watch?v=LDhJ5I89H_I * eventuell "Parkour robots" oder https://www.youtube.com/watch?v=29ECwExc-_M * eventuell medizinische Roboter (Steuerung eines Roboterarms) * Die Roboter sind vorsichtig zu behandeln. * Die Roboter fahren NUR auf den Fussboden (damit sie nicht herunterfallen). Bitte vorsichtig sein beim Bewegen im Raum. * Verboten ist insbesondere das Umbauen der Roboter. Preis pro Roboter: ca. 500 CHF * Jeder Roboter hat eine Nummer. Am Ende der Lektion ist jeder Roboter wieder an dem Platz mit seiner Nummer. * Programmiert wird an den Stehtischen auf den eigenen Laptops. * Nur dann auf dem Fussboden sitzen, wenn man etwas am Roboter macht. ===== Unser Roboter (Lego Mindstorms EV3) ===== {{:lehrkraefte:snr:informatik:glf23:robotik:roboter-rechts-vorne.jpg?400|}} {{:lehrkraefte:snr:informatik:glf23:robotik:roboter-links-vorne.jpg?400|}} {{:lehrkraefte:snr:informatik:glf23:robotik:roboter-hinten.jpg?400|}} {{:lehrkraefte:snr:informatik:glf23:robotik:roboter-oben.jpg?400|}} {{:lehrkraefte:snr:informatik:glf23:robotik:roboter-oben-display.jpg?400|}} ===== Basics ===== * [[lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:einrichten-und-erstes-programm|Einrichten (Roboter, VSCode) und erstes Programm]] * [[lehrkraefte:snr:informatik:glf22:robotik:aufraeumen|Aufräumen des Roboters]] * eventuell: ''pip install pybricks'' * Die Datei ''settings.json'' im ''.vscode''-Verzeichnis des Projekts sollte so aussehen: // Place your settings in this file to overwrite default and user settings. { "files.eol": "\n", "debug.openDebug": "neverOpen", "python.linting.enabled": true, "python.languageServer": "Default" } Bemerkung: Zuvor hatte es mit "en" statt "Default" geklappt, nun nicht mehr. ===== 1. Woche ===== ==== Aufgabe 0 ==== Den folgenden Code ans Ende des Programms ''main.py'' kopieren und den Code ausführen (Ctrl+F5). # Bitte sicherstellen, dass dein Computer im tech-lab-Netz ist und nicht in Schule SG o.ä.. ev3.speaker.say(text="Hello I am Robby the robot") links = Motor(Port.A) rechts = Motor(Port.B) # Checke die Kabelverbinungen! # Wenn du die obigen Einstellungen nutzen willst: # - Der linke Motor muss mit Port A (am EV3-Brick) verbunden sein. # - Der rechte Motor muss mit Port B verbunden sein. ==== Aufgabe 1 ==== Den Roboter so programmieren, dass er genau einen Meter geradeaus fährt (auf 5 cm genau). Am Boden gibt es 1-Meter-Markierungen (oder mit Metermass abmessen). Verwende die folgenden Befehle: links.run_angle(drehgeschwindigkeit, alpha, wait=False) Bewegt den linken Motor, also das linke Rad, mit - ''drehgeschwindigkeit'': Drehgeschwindigkeit in Grad/s; sinnvoll ist z. B. 120 - ''alpha'': Drehwinkel in Grad - ''wait=False'': Der Roboter wartet nicht, bis die Drehung vollständig ausgeführt ist; der Roboter kann sofort einen weiteren Befehl verarbeiten. rechts.run_angle(drehgeschwindigkeit, alpha, wait=True) * Dasselbe mit dem rechten Motor. * Wegen ''wait=True'' wird gewartet, bis die Raddrehung beendet ist. links.stop() rechts.stop() Stoppt die Motoren (vielleicht nicht unbedingt nötig). ==== Aufgabe 2 ==== Das vorherige Programm so erweitern, dass der Roboter genau einen Meter geradeaus fährt, sich dann umdreht und zum Ausgangspunkt zurückfährt. Toleranz: 10 cm Abstand bis zum Startpunkt. ===== 2.+3.(+Anfang 4.) Woche: Basisbewegungen durch Ausmessen und Kalibrieren ===== * [[lehrkraefte:snr:informatik:glf24:robotik:einfache-bewegungen|Vorwärtsfahren, Drehen auf der Stelle, Kreisbogenfahren]] ===== 4. Woche: Line Follower: Helligkeitssensor verwenden ===== * [[lehrkraefte:snr:informatik:glf22:robotik:line-follower|Line Follower]] ===== Mit dem Heber (Greifarm, Schaufel) etwas aufheben und woanders ablegen ===== * [[lehrkraefte:snr:informatik:glf22:robotik:schaufel|Schaufel]] ===== Abstandssensor verwenden ===== Verwende den Abstandssensor in sinnvoller Weise (zum Beispiel als "Rasenmäher": wenn der Roboter zu nah an der Wand ist, soll er etwas rückwärts fahren, drehen, und dann wieder weiterfahren). Hilfe: https://pybricks.com/ev3-micropython/examples/robot_educator_ultrasonic.html?highlight=ultrasonic