This is an old revision of the document!
Kurven fahren
Legen Sie ein 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
gradProDrehwinkelberechnen, 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<streckeAussen: if linksurve: s = .... # Zurückgelegte strecke vom Aussenrad else: s = .... rechts.stop() links.stop() # Funktion testen: kurve(50, 90, True, 20) # Radius 50cm, 90-Grad Kurve, Linkskurve, 20 cm/s Geschwindigkeit kurve(10, 90, False, 20) # Radius 10cm, 90-Grad Kurve, Rechtskurve, 20 cm/s