Alvik trifft Smartphone: Daten live auf dem Handy!
phyphox ist eine kostenlose App für dein Smartphone (Android & iOS), die von der RWTH Aachen entwickelt wurde. Mit ihr kannst du Physik-Experimente durchführen und Messdaten in coolen Diagrammen anzeigen lassen!
🎯 Was macht das so besonders?
Normalerweise zeigt der Alvik seine Messwerte nur im Computer an. Mit phyphox kannst du die Daten kabellos per Bluetooth auf dein Smartphone senden und dort als Live-Diagramme betrachten – während der Alvik fährt!
Das kannst du zum Beispiel messen:
- 📈 Geschwindigkeit des Alvik während der Fahrt
- 🎢 Beschleunigung in Kurven oder beim Anfahren
- 📏 Abstand zu Hindernissen über die Zeit
- 🌡️ Temperatur, wenn ein Sensor angeschlossen ist
📥 Schritt 1: Die phyphoxBLE-Bibliothek installieren
Damit der Alvik mit der phyphox-App sprechen kann, brauchen wir eine spezielle Bibliothek. Die musst du einmal auf den Alvik übertragen:
📦 Installation:
- Öffne in Thonny links die Dateiansicht des Alvik
- Erstelle im Ordner
libeinen neuen Ordner namensphyphoxBLE - Lade die Dateien von GitHub herunter
- Kopiere alle 3 Dateien in den neuen Ordner:
__init__.py(mit zwei Unterstrichen vor und nach "init"!)experiment.pyserver.py

📲 Schritt 2: Die phyphox App herunterladen
Lade dir die phyphox App kostenlos auf dein Smartphone:
- Android: Google Play Store → "phyphox" suchen
- iOS: App Store → "phyphox" suchen
🚀 Schritt 3: Dein erstes Experiment – Geschwindigkeitsmessung
Jetzt programmieren wir den Alvik so, dass er seine Geschwindigkeit live an dein Handy sendet, während er ein Viereck fährt!
Der Code nutzt einen Timer, der automatisch alle 200 Millisekunden (= 5x pro Sekunde) die Geschwindigkeit misst und ans Handy sendet. So entsteht ein Live-Diagramm!
from machine import Timer
from arduino_alvik import ArduinoAlvik
from phyphoxBLE import PhyphoxBLE
import time
# Alvik initialisieren
alvik = ArduinoAlvik()
alvik.begin()
# Bluetooth-Verbindung zu phyphox starten
p = PhyphoxBLE()
p.start()
print("Bluetooth gestartet! Öffne jetzt die phyphox App.")
# Diese Funktion wird automatisch vom Timer aufgerufen
def drive_speed(timer):
# Geschwindigkeit messen
angular_velocity, linear_velocity = alvik.get_drive_speed()
print(f"Geschwindigkeit: {linear_velocity:.1f} cm/s")
# Wert ans Smartphone senden
p.write(linear_velocity)
# Timer: Ruft alle 200 ms (= 0,2 Sekunden) die Funktion auf
timer = Timer(-1)
timer.init(period=200, mode=Timer.PERIODIC, callback=drive_speed)
# Hauptprogramm: Viereck fahren
print("Fahre Viereck und sende Daten...")
while True:
for _ in range(4): # 4 Seiten
alvik.move(50) # Vorwärts fahren
alvik.rotate(90) # 90° drehen
time.sleep(1) # Kurze Pause
📱 Schritt 4: Mit der App verbinden
So verbindest du dein Smartphone:
- Starte das Programm auf dem Alvik
- Öffne die phyphox App auf deinem Handy
- Tippe oben rechts auf das ➕ Symbol
- Wähle "Bluetooth-Gerät"
- Wähle deinen Alvik aus der Liste (z.B. "Alvik" oder "ESP32")
- 🎉 Fertig! Du siehst jetzt ein Live-Diagramm der Geschwindigkeit!
🔍 Was passiert im Code?
| Code-Zeile | Was macht sie? |
|---|---|
p = PhyphoxBLE() |
Erstellt die Bluetooth-Verbindung |
p.start() |
Startet Bluetooth – jetzt kann das Handy sich verbinden |
timer.init(period=200, ...) |
Timer läuft alle 200 ms (5x pro Sekunde) |
p.write(linear_velocity) |
Sendet den Messwert ans Smartphone |
- Ändere die
periodauf 100 oder 500 – wie verändert sich das Diagramm? - Lass den Alvik schneller oder langsamer fahren – siehst du den Unterschied?
- Sende statt Geschwindigkeit die Beschleunigung:
p.write(ax)(nutzealvik.get_accelerations())
Challenge: phyphox-Integration
Teste dein Wissen über phyphox und den Alvik!
📝 Quiz
Wie oft wird in diesem Code die Geschwindigkeit gemessen und an phyphox gesendet?
timer.init(period=200, mode=Timer.PERIODIC, callback=drive_speed)
💻 Programmier-Challenge
Aufgabe: Ändere das Programm so, dass die Beschleunigungswerte (statt Geschwindigkeit) an phyphox gesendet werden.
alvik.get_accelerations() statt alvik.get_drive_speed()
✅ Selbsttest
Hake ab, was du gelernt hast: