Table of Contents

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 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<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

Challenge

Parcours:

Wertung: