Auto-HUD: Geschwindigkeit & Kompass in Echtzeit auf der Windschutzscheibe
Komponenten und Materialien
| Arduino Nano R3 | × | 1 |
| 3× 5161AS 7-Segment-Anzeigen (gemeinsame Kathode, rot) | × | 3 |
| Beitian BN-220 GPS (TTL-Serial, 1 Hz, GNRMC) | × | 1 |
| 3× CD4511 BCD-zu-7-Segment-Decoder mit Latch | × | 3 |
| 3× Taster (Öffner) + 3× Kondensatoren (Entprellung) | × | 3 |
| 22× 220-Ω-Widerstände (¼ W) | × | 22 |
| 3-mm-LED rot (für „Grad“-Anzeige) | × | 1 |
| 2× 100-nF-Kondensatoren | × | 2 |
| 1× USB-B-Buchse (weiblich) | × | 1 |
| 1× Jumper (für RX-Pin beim Flashen) | × | 1 |
| Stiftleisten, Kupfer-Nieten, M3-Schrauben, Distanzhülsen, Kunststoffgehäuse (3D-Druck) | × | – |
Projektbeschreibung
Motivation
Ein Head-Up-Display (HUD) projiziert Geschwindigkeit und Fahrtrichtung direkt auf die Windschutzscheibe – inspiriert von serienmäßigen Systemen in hochwertigen Fahrzeugen.
Software-Architektur
- GPS-Daten: BN-220 liefert 1 Hz NMEA-Sätze (
$GNRMC). Parsing perserialEvent(), Prüfsummenvalidierung (nmea0183_checksum). - Geschwindigkeit: Knoten → km/h (×1,852), gerundet.
- Richtung: True Course (0–360°), nur bei Bewegung gültig (GPS, kein Kompass).
- Anzeigeumschaltung: Taste S/H wechselt zwischen km/h und Grad (rote LED leuchtet bei Grad).
- Helligkeit: Per ±-Tasten einstellbar (PWM auf allen Displays + LED), wird nach 60 s im EEPROM gespeichert.
- Multiplexing: Drei CD4511 Decoder werden nacheinander gelatcht (Latch-Pins 2, 8, 12). Führende Nullen werden unterdrückt (Blanking).
- Spiegelbild: Die Anzeige ist gespiegelt, damit sie auf der Windschutzscheibe richtig lesbar ist.
Wichtige Hinweise
- Vor jedem Flashen: Jumper am RX-Pin (Arduino Pin 0) entfernen, da GPS-TX sonst den Bootloader stört. Nach dem Flashen wieder stecken.
- GPS auf 9600 Baud, 1 Hz, nur
$GNRMCkonfigurieren (Hersteller-Tool). - USB-Buchse: Isolierband unter die Lötpads kleben, um Kurzschluss mit Kupferbahn zu vermeiden.
- Stromversorgung nach Zündung schalten (Ein/Aus mit Motor).
Versionen & Verbesserungen
- V2 (20.07.2021): Höhenanzeige (m/1000) per
$GNGGA-Satz. D5-PWM auf mittleren Dezimalpunkt, D13 übernimmt Display-Dimming. - V2.2 (01.11.2021): Automatische Helligkeit per LDR (GL5539 + 10 kΩ), 3 Stufen (Tag/Bewölkt/Nacht). Manuelle ±-Tasten haben Vorrang; langes gleichzeitiges Drücken kehrt zu Auto zurück. EEPROM-Speicher entfällt.
- 3D-Druckdateien für Gehäuse & Abdeckung auf GrabCAD: grabcad.com/library/car-hud-1
Code (V2.2)
Der Sketch nutzt EEPROM (bis V2.1), Wire, direkte Port-Manipulation für Multiplexing. Kernfunktionen:
nmeaExtractData(): Parst$GNRMC(Zeit, Gültigkeit, Position, Speed, Course, Datum)nmea0183_checksum(): XOR-Prüfsummedisplay(): Multiplexed Ausgabe auf 3 Displays (Einheiten, Zehner, Hunderter)checkButtons(): S/H, +, – mit Entprellungled_blink()/blinkFunction(): Unterschiedliche Blinkfrequenzen für RTC- vs. Hallsensor-Fehler
// Wichtige Pin-Definitionen
const int disp001 = 2; // Latch Einer
const int disp010 = 8; // Latch Zehner
const int disp100 = 12; // Latch Hunderter
const int disp001dim = 9; // PWM Einer
const int disp010dim = 10; // PWM Zehner
const int disp100dim = 11; // PWM Hunderter
const int button_kt = 14; // S/H (A0)
const int button_more = 15; // + (A1)
const int button_less = 16; // – (A2)
const int degreesLED = 3; // rote LED
const int bit_3 = 7, bit_2 = 6, bit_1 = 5, bit_0 = 4; // BCD-Bus
byte brightness = 120; // Default-Helligkeit
bool isKMH = true; // Anzeigemodus
void setup() {
Serial.begin(9600);
// PinModes, EEPROM-Read, PWM-Init, Displays nullen & latches
}
void loop() {
if (stringComplete) { nmeaExtractData(); stringComplete = false; display(); }
if (millis() > lastmemcheck + 60000) { EEPROM.update(0, brightness); lastmemcheck = millis(); }
checkButtons();
}
// serialEvent() sammelt NMEA-Zeichen bis '\n'
// ... (vollständiger Code im Original)
Schaltpläne & Dateien
- Fritzing-Schaltplan (
.fzz) - PCB-Layouts (Tontransfer, doppelseitig, 5 Ausrichthüllen)
- V2/V2.2-Sketches als separate Dateien
Herstellungsprozess
- Mobilität revolutionieren: Inside Arrow Electronics' Semi-Autonomes Motorcar für behinderte Fahrer
- Autonomes Donkey Car: TensorFlow MobileNetV2 KI für Müllsammler
- Echtzeit-Bewegungsplanung für autonome Fahrzeuge in urbanen Umgebungen: Skalierter Prototyp
- Wie 5G Connected Cars transformiert: Speed, Safety, Smart Features
- Sicherheit zuerst: Wie Europäer vernetzte Autos der Zukunft sehen
- Auswahl des optimalen Motorkabels für Frequenzumrichter (FU)
- Twister Speed Lathes: Fortschrittliches Polieren & Entgraten mit 50 % mehr Power & Rekuperativer Steuerung
- FBL-1233 Schrägbettdrehmaschine: Präzision, Geschwindigkeit & Vielseitigkeit für Hochvolumen & Kleinserien
- Produktdatenaustausch: Die zentrale Herausforderung für Automobilhersteller
- Den richtigen Turbolader wählen: Praxis-Leitfaden für Mehrleistung