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 07:22] – [Geradeausfahren] 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?
 </WRAP> </WRAP>
 +
 +<hidden Lösungsvorschlag>
 +<code python>
 +radDurchmesser = 6                             # Raddurchmesser in cm
 +gradProCM = 360/(radDurchmesser*pi)            # Ergibt um die 20 Grad/cm (Feinjustierung mit 1m fahren).
 +
 +distanz = 100     # 1m fahren
 +
 +links.run_angle(120, distanz*gradProCM, wait=False)   # 120 Grad/s Drehgeschwindigkeit, eine volle Rad-Umdrehung, nicht warten, sondern gleich den nächsten Befehl ausführen.
 +rechts.run_angle(120, distanz*gradProCM, wait=True)   # Dito, aber warten, bis fertig gedreht.
 +</code>
 +</hidden>
  
 ====== Langsam anfahren und abbremsen ====== ====== Langsam anfahren und abbremsen ======
Line 68: 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.1763968970.txt.gz
  • Last modified: 2025/11/24 07:22
  • by Ivo Blöchliger