Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:drivebase [2023/02/10 08:21] Ivo Blöchliger created |
lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:drivebase [2023/02/14 09:59] (current) Ivo Blöchliger [Roboter steuern mit DriveBase] |
||
---|---|---|---|
Line 2: | Line 2: | ||
<WRAP todo> | <WRAP todo> | ||
* Legen Sie ein neues Projekt unter dem Namen '' | * Legen Sie ein neues Projekt unter dem Namen '' | ||
- | * In der Datei main.py, fügen Sie folgende Zeilen hinzu: | + | * In der Datei '' |
<code python> | <code python> | ||
links = Motor(Port.A) | links = Motor(Port.A) | ||
rechts = Motor(Port.B) | rechts = Motor(Port.B) | ||
# Ersetzen Sie folgende Werte durch die Werte in mm, die Sie in der letzten Stunde gemessen/ | # Ersetzen Sie folgende Werte durch die Werte in mm, die Sie in der letzten Stunde gemessen/ | ||
- | fahrwerk = DriveBase(left, right, 55, 125) # Motor links, Motor rechts, Raddurchmesser (in mm), Radabstand (in mm) | + | fahrwerk = DriveBase(links, rechts, 55, 125) # Motor links, Motor rechts, Raddurchmesser (in mm), Radabstand (in mm) |
+ | |||
# Parameter setzen | # Parameter setzen | ||
fahrwerk.settings(50, | fahrwerk.settings(50, | ||
- | fahrwerk.straight(200) | + | # Bewegen |
- | fahrwerk.turn(90) | + | fahrwerk.straight(200) |
- | fahrwerk.straight(-200) # 200 mm geradeaus rückwärts | + | fahrwerk.turn(90) |
+ | fahrwerk.straight(-200) | ||
+ | |||
+ | # Etwas mehr | ||
+ | fahrwerk.drive(50, | ||
+ | wait(3000) | ||
+ | fahrwerk.stop() | ||
</ | </ | ||
- | * Dokumentieren | + | * Testen Sie das Programm auf dem Roboter und versuchen |
- | * Testen | + | * Studieren |
</ | </ | ||
+ | <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. | ||
+ | </ | ||