Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{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. <WRAP todo> Berechnen Sie die Konstante ''gradProCM'' aus dem Parameter ''raddurchmesser'' und fügen Sie die entsprechende Code-Zeilen in Ihrem Programm ein. </WRAP> ===== Bestimmung Rad-Abstand ===== Erste Messung, Überprüfen, Korrekturfaktor errechnen, dann anpassen. ==== Ein Rad steht still ==== <WRAP todo> * 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. </WRAP> ===== Beliebige Kurven ===== Ziel: Eine Funktion, mit der Kurven von beliebigen Kurvenradien und Winkeln gefahren werden können. <code python> # 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 </code> ====== 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. lehrkraefte/blc/informatik/glf25/robotik/kurvenfahren.txt Last modified: 2025/11/24 14:45by Ivo Blöchliger