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:glf24:robotik:drivebase [2024/11/29 18:02] – Ivo Blöchliger | lehrkraefte:blc:informatik:glf24:robotik:drivebase [2024/12/03 13:45] (current) – Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | {{backlinks> | ||
| + | ====== Roboter steuern mit DriveBase ====== | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Legen Sie ein neues Projekt unter dem Namen '' | ||
| + | * In der Datei '' | ||
| + | <code python> | ||
| + | links = Motor(Port.A) | ||
| + | rechts = Motor(Port.B) | ||
| + | # Ersetzen Sie folgende Werte durch die Werte in mm, die Sie in der letzten Stunde gemessen/ | ||
| + | fahrwerk = DriveBase(links, | ||
| + | # Studieren Sie https:// | ||
| + | # und kommentieren Sie die folgenden Befehle | ||
| + | |||
| + | fahrwerk.settings(50, | ||
| + | # Bewegen | ||
| + | fahrwerk.straight(200) | ||
| + | fahrwerk.turn(90) | ||
| + | fahrwerk.straight(-200) | ||
| + | |||
| + | # Etwas mehr | ||
| + | fahrwerk.drive(50, | ||
| + | wait(3000) | ||
| + | fahrwerk.stop() | ||
| + | </ | ||
| + | * Testen Sie das Programm auf dem Roboter und versuchen Sie das Programm ungefähr zu verstehen. | ||
| + | * Studieren Sie https:// | ||
| + | </ | ||
| + | |||
| + | <WRAP round caution> | ||
| + | Modifizieren und Ergänzen Sie obigen Code so, dass der Roboter von der 1m Linie um den Stuhl auf der anderen 1m Linie fährt. | ||
| + | |||
| + | Score: Zeit in Sekunden - Distanz in cm. | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | Die '' | ||
| + | * Fügen Sie folgende Funktion Ihrem Code hinzu (nachdem das '' | ||
| + | <code python> | ||
| + | from math import pi | ||
| + | def kreisbogen(geschwindigkeit, | ||
| + | """ | ||
| + | Ist geschwindigkeit< | ||
| + | if winkel> | ||
| + | richtung=1 | ||
| + | else: | ||
| + | richtung=-1 | ||
| + | dist = 2*radius*pi*winkel*richtung/ | ||
| + | zeit = dist/ | ||
| + | winkelgeschwindigkeit = winkel/zeit | ||
| + | print(" | ||
| + | winkelziel = fahrwerk.angle()+winkel | ||
| + | fahrwerk.drive(geschwindigkeit, | ||
| + | while fahrwerk.angle()*richtung< | ||
| + | wait(1) | ||
| + | if stoppAmSchluss: | ||
| + | fahrwerk.stop() | ||
| + | | ||
| + | # Aufrufen z.B. mit | ||
| + | kreisbogen(100, | ||
| + | </ | ||
| + | * Kommentieren Sie die Zeilen der Funktion und beschreiben Sie präzise, was wie und warum berechnet wird. | ||
| + | </ | ||
| + | |||
| + | ====== Betrunkener Roboter ====== | ||
| + | * Programmieren Sie einen Roboter, der eine Schlangenlinie fährt. | ||
| + | * Bonus für ein Programm, das auf einem Kreis mit 1m Durchmesser Schlangenlinien fährt und nach einer Umdrehung zum Stillstand kommt. | ||