{{backlinks>.}}
====== Kurven fahren ======
Legen Sie ein [[.:einrichten#neues_projekt_anlegen|neues Projekt an]]. z.B. mit dem Namen ''kurvenfahren''.
Kopieren Sie den Code, den Sie für das Geradeausfahren geschrieben haben, ins neue Projekt
===== Bestimmende Parameter =====
Die Parameter ''raddurchmesser'' und ''radabstand'' reichen aus, um mit dem Roboter navigieren zu können.
Berechnen Sie die Konstante ''gradProCM'' aus dem Parameter ''raddurchmesser'' und fügen Sie die entsprechende Code-Zeilen in Ihrem Programm ein.
===== Bestimmung Rad-Abstand =====
Erste Messung, Überprüfen, Korrekturfaktor errechnen, dann anpassen.
==== Ein Rad steht still ====
* Messen Sie den Radabstand in cm mit dem Geo-Dreieck oder Lineal
* Definieren Sie damit die Variable ''radAbstand''.
* Ihr Programm soll daraus eine weitere Variable ''gradProDrehwinkel'' berechnen, die angibt, um wieviele Grad sich ein Rad um sich selbst drehen muss, damit sich der Roboter um 1° um die vertikale Achse dreht.
* Schreiben Sie mit den obigen Variablen ein Programm, so dass nur das rechte Rad dreht. Der Roboter soll eine volle 360° Drehung machen.
* Messen Sie, um wie viele Grad sich der Roboter zu weit oder zu wenig weit gedreht hat. Berechnen Sie draus einen korrigierten Radbastand und tragen Sie diesen im Programm ein.
* Testen nochmals.
===== Beliebige Kurven =====
Ziel: Eine Funktion, mit der Kurven von beliebigen Kurvenradien und Winkeln gefahren werden können.
# Fahre eine Kurve mit Radius radius (in cm),
# Kurven-Winkel winkel
# linkskurve ist True, wenn eine Linkskurve gefahren werden soll, sonst False
# und Geschwindigkeit v (in cm/s), wobei sich die Geschwindigkeit auf den Mittelpunkt des Roboters bezieht.
def kurve(radius, winkel, linkskurve, v):
# Berechnen Sie folgende Grössen:
speedAussen = .... # Geschwindigkeit in cm/s für das äussere Rad
speedInnen = .... # Geschwindigkeit in cm/s für das innere Rad
streckeAussen = .... # Strecke in cm des Äusseren Rads
s = 0
# Korrekte Motoren starten:
if linkskurve:
rechts.run(....)
links.run(....)
else:
rechts.run(....)
links.run(....)
# Warten bis Strecke zurückgelegt
while s
====== Challenge ======
Parcours:
* Startposition: Der rechte Helligkeitssensor liegt über dem Startpunkt. Die Ausrichtung vom Roboter darf frei gewählt werden.
* Der Roboter macht einen Pieps, bevor die Motoren sich bewegen. Ab diesem Zeitpunkt wird die Zeit gemessen.
* Der Roboter muss einen fünffüssigen Stuhl umrunden, dessen Zentrum sich 1m vom Startpunkt entfernt befindet.
* Der Roboter hält wieder mit dem rechten Helligkeitssensor über dem Startpunkt.
* Der Roboter macht einen Pieps. Die Zeit wird gestoppt.
Wertung:
* $t+2d$, wobei $t$ die Zeit in Sekunden und $d$ die Distanz in cm vom Startpunkt sind.