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. ====== Helligkeitssensor ====== Gemessen wird die Differenz der Helligkeit zwischen Licht an und Licht aus (so schnell, dass man das Flackern nicht direkt sieht). Gemesser wird aber nicht an einem Punkt, sondern an einem Fleck, der ungefähr 1cm (???) Durchmesser hat. * Wer mag diesen Durchmesser bestimmen? ===== Einer Kante folgen ===== Idee: Man folgt einer Kante zwischen hell und dunkel. Zu hell: nach links, zu dunkel also nach rechts. ==== Der Wackler ==== Man legt einen geeigneten Kurvenradius und Geschwindigkeit fest (kann für gerade Linien beides auch ein bisschen grösser sein). * Bestimmen Sie die gemessene Helligkeit, wenn der Sensor genau auf der Linie ist. * Kopieren Sie folgenden Code in ein neues Projekt, z.B. mit Namen ''linefollower'': <code python> licht = ColorSensor(Port.S3) # Bitte Anschluss-Nummer überprüfen. links = Motor(Port.A) rechts = Motor(Port.B) fahrwerk = DriveBase(links, rechts, 55, 110) # Motor links, Motor rechts, Raddurchmesser (in mm), Radabstand (in mm) v = 100 # Geschwindigkeit omega = 30 # Drehgeschwindigkeit (um die eigene Achse) fahrwerk.reset() while fahrwerk.distance()<400: # Wiederholen, bis 400mm zurückgelegt wurden hell = licht.reflection() # Helligkeit messen if (hell<25): fahrwerk.drive(v, omega) else: fahrwerk.drive(v, -omega) fahrwerk.stop() # Danach anhalten </code> * Passen Sie Geschwindigkeit ''v'' und die Drehgeschwindigkeit ''omega'' an, dass der Roboter der Linie folgen kann. ==== Weniger wackeln ==== Aus der Helligkeit ''hell'' und der maximalen Drehgeschwindigkeit ''omega'', berechnen Sie eine neue Drehgeschwindigkeit ''o'', die zwischen ''-omega'' und ''omega'' liegen soll. ''o'' soll Null sein, wenn der Roboter genau drauf liegt. ==== Besseres Gegensteuer ==== Stellen wir uns vor, der Roboter fährt gerade, aber mit kleinem Winkel über den Klebestreifen. Die Helligkeit nimmt langsam zu. Aber schon vor die gewünschte Helligkeit erreicht wird, muss der Roboter in die andere Richtung lenken. Dazu wird die Helligkeit am Ende der Wiederholung in einer Variable ''hell_alt'' gespeichert. Diese Variable wird vor der Wiederholung auf ''-1'' initialisiert, damit erkannt werden kann, dass noch kein Wert existiert. Die Drehgeschwindigkeit soll jetzt zusätzlich von der Differen ''hell-hell_alt'' beeinflusst werden. Damit sollte sich der Roboter schneller stabilisieren können. ==== Drehgeschwindigkeit dem Kurvenradius anpassen ==== In einer Kurve wird der Roboter neben der Kante fahren (bei dem Wert, der nötig ist, um die Kurve zu fahren). Das kann schnell schief gehen, wenn die Kurve zu eng ist. Die Idee ist, die Abweichungen vom Soll-Wert aufzusummieren. Diese Summe beinflusst dann zusätzlich die Drehgeschwindigkeit (und evtl. die Geschwindigkeit, weil langsamer ist besser). Damit die Summe nicht komplett unsinnige Werte annimt, soll sie auf ein Intervall eingeschränkt werden. lehrkraefte/blc/informatik/glf25/robotik/linefollower.txt Last modified: 2025/12/12 14:30by Ivo Blöchliger