📝 Beispielaufgaben - Teste dein Wissen!

🎯 Deine finale Herausforderung

Du hast in den Tutorials viel über MicroPython und den Alvik gelernt. Jetzt kannst du dein Wissen testen!

Wichtig: Diese Aufgaben sind keine Prüfung, sondern eine Chance zu überprüfen, ob du die Grundlagen der Microcontroller-Programmierung verstanden hast.

Die Aufgaben sind in drei Level organisiert: Python & Bewegung, Sensoren & Entscheidungen und Integration. Viel Erfolg!

1 Level 1: Python & Bewegung

In diesem Level testest du dein Wissen über Python-Grundlagen und Bewegungssteuerung des Alvik.

📚 Aufgabe 1: Variablen und print()

Ziel: Verstehe, wie man Werte in Variablen speichert und sie ausgibt.

Deine Aufgabe:

  1. Erstelle eine Variable geschwindigkeit mit dem Wert 50
  2. Erstelle eine Variable roboter_name mit dem Wert "Alvik"
  3. Gib beide Werte mit print() auf dem Bildschirm aus
  4. Nutze einen f-string, um auszugeben: Alvik fährt mit 50 cm/s

💡 Hilfestellung:

  • Variablen erstellt man mit: name = wert
  • Für Text (Strings) nutzt man Anführungszeichen: "Text"
  • F-Strings sehen so aus: f"Text {variable}"
🔍 Lösung anzeigen
geschwindigkeit = 50
roboter_name = "Alvik"
print(f"{roboter_name} fährt mit {geschwindigkeit} cm/s")

🚗 Aufgabe 2: Alvik vorwärts fahren lassen

Ziel: Lerne, den Alvik mit set_wheels_speed() zu steuern.

Deine Aufgabe:

  1. Schreibe ein Programm, das den Alvik 2 Sekunden vorwärts fahren lässt
  2. Verwende alvik.set_wheels_speed(50, 50) für die Bewegung
  3. Nutze time.sleep(2) für die Wartezeit
  4. Stoppe den Roboter danach mit alvik.stop()

💡 Hilfestellung:

  • Importiere: from arduino_alvik import ArduinoAlvik und import time
  • Initialisiere: alvik = ArduinoAlvik() und alvik.begin()
  • Bewegung: alvik.set_wheels_speed(links, rechts)
  • Warten: time.sleep(sekunden)
  • Stoppen: alvik.stop()
🔍 Lösung anzeigen
from arduino_alvik import ArduinoAlvik
import time

alvik = ArduinoAlvik()
alvik.begin()

alvik.set_wheels_speed(50, 50)  # Beide Räder vorwärts
time.sleep(2)                   # 2 Sekunden warten
alvik.stop()                    # Stoppen

🔄 Aufgabe 3: Viereck fahren mit for-Schleife

Ziel: Nutze eine for-Schleife, um den Alvik ein Viereck fahren zu lassen.

Deine Aufgabe:

  1. Nutze eine for-Schleife mit range(4), um 4 Seiten zu fahren
  2. In jeder Runde: Fahre vorwärts, drehe um 90 Grad
  3. Verwende alvik.move(20) für 20 cm vorwärts
  4. Verwende alvik.rotate(90) für die Drehung

💡 Hilfestellung:

  • For-Schleife: for i in range(anzahl):
  • Einrückung beachten! Alles in der Schleife muss eingerückt sein
  • Bewegung: alvik.move(zentimeter)
  • Drehung: alvik.rotate(grad)
  • Ein Viereck hat 4 gleiche Seiten und 4×90° Drehungen
🔍 Lösung anzeigen
for i in range(4):
    print(f"Fahre Seite {i+1}")
    alvik.move(20)      # 20 cm vorwärts
    alvik.rotate(90)    # 90 Grad drehen

🎨 Quiz: Python-Grundlagen

Welche Aussage über range(4) ist korrekt?

💻 Programmier-Challenge: Dreieck-Funktion

🎯 Deine Challenge:

Schreibe eine Funktion mit dem Namen fahre_dreieck(), die den Alvik ein gleichseitiges Dreieck fahren lässt.

Anforderungen:

  • Die Funktion soll fahre_dreieck() heißen
  • Nutze eine for-Schleife mit range(3) für 3 Seiten
  • Pro Seite: 15 cm fahren und 120 Grad drehen
  • Rufe die Funktion am Ende auf
💡 Lösung anzeigen
from arduino_alvik import ArduinoAlvik

alvik = ArduinoAlvik()
alvik.begin()

def fahre_dreieck():
    for i in range(3):
        print(f"Fahre Seite {i+1} des Dreiecks")
        alvik.move(15)      # 15 cm vorwärts
        alvik.rotate(120)   # 120 Grad drehen (360° / 3 = 120°)
    print("Dreieck fertig!")

# Funktion aufrufen
fahre_dreieck()

✅ Selbsttest Level 1

Kannst du alle diese Fragen mit "Ja" beantworten?

  • ☐ Ich kann Variablen erstellen und verwenden
  • ☐ Ich verstehe, wie print() und f-strings funktionieren
  • ☐ Ich kann den Alvik mit set_wheels_speed() bewegen
  • ☐ Ich verstehe, wie for-Schleifen funktionieren
  • ☐ Ich kann eigene Funktionen schreiben

Wenn ja: Glückwunsch! Du bist bereit für Level 2. 🎉

2 Level 2: Sensoren & Entscheidungen

In diesem Level testest du dein Wissen über Sensoren auslesen und if/else Entscheidungen.

📡 Aufgabe 1: Abstandssensor auslesen

Ziel: Lerne, den Entfernungssensor auszulesen und Werte anzuzeigen.

Deine Aufgabe:

  1. Lies die Werte des mittleren Entfernungssensors aus
  2. Verwende alvik.get_distance() - das gibt 5 Werte zurück (links-außen, links-mitte, mitte, rechts-mitte, rechts-außen)
  3. Der mittlere Sensor ist an Position [2]
  4. Gib den Wert mit print() aus

💡 Hilfestellung:

  • alvik.get_distance() gibt eine Liste mit 5 Werten zurück
  • Listen-Zugriff: liste[index] (Index beginnt bei 0!)
  • Mittlerer Sensor = Index 2
  • F-String für Ausgabe: print(f"Text {variable}")
🔍 Lösung anzeigen
abstand = alvik.get_distance()  # Gibt eine Liste zurück
mitte = abstand[2]               # Mittlerer Sensor
print(f"Abstand: {mitte} cm")

🛑 Aufgabe 2: Vor Hindernis stoppen (if/else)

Ziel: Nutze if/else, um auf Hindernisse zu reagieren.

Deine Aufgabe:

  1. Schreibe ein Programm mit einer while True-Schleife
  2. Lies in der Schleife den mittleren Entfernungssensor aus
  3. Wenn der Abstand kleiner als 15 cm ist: Stoppe den Roboter
  4. Sonst: Fahre vorwärts mit 50 cm/s

💡 Hilfestellung:

  • Endlosschleife: while True:
  • Sensor direkt auslesen: alvik.get_distance()[2]
  • If-Else Struktur: if bedingung: ... else:
  • Vergleichsoperator "kleiner als": <
  • Kurze Pause in der Schleife: time.sleep(0.1)
🔍 Lösung anzeigen
while True:
    abstand = alvik.get_distance()[2]  # Mittlerer Sensor

    if abstand < 15:
        print("STOP! Hindernis zu nah!")
        alvik.stop()
    else:
        print(f"Abstand OK: {abstand} cm")
        alvik.set_wheels_speed(50, 50)

    time.sleep(0.1)  # Kurze Pause

🎨 Aufgabe 3: Farbsensor auslesen

Ziel: Lerne, den Farbsensor auszulesen.

Deine Aufgabe:

  1. Lies den Farbsensor mit alvik.get_color_label() aus
  2. Diese Funktion gibt einen Text zurück: "RED", "GREEN", "BLUE", usw.
  3. Gib die erkannte Farbe mit print() aus

💡 Hilfestellung:

  • alvik.get_color_label() gibt Farbe als Text zurück
  • Mögliche Werte: "RED", "GREEN", "BLUE", ...
  • Speichere in Variable und gib mit print() aus
🔍 Lösung anzeigen
farbe = alvik.get_color_label()
print(f"Erkannte Farbe: {farbe}")

🚦 Aufgabe 4: Auf Farben reagieren (if/elif/else)

Ziel: Nutze if/elif/else, um auf verschiedene Farben unterschiedlich zu reagieren.

Deine Aufgabe:

  1. Lies in einer Schleife den Farbsensor aus
  2. Bei ROT: Stoppe den Roboter und schalte beide LEDs rot
  3. Bei GRÜN: Fahre vorwärts und schalte beide LEDs grün
  4. Bei BLAU: Drehe um 90 Grad und schalte beide LEDs blau
  5. Sonst: Schalte LEDs aus

💡 Hilfestellung:

  • Struktur: if ... elif ... elif ... else:
  • String-Vergleich mit ==: if farbe == "RED":
  • LED steuern: alvik.left_led.set_color(r, g, b) mit Werten 0-1
  • Rot = (1, 0, 0), Grün = (0, 1, 0), Blau = (0, 0, 1)
  • Denke daran, beide LEDs zu setzen!
🔍 Lösung anzeigen
while True:
    farbe = alvik.get_color_label()

    if farbe == "RED":
        print("ROT erkannt - STOP!")
        alvik.stop()
        alvik.left_led.set_color(1, 0, 0)   # Rot
        alvik.right_led.set_color(1, 0, 0)
    elif farbe == "GREEN":
        print("GRÜN erkannt - Fahre!")
        alvik.set_wheels_speed(50, 50)
        alvik.left_led.set_color(0, 1, 0)   # Grün
        alvik.right_led.set_color(0, 1, 0)
    elif farbe == "BLUE":
        print("BLAU erkannt - Drehe!")
        alvik.rotate(90)
        alvik.left_led.set_color(0, 0, 1)   # Blau
        alvik.right_led.set_color(0, 0, 1)
    else:
        alvik.left_led.set_color(0, 0, 0)   # Aus
        alvik.right_led.set_color(0, 0, 0)

    time.sleep(0.2)

🎨 Quiz: if/else und Sensoren

Was bewirkt dieser Code?

if abstand < 10:
    alvik.stop()
elif abstand < 30:
    alvik.set_wheels_speed(20, 20)
else:
    alvik.set_wheels_speed(50, 50)

💻 Programmier-Challenge: Hindernisausweichen

🎯 Deine Challenge:

Schreibe ein Programm, das den Alvik automatisch Hindernissen ausweichen lässt.

Anforderungen:

  • Der Roboter fährt kontinuierlich vorwärts in einer while True-Schleife
  • Er überwacht ständig den mittleren Entfernungssensor
  • Wenn ein Hindernis näher als 20 cm ist:
    • Stoppe den Roboter
    • Drehe um 90 Grad nach rechts
    • Fahre wieder vorwärts
  • Nutze time.sleep(0.1) für eine kurze Pause in der Schleife
💡 Lösung anzeigen
from arduino_alvik import ArduinoAlvik
import time

alvik = ArduinoAlvik()
alvik.begin()

print("Starte Hindernisausweichen...")

while True:
    # Mittleren Sensor auslesen
    abstand = alvik.get_distance()[2]
    print(f"Abstand: {abstand} cm")

    if abstand < 20:
        # Hindernis erkannt!
        print("Hindernis! Weiche aus...")
        alvik.stop()
        time.sleep(0.5)
        alvik.rotate(90)  # Nach rechts drehen
        print("Weiter geht's!")
        alvik.set_wheels_speed(50, 50)
    else:
        # Freie Fahrt
        alvik.set_wheels_speed(50, 50)

    time.sleep(0.1)  # Kurze Pause

✅ Selbsttest Level 2

Kannst du alle diese Fragen mit "Ja" beantworten?

  • ☐ Ich kann den Entfernungssensor auslesen
  • ☐ Ich kann den Farbsensor auslesen
  • ☐ Ich verstehe if/else und if/elif/else
  • ☐ Ich kann Entscheidungen basierend auf Sensorwerten treffen
  • ☐ Ich kann eine while True-Schleife nutzen

Wenn ja: Super! Du bist bereit für Level 3. 🚀

3 Level 3: Alles kombinieren

In diesem Level kombinierst du alles, was du gelernt hast: Python, Bewegung, Sensoren und Entscheidungen!

🎯 Abschluss-Challenge: Dein Miniprojekt

Ziel: Erstelle ein kleines Projekt, das Bewegung, Sensoren und Entscheidungen kombiniert.

🧭 Projekt-Ideen (wähle eine oder erfinde deine eigene):

💡 Idee 1: Farbfeld-Sucher

Der Alvik fährt vorwärts und sucht ein grünes Farbfeld. Wenn er es findet:

  • Stoppt er
  • Schaltet beide LEDs grün
  • Gibt "Grünes Feld gefunden!" aus

💡 Idee 2: Intelligenter Parkassistent

Der Alvik fährt vorwärts, bis er einen guten Parkplatz findet:

  • Wenn Abstand zwischen 10 und 20 cm: "Guter Parkplatz!" → Stoppen
  • Wenn Abstand < 10 cm: "Zu eng!" → Rückwärts fahren
  • Wenn Abstand > 20 cm: Weiter vorwärts fahren

💡 Idee 3: Farbzähler

Der Alvik fährt 30 Sekunden lang und zählt, wie oft er rote Felder sieht:

  • Erstelle Variable rot_zaehler = 0
  • Wenn Farbe == "RED": Erhöhe Zähler um 1
  • Am Ende: Gib Anzahl aus

💡 Idee 4: Deine eigene Idee!

Sei kreativ! Kombiniere Bewegung, Sensoren und Entscheidungen auf deine Art. 🎨

📋 Planungs-Checkliste

Bevor du mit dem Programmieren beginnst, plane dein Projekt:

  1. Was soll der Roboter tun? (Kurze Beschreibung)
  2. Welche Sensoren brauchst du? (Abstand, Farbe, beide?)
  3. Welche Bewegungen? (Vorwärts, Drehen, Stoppen?)
  4. Welche Entscheidungen? (Was passiert wann?)
  5. Brauchst du Variablen? (Zähler, Geschwindigkeit?)

💻 Dein Programmier-Bereich

🎯 Jetzt bist du dran!

Öffne Thonny und erstelle dein Projekt. Nutze dieses Grundgerüst:

from arduino_alvik import ArduinoAlvik
import time

alvik = ArduinoAlvik()
alvik.begin()

print("Mein Projekt startet!")

# TODO: Dein Code hier
# - Sensoren auslesen
# - Entscheidungen treffen
# - Bewegungen steuern

print("Projekt beendet!")

🎨 Abschluss-Quiz

Was ist der Hauptvorteil von MicroPython auf dem Alvik gegenüber einer festen, vorgefertigten Roboter-App?

✅ Finale Selbsteinschätzung

🎓 Hast du die Grundlagen verstanden?

Wenn du diese Fragen mit "Ja" beantworten kannst, hast du die essentiellen Grundlagen der Microcontroller-Programmierung verstanden:

📝 Python-Grundlagen:

  • ☐ Ich kann Variablen erstellen und verwenden
  • ☐ Ich verstehe if/elif/else
  • ☐ Ich kann for-Schleifen und while-Schleifen nutzen
  • ☐ Ich kann eigene Funktionen schreiben

🤖 Microcontroller-Programmierung:

  • ☐ Ich kann den Alvik bewegen (vorwärts, rückwärts, drehen)
  • ☐ Ich kann Sensoren auslesen (Entfernung, Farbe)
  • ☐ Ich kann auf Sensorwerte reagieren (if/else)
  • ☐ Ich kann LEDs steuern

🎯 Integration:

  • ☐ Ich kann Bewegung und Sensoren kombinieren
  • ☐ Ich kann ein kleines Projekt planen und umsetzen
  • ☐ Ich verstehe, wie ein Microcontroller-Programm aufgebaut ist

🎉 Glückwunsch!

Wenn du die meisten Fragen mit "Ja" beantworten kannst, hast du die Grundlagen der Microcontroller-Programmierung mit MicroPython verstanden!

Du bist jetzt bereit für eigene, kreative Projekte. Weiter so! 🚀


🔗 Weiterführende Ressourcen

📖 Wiederhole die Basics

Schau dir nochmal den Python Werkzeugkasten an:

🐍 Python Werkzeugkasten

🚀 Alvik API

Entdecke alle verfügbaren Befehle:

📖 API-Liste

🎨 Erweiterte Projekte

Bereit für mehr? Probiere Level 4:

💡 KI & Machine Learning

🎓 Viel Erfolg beim Programmieren!

Du hast jetzt das Werkzeug, um deine eigenen Ideen umzusetzen. Sei kreativ, experimentiere und hab Spaß! 🚀