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:glf25:robotik:distanzfahren [2025/11/24 06:31] – [Geradeausfahren] Ivo Blöchliger | lehrkraefte:blc:informatik:glf25:robotik:distanzfahren [2025/11/24 13:58] (current) – [Langsam anfahren und abbremsen] Ivo Blöchliger | ||
|---|---|---|---|
| Line 12: | Line 12: | ||
| </ | </ | ||
| * Stellen Sie den Roboter auf den Boden, bevor Sie den Code testen. Der Roboter sollte eine Radumdrehung nach vorne fahren. | * Stellen Sie den Roboter auf den Boden, bevor Sie den Code testen. Der Roboter sollte eine Radumdrehung nach vorne fahren. | ||
| - | * Am Anfang Ihres Programms, fügen Sie folgenden import hinzu (damit der Wert '' | + | * Am Anfang Ihres Programms, nach den anderen '' |
| <code python> | <code python> | ||
| from math import pi # Wert pi importieren | from math import pi # Wert pi importieren | ||
| Line 24: | Line 24: | ||
| * Dazu soll nicht einfach gut geraten werden, sondern durch Messung und geschickte Korrektur soll folgende Konstante für Ihren Roboter und den Teppich-Untergrund möglichst genau bestimmt werden: | * Dazu soll nicht einfach gut geraten werden, sondern durch Messung und geschickte Korrektur soll folgende Konstante für Ihren Roboter und den Teppich-Untergrund möglichst genau bestimmt werden: | ||
| + | * '' | ||
| * '' | * '' | ||
| * Der gewünschte Drehwinkel für 1 m ist dann '' | * Der gewünschte Drehwinkel für 1 m ist dann '' | ||
| <WRAP todo> | <WRAP todo> | ||
| - | * Bestimmen Sie durch Messung die Konstante '' | + | * Bestimmen Sie durch Messung |
| - | * Fahren Sie damit einen Meter und testen Sie. | + | * Fahren Sie damit genau einen Meter und testen Sie. |
| * Fahren Sie schneller. Welche Probleme tauchen auf? | * Fahren Sie schneller. Welche Probleme tauchen auf? | ||
| </ | </ | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code python> | ||
| + | radDurchmesser = 6 # Raddurchmesser in cm | ||
| + | gradProCM = 360/ | ||
| + | |||
| + | distanz = 100 # 1m fahren | ||
| + | |||
| + | links.run_angle(120, | ||
| + | rechts.run_angle(120, | ||
| + | </ | ||
| + | </ | ||
| ====== Langsam anfahren und abbremsen ====== | ====== Langsam anfahren und abbremsen ====== | ||
| Line 67: | Line 80: | ||
| v = min([vstart, | v = min([vstart, | ||
| </ | </ | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | Anfahren auf gegebener Strecke, Geschwindigkeit proportional zur Strecke (führt zu einem exponentiellen Geschwindigkeitszuwachs und Beschleunigung). | ||
| + | <code python> | ||
| + | vmin = 1 # Mindestgeschwindigkeit, | ||
| + | anfahren = 10 # 10cm Strecke zum Anfahren/ | ||
| + | |||
| + | |||
| + | vstart = vmin+(vmax-vmin)*s/ | ||
| + | vend = vmin+(vmax-vmin)*(distanz-s)/ | ||
| + | </ | ||
| + | Setzt man eine konstante Beschleunigung $a$ voraus, erhält man aus den Bewegungsgleichungen $v(s) = s\cdot\sqrt{2as}$. | ||
| + | <code python> | ||
| + | a = 2 # Beschleunigung in cm/s/s | ||
| + | |||
| + | |||
| + | vstart = vmin + s*(2*a*s)**0.5 | ||
| + | vend = vmin + (distanz-s)*(2*a*(distanz-s)) | ||
| + | </ | ||
| + | |||
| + | </ | ||
| ===== Online-Dokumentation ===== | ===== Online-Dokumentation ===== | ||
| Dokumentation der Motor-Klasse: | Dokumentation der Motor-Klasse: | ||