lehrkraefte:blc:informatik:glf25:robotik:distanzfahren

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf25:robotik:distanzfahren [2025/11/24 13:48] – [Einen Meter fahren] Ivo Blöchligerlehrkraefte:blc:informatik:glf25:robotik:distanzfahren [2025/11/24 13:58] (current) – [Langsam anfahren und abbremsen] Ivo Blöchliger
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:
-    * ''radUmfang'' in cm. Daraus berechnen Sie (Konstant ''pi'' wurde durch den import definiert):+    * ''radDurchmesser'' in cm. Daraus berechnen Sie (Konstante ''pi'' wurde durch den import definiert):
     * ''gradProCM'' gibt an, um wie viele Grad sich das Rad für einen cm Vorwärtsfahrt drehen muss.     * ''gradProCM'' gibt an, um wie viele Grad sich das Rad für einen cm Vorwärtsfahrt drehen muss.
   * Der gewünschte Drehwinkel für 1 m ist dann ''100*gradProCM''.   * Der gewünschte Drehwinkel für 1 m ist dann ''100*gradProCM''.
  
 <WRAP todo> <WRAP todo>
-  * Bestimmen Sie durch Messung die Konstante ''radUmfang'' und berechnen Sie daraus direkt im Code die Konstante ''gradProCM'' für Ihren Roboter.+  * Bestimmen Sie durch Messung die Konstante ''radDurchmesser'' und berechnen Sie daraus direkt im Code die Konstante ''gradProCM'' für Ihren Roboter.
   * Fahren Sie damit genau 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?
Line 80: Line 80:
 v = min([vstart, vmax, vend])    # Kleinste der 3 Geschwindigkeiten v = min([vstart, vmax, vend])    # Kleinste der 3 Geschwindigkeiten
 </code> </code>
 +
 +<hidden Lösungsvorschlag>
 +Anfahren auf gegebener Strecke, Geschwindigkeit proportional zur Strecke (führt zu einem exponentiellen Geschwindigkeitszuwachs und Beschleunigung).
 +<code python>
 +vmin = 1        # Mindestgeschwindigkeit, dass man überhaupt einmal losfährt 
 +anfahren = 10   # 10cm Strecke zum Anfahren/Bremsen.
 +
 +
 +vstart = vmin+(vmax-vmin)*s/anfahren
 +vend = vmin+(vmax-vmin)*(distanz-s)/anfahren
 +</code>
 +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))
 +</code>
 +
 +</hidden>
 ===== Online-Dokumentation ===== ===== Online-Dokumentation =====
 Dokumentation der Motor-Klasse: https://pybricks.com/ev3-micropython/ev3devices.html#motors Dokumentation der Motor-Klasse: https://pybricks.com/ev3-micropython/ev3devices.html#motors
  • lehrkraefte/blc/informatik/glf25/robotik/distanzfahren.1763992088.txt.gz
  • Last modified: 2025/11/24 13:48
  • by Ivo Blöchliger