Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:blc:informatik:glf20:robotik:linefollower [2021/05/12 21:33] Ivo Blöchliger [Weitere mögliche Verbesserungen] |
lehrkraefte:blc:informatik:glf20:robotik:linefollower [2021/05/21 11:37] (current) 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 = linear(?, grau-50, ?, ?, hell); | ||
+ | gear.leftArc(r) | ||
+ | else: | ||
+ | r = linear(grau+50, | ||
+ | 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 Kurvenradien entsprechend reduziert werden. Sobald aber eine Kurve festgestellt wird, muss die Geschwindigkeit wieder reduziert werden. | * Auf geraden Stücken könnte die Geschwindigkeit erhöht werden und die Kurvenradien entsprechend reduziert werden. Sobald aber eine Kurve festgestellt wird, muss die Geschwindigkeit wieder reduziert werden. |