Beschleunigte Bewegung
Hier wird eine beschleunigte Bewegung des Alvik nach einem Tastendruck auf den Alvik ausgelöst und die Daten werden an die phyphox App gesendet
# Beschleunigte Bewegung messen
from arduino_alvik import ArduinoAlvik
from phyphoxBLE import PhyphoxBLE
import time
# Roboter initialisieren
alvik = ArduinoAlvik()
alvik.begin()
# PhyphoxBLE initialisieren und starten (vor dem Tastendruck)
p = PhyphoxBLE()
p.start()
print("Phyphox-Verbindung gestartet. Warte auf Tastendruck...")
# Warte auf Tastendruck und führe dann die Messung durch
while True:
taste = alvik.get_touch_any()
if taste == True:
print("Taste erkannt! Starte Beschleunigungsmessung...")
# Parameter für die Beschleunigung
start_geschw = 0 # cm/s
max_geschw = 30 # cm/s
beschleunigungs_zeit = 30 # Sekunden
print(f"Beschleunige von {start_geschw} auf {max_geschw} cm/s in {beschleunigungs_zeit} Sekunden")
# Beschleunigung berechnen (a = Δv/Δt)
beschleunigung = (max_geschw - start_geschw) / beschleunigungs_zeit
print(f"Berechnete Beschleunigung: {beschleunigung:.2f} cm/s²")
# Bewegung starten und Messung beginnen
startzeit = time.time()
alvik.move(start_geschw, 0)
# Während der Beschleunigung
while True:
aktuelle_zeit = time.time() - startzeit
# Neue Geschwindigkeit basierend auf Beschleunigung berechnen (v = v₀ + a·t)
neue_geschw = start_geschw + beschleunigung * aktuelle_zeit
# Begrenze auf Maximalgeschwindigkeit
if neue_geschw > max_geschw:
neue_geschw = max_geschw
# Setze neue Geschwindigkeit
alvik.move(neue_geschw, 0)
# Aktuelle Geschwindigkeit messen
_, gemessene_geschw = alvik.get_drive_speed()
# Zurückgelegte Strecke berechnen (s = v₀·t + ½·a·t²)
position = start_geschw * aktuelle_zeit + 0.5 * beschleunigung * aktuelle_zeit**2
# Daten an Phyphox senden (Zeit, Position, Geschwindigkeit, Beschleunigung)
p.write(aktuelle_zeit, position, gemessene_geschw, beschleunigung)
print(f"Zeit: {aktuelle_zeit:.2f}s, v: {gemessene_geschw:.2f}cm/s, s: {position:.2f}cm")
# Beende die Beschleunigung nach der festgelegten Zeit
if aktuelle_zeit >= beschleunigungs_zeit:
# Fahre noch kurz mit konstanter Geschwindigkeit weiter
alvik.move(max_geschw, 0)
time.sleep(2)
break
time.sleep(0.1)
alvik.stop()
print("Beschleunigungsmessung abgeschlossen")
time.sleep(0.1) # Kleine Pause, um die CPU nicht zu belasten
🎯
Challenge: Beschleunigte Bewegung
Teste dein Wissen über Physik und Programmierung!
📝 Quiz
Welche physikalische Formel wird verwendet, um die zurückgelegte Strecke bei gleichmäßiger Beschleunigung zu berechnen?
💻 Programmier-Challenge
Aufgabe: Ändere das Programm so, dass der Alvik schneller beschleunigt (15 statt 30 Sekunden) und eine höhere Endgeschwindigkeit erreicht (50 statt 30 cm/s).
💡 Tipp: Ändere die Variablen
max_geschw und beschleunigungs_zeit am Anfang des Programms.
✅ Selbsttest
Hake ab, was du gelernt hast:
Fortschritt: 0/3 ✓