🎯 Sensoren auslesen – Verstehen statt Kopieren!

📚 Hilfe brauchst du hier:
API-Liste – Alle Befehle mit genauer Syntax
Command Center – Schnell Befehle ausprobieren ohne Code zu schreiben

🔌 Wichtig: USB vs. Autonom

Zum Experimentieren (USB-Kabel):

Für autonomes Fahren (ohne Kabel):

📊 Challenge 1: Baue dein eigenes Dashboard

Deine Aufgabe: Ergänze den Code, damit ALLE Sensoren ausgelesen werden!

from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

while True:
    # TODO: Lies die Abstandssensoren aus
    # Tipp: alvik.get_distance() gibt 5 Werte zurück
    d_l, d_cl, d_c, d_cr, d_r = # <-- DEIN CODE
    
    # TODO: Lies den Farbsensor aus
    color = # <-- DEIN CODE
    
    # TODO: Lies die Batterie aus
    battery = # <-- DEIN CODE
    
    print("=" * 40)
    print(f"🎯 Mitte: {d_c:.1f} cm")
    print(f"🎨 Farbe: {color}")
    print(f"🔋 Akku: {battery}%")
    
    sleep_ms(500)
💡 Stuck?
Schau in die API-Liste unter "get_distance", "get_color_label" und "get_battery_charge"

❓ Fragen zum Nachdenken:

🚦 Challenge 2: Abstands-Ampel

Ziel: LEDs sollen rot/gelb/grün leuchten je nach Abstand

Schritt 1: Verstehe den Code

from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

while True:
    d_l, d_cl, d_c, d_cr, d_r = alvik.get_distance()
    
    # Nur mittlerer Sensor wird genutzt
    if d_c < 10:
        # ROT bei weniger als 10cm
        alvik.left_led.set_color(1, 0, 0)
        alvik.right_led.set_color(1, 0, 0)
    
    # TODO: GELB bei 10-20cm
    # elif d_c < ???:
    #     alvik.left_led.set_color(???)  # Welche Zahlen für GELB?
    
    # TODO: GRÜN bei mehr als 20cm
    # else:
    #     alvik.left_led.set_color(???)
    
    sleep_ms(100)

📝 Aufgaben:

  1. Ergänze den Code für GELB und GRÜN
  2. Teste: Bewege deine Hand vor dem Sensor
  3. Speichere in main.py und teste ohne Kabel
💡 LED-Farben:
ROT = (1,0,0) | GELB = (1,1,0) | GRÜN = (0,1,0)
Mehr dazu: API → left_led.set_color

🎯 Level-Up:

🎨 Challenge 3: Farb-Detektor mit Bug! 🐛

Problem: Dieser Code hat einen Fehler. Findest du ihn?

from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

last_color = ""

while True:
    color = alvik.get_color_label()
    
    # Zeige nur NEUE Farben an
    if color != last_color:
        print(f"🎨 Farbe: {color}")
        last_color = color
    
    sleep_ms(200)

❓ Was ist das Problem?

💡 Tipp (klicken zum Aufdecken)

Was passiert, wenn der Sensor "UNDEFINED" zurückgibt?

🔧 Deine Lösung: Wie würdest du das beheben?

🎮 Schnell testen?
Nutze das Command Center um get_color_label() direkt auszuprobieren!

🎢 Challenge 4: Neigungsmelder

Start-Code (unvollständig):

from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

while True:
    ax, ay, az, gx, gy, gz = alvik.get_imu()
    
    # ax = Neigung vorwärts/rückwärts
    # ay = Neigung links/rechts
    
    if ax > ???:  # <-- Welcher Wert macht Sinn?
        print("⬆️ Nach vorne gekippt!")
        # TODO: Welche LED-Farbe würde passen?
        alvik.left_led.set_color(???)
    
    # TODO: Ergänze die anderen Richtungen
    # - Nach hinten (ax < -5)
    # - Nach links (ay > 5)  
    # - Nach rechts (ay < -5)
    
    sleep_ms(500)
💡 Was bedeutet ax, ay, az?
Schau in die API-Liste → get_imu() für Details zur IMU

Experimentier-Aufgaben:

  1. Probiere verschiedene Schwellenwerte (3, 5, 10)
  2. Was ist ein guter Wert für "gekippt"?
  3. Ergänze alle 4 Richtungen
  4. Bonus: Kombiniere mit LEDs in unterschiedlichen Farben

🧪 Sensor-Experimente

Versuch 1: Messwert-Grenzen

# Finde heraus: Was sind die Min/Max-Werte?
from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

max_distance = 0
min_distance = 999

while True:
    d_l, d_cl, d_c, d_cr, d_r = alvik.get_distance()
    
    # TODO: Aktualisiere max_distance und min_distance
    # Tipp: if d_c > max_distance: ...
    
    print(f"Min: {min_distance} | Jetzt: {d_c} | Max: {max_distance}")
    sleep_ms(200)

❓ Aufgabe: Ergänze den Code und finde die Sensor-Grenzen!

📋 Sensor-Cheatsheet

Sensor Code Gibt zurück
🎯 Abstand alvik.get_distance() d_l, d_cl, d_c, d_cr, d_r (cm)
🎨 Farbe alvik.get_color_label() "RED", "GREEN", "BLUE" usw.
📐 IMU alvik.get_imu() ax, ay, az, gx, gy, gz
🔋 Batterie alvik.get_battery_charge() 0-100 (Prozent)
📖 Alle Sensoren im Detail:
Die vollständige Liste aller Sensor-Befehle findest du in der API-Liste

💡 Denk-Fragen zum Schluss

  1. Warum gibt es 5 Abstandssensoren und nicht nur 1?
  2. Was passiert, wenn du sleep_ms(100) auf sleep_ms(10) änderst?
  3. Wie oft pro Sekunde werden die Sensoren bei sleep_ms(200) ausgelesen?
  4. Warum sollte man Farb-Änderungen speichern (last_color)?
🚀 Weiter geht's:
• Probiere die Befehle im Command Center aus
• Alle Befehle nachschlagen: API-Liste
• Beispiele: Kollisionsvermeidung
🎯

Challenge: Sensor-Dashboard erstellen

Lese alle Sensoren aus und zeige die Werte an!

🧠 Wissens-Check

1. Wie viele Werte liefert alvik.get_distance()?

Selbsttest: Das kann ich jetzt!

Hake ab, was du verstanden hast:

0/3

Punkte verstanden