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:glf22:robotik-mit-svcode:drivebase [2023/02/10 08:09] – Ivo Blöchliger | lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:drivebase [2023/02/14 08:59] (current) – [Roboter steuern mit DriveBase] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== 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, | ||
| + | |||
| + | # Parameter setzen | ||
| + | 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 todo> | ||
| + | Die '' | ||
| + | * Fügen Sie folgende Funktion Ihrem Code hinzu (nachdem das '' | ||
| + | <code python> | ||
| + | def kreisbogen(fahrwerk, | ||
| + | """ | ||
| + | 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) | ||
| + | fahrwerk.stop() | ||
| + | | ||
| + | # Aufrufen z.B. mit | ||
| + | kreisbogen(fahrwerk, | ||
| + | </ | ||
| + | * Kommentieren Sie die Zeilen der Funktion und beschreiben Sie präzise, was wie und warum berechnet wird. | ||
| + | </ | ||
| + | |||
| + | ===== Challenge ===== | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Der Roboter startet mit dem Lichtsensor am Rande eines «1m Klebestreifens». | ||
| + | * Ein Stuhl steht mittig auf dem gegenüberliegenden «1m Klebestreifen». | ||
| + | * Der Roboter soll den Stuhl umrunden und möglichst genau wieder auf dem Ausgangs-Punkt stehen bleiben. | ||
| + | * Gemessen wird die Zeit in Sekunden. Dazu wird $\frac{1}{10}$ des Quadrats der Distanz in cm vom Startpunkt addiert. Die Gruppe mit dem kleinsten Score gewinnt. | ||
| + | * Es dürfen beliebig viele Versuche gemacht werden. | ||
| + | </ | ||