~~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