📝 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:
- Erstelle eine Variable
geschwindigkeitmit dem Wert50 - Erstelle eine Variable
roboter_namemit dem Wert"Alvik" - Gib beide Werte mit
print()auf dem Bildschirm aus - 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:
- Schreibe ein Programm, das den Alvik 2 Sekunden vorwärts fahren lässt
- Verwende
alvik.set_wheels_speed(50, 50)für die Bewegung - Nutze
time.sleep(2)für die Wartezeit - Stoppe den Roboter danach mit
alvik.stop()
💡 Hilfestellung:
- Importiere:
from arduino_alvik import ArduinoAlvikundimport time - Initialisiere:
alvik = ArduinoAlvik()undalvik.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:
- Nutze eine
for-Schleife mitrange(4), um 4 Seiten zu fahren - In jeder Runde: Fahre vorwärts, drehe um 90 Grad
- Verwende
alvik.move(20)für 20 cm vorwärts - 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 mitrange(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:
- Lies die Werte des mittleren Entfernungssensors aus
- Verwende
alvik.get_distance()- das gibt 5 Werte zurück (links-außen, links-mitte, mitte, rechts-mitte, rechts-außen) - Der mittlere Sensor ist an Position
[2] - 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:
- Schreibe ein Programm mit einer
while True-Schleife - Lies in der Schleife den mittleren Entfernungssensor aus
- Wenn der Abstand kleiner als 15 cm ist: Stoppe den Roboter
- 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:
- Lies den Farbsensor mit
alvik.get_color_label()aus - Diese Funktion gibt einen Text zurück:
"RED","GREEN","BLUE", usw. - 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:
- Lies in einer Schleife den Farbsensor aus
- Bei ROT: Stoppe den Roboter und schalte beide LEDs rot
- Bei GRÜN: Fahre vorwärts und schalte beide LEDs grün
- Bei BLAU: Drehe um 90 Grad und schalte beide LEDs blau
- 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/elseundif/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:
- Was soll der Roboter tun? (Kurze Beschreibung)
- Welche Sensoren brauchst du? (Abstand, Farbe, beide?)
- Welche Bewegungen? (Vorwärts, Drehen, Stoppen?)
- Welche Entscheidungen? (Was passiert wann?)
- 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 undwhile-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
🎓 Viel Erfolg beim Programmieren!
Du hast jetzt das Werkzeug, um deine eigenen Ideen umzusetzen. Sei kreativ, experimentiere und hab Spaß! 🚀