Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
lehrkraefte:blc:informatik:glf20:robotik:linefollower [2021/05/12 11:40] Ivo Blöchliger [Grundidee: Grau muss es sein] |
lehrkraefte:blc:informatik:glf20:robotik:linefollower [2021/05/21 11:27] Ivo Blöchliger |
||
---|---|---|---|
Line 18: | Line 18: | ||
grau = 500 # Diesen Wert eventuell anpassen | grau = 500 # Diesen Wert eventuell anpassen | ||
radiusLinks = 0.1 # Radius anpassen, so dass die engsten Kurven gefahren werden können | radiusLinks = 0.1 # Radius anpassen, so dass die engsten Kurven gefahren werden können | ||
- | rediusRechts | + | radiusRechts |
gear.setSpeed(20) | gear.setSpeed(20) | ||
Line 41: | Line 41: | ||
Wenn die Geschwindigkeit klein genug ist (z.B. '' | Wenn die Geschwindigkeit klein genug ist (z.B. '' | ||
+ | <code python> | ||
+ | ########################################### | ||
+ | ## B E G I N D E S P R O G R A M M S ## | ||
+ | ########################################### | ||
+ | |||
+ | |||
+ | grau = 500 # Diesen Wert eventuell anpassen | ||
+ | radiusLinks = 0.1 # Radius anpassen, so dass die engsten Kurven gefahren werden können | ||
+ | radiusRechts = 0.2 # Radius anpassen, so dass die engsten Kurven gefahren werden können | ||
+ | |||
+ | # Das Interval [a,b] linear auf das Intervall [c,d] umrechnen, an der Stelle x | ||
+ | |||
+ | def linear(a, | ||
+ | return (x-a)/ | ||
+ | |||
+ | def guterRadius(hell): | ||
+ | if (hell> | ||
+ | gear.forward() | ||
+ | return | ||
+ | if (hell< | ||
+ | r = 1/linear(?, grau-50, ?, ?, hell); | ||
+ | gear.leftArc(r) | ||
+ | else: | ||
+ | r = 1/ | ||
+ | gear.rightArc(r) | ||
+ | |||
+ | gear.setSpeed(20) | ||
+ | while True: | ||
+ | hell = ls.getValue() | ||
+ | if hell==0: | ||
+ | break | ||
+ | guterRadius(hell) | ||
+ | |||
+ | gear.stop() | ||
+ | robot.exit() | ||
+ | </ | ||
===== Weitere mögliche Verbesserungen ===== | ===== Weitere mögliche Verbesserungen ===== | ||
- | * Auf geraden Stücken könnte die Geschwindigkeit erhöht werden und die Kurvenradius | + | * Auf geraden Stücken könnte die Geschwindigkeit erhöht werden und die Kurvenradien |
* Man betrachtet nicht nur die aktuelle Helligkeit, sondern auch die Veränderung der Helligkeit. Wenn diese schnell heller wird, kann man so bereits Gegensteuer geben. | * Man betrachtet nicht nur die aktuelle Helligkeit, sondern auch die Veränderung der Helligkeit. Wenn diese schnell heller wird, kann man so bereits Gegensteuer geben. | ||
* Man summiert die " | * Man summiert die " |