PROJECT.LOADED
MODUL 319 · ROBOTIK
Alle Projekte // Modul 319 · Applikationen entwerfen & implementieren

Autonomes Fahrzeug — LEGO SPIKE Prime

Python LEGO SPIKE Ultraschall Farbsensor Async Robotik

Autonomes LEGO-Fahrzeug mit Ultraschall-Abstandsmessung, Farbsensor-Steuerung und asynchroner Programmierung — fährt selbstständig, weicht Hindernissen aus und reagiert auf farbcodierte Bodensignale.

3
Motoren
3
Sensoren
6
Ports belegt
2
Code-Versionen
// Hardware — Port-Belegung SPIKE Prime Hub
Port A — Antriebsmotor
Vorwärtsfahrt, Start/Stopp via Farbsensor
Port B — Lenkmotor
Räder links/rechts, max. Winkel: ±20°
Port C + D — Sensormotor + Ultraschall
180° Schwenk-Scan, Distanz links & rechts
Port E + F — Farb + Taster
Grün = Start, Gelb = Ausrichten, Rot = Stopp
// Funktionsweise
Ultraschall-Scan
Sensor dreht sich 180°, misst Distanz zu beiden Seiten, zeigt Werte auf LED-Matrix
Automatische Lenkung
Vergleicht links/rechts Distanz, lenkt zur freieren Seite, Notlenkung bei unter 10cm
Farbsensor-Steuerung
Grün startet Motor, Gelb stoppt und richtet aus, Rot/Taster = sofortiger Stopp
Asynchrone Architektur
Alle Funktionen (Messen, Lenken, Farbauswertung, Taster) laufen parallel via async/await
Akustisches Feedback
Piepton bei Distanz unter 1dm als Warnsignal für den Benutzer
Zwei Code-Versionen
V1 (synchron, ChatGPT-generiert als Basis) und V2 (async, manuell optimiert und erweitert)
// Code V2 (final) — Kernauszug
python — fahrzeug_v2_async.py
async def ultraschall_messen():
    global dist_rechts, dist_links, motor_a_laeuft
    if motor_a_laeuft:
        motor.run_for_degrees(port.C, 0, 200)
        motor.run_for_degrees(port.C, 90, 200)
        dist_rechts = distance_sensor.distance(port.D)
        light_matrix.write(str(dist_rechts))
        if dist_rechts < 100:
            sound.beep(2000, 100)
        await runloop.sleep_ms(2000)
        motor.run_for_degrees(port.C, -180, 400)
        dist_links = distance_sensor.distance(port.D)

async def automatische_lenkung():
    global dist_links, dist_rechts
    if dist_links < 10 or dist_rechts < 10:
        # Notlenkung — Piepton + Ausweichen
        sound.beep(2000, 100)
        if dist_links < dist_rechts:
            motor.run_for_degrees(port.B, 45, 200)
        else:
            motor.run_for_degrees(port.B, -45, 200)
// Farbsignale
Grün — Start
Motor startet, Fahrt beginnt
Gelb — Ausrichten
Stopp, automatisch zur freieren Seite ausrichten
Rot — Stopp
Sofortiger Stopp + Signalton
// Gelernte Konzepte
  • Async/await Programmierung
  • Sensor-Fusion (Ultraschall + Farbe)
  • Echtzeit-Steuerung
  • Hardware-Software Integration
  • Iteratives Design V1 → V2
  • Fehlerbehandlung Sensorwerte

Gruppenprojekt — gemeinsamer Hardware-Aufbau, Code-Entwicklung und Dokumentation (12 Seiten PDF).

Weitere Projekte entdecken

Zurück zur Projektübersicht oder direkt Kontakt aufnehmen.

Alle Projekte Kontakt