Skip to content

Nürburgring Silhouette LED WS2812 RGB

 

Dieses DIY-Projekt ist eine beleuchtete Silhouette des Nürburgrings, bekannt als die „Grüne Hölle“, die mit RGB-LEDs ausgestattet ist. Sie dient als Statusanzeige, speziell für das 24h-Rennen, mit einem Fokus auf den Bereich „Pflanzgarten“. Das Projekt umfasst den 3D-Druck der Rennstrecke in mehreren Teilen, die Montage und Verdrahtung von zwei verschiedenen Arten von RGB-LED-Streifen (für Innen- und Außenbereiche), die Steuerung über WEMOS D1 Mini (Arduino) Mikrocontroller und die Programmierung spezifischer Lichteffekte. Dazu gehören blinkende Positionen für den eigenen Standort (Pflanzgarten) und dynamische Anzeigen für Kurven sowie bewegliche „Fahrzeuge“ auf der äußeren Strecke. Das gesamte System wird mit Epoxidharz wasserdicht versiegelt, was auch den Außeneinsatz ermöglicht.

Weitere Informationen, sowie die Dateien des Baus findet ihr auf: https://dateien.org/s/wowjJJ7DoJ7gbbe

 

Materialliste:

  • 206x 4m RGB LED’s WS2812 5V Smart RGB 60 LED’s/m IP30 (EBAY, 13,14€)
  • 491x 4m RGB LED’s WS2812 5V Smart RGB 144 LED’s/m IP30 (EBAY, 30,85€)
  • 2x WEMOS D1 Mini (Arduino) ESP8266 ESP-12 ESP-12F CH340G V2 USB D1Mini Pro V 3.0.0 WIFI (EBAY, 11,40€)
  • 1x Netzteil Mean Well LPV-100-5 LED-Travo 60W 12A 5V DC (EBAY, 25€)
  • 1x Stecker Buchse DC Einbaubuchse 5,5×2,1 + Stecker (EBAY, 7€)
  • Filament JAYO Silk+Weiß
  • 400ml Epoxidharz 2K Gießharz (EBAY, 17,98€)
  • 2x Dioden 1N4007 (EBAY, 1,48€)
  • 2x Miniatur Kippschalter 1xAN (wenn gewünscht) (EBAY, 3,79€)
  • Zeit (Unendlich teuer, besonders wenn die bessere Hälfte darauf wartet 😉)

 

Aufbau:

Die 3D-Teile stammen von Cults3D.com. Du kannst die STL-Datei „Neon Nürburgring Car Tracks“ kostenlos herunterladen (Link: cults3d.com).

Die Höhe der Teile muss angepasst werden, damit die RGB-Leiste gut Platz findet. Die Datei musste in zwei Teile geteilt werden, da das Druckbett zu klein war. Der Druck erfolgte dann mit einer Anpassung der Z-Achse (Höhe) auf 130%. Achtet darauf, das „uniform scaling“ zu beachten – nicht einfach alle Achsen wild anpassen! Das ist keine Raketenwissenschaft, aber ein bisschen Fingerspitzengefühl ist gefragt.

 

Druckzeiten und Filamentverbrauch:

TeilMBDruckzeitGramm Filament
Ring Teil 112,611:5253
Ring Teil 2a3,32:5612
Ring Teil 2b6,96:4628
Ring Teil 34,55:1022
Ring Teil 45,46:0726
Ring Teil 58,77:1030
Ring Teil 67,56:4327
Ring Teil 712,68:4836
Ring Teil 85,84:3318
Ring Teil 98,16:3328
Ring Teil 102.14:1016
Ring Teil 117,16:2025
Gehäuse3.63:1022

Originale STL Files: N24.zip

Angepasste STL-Files (geteilt 2a 2b): STL Files…passt.zip

Die Streckenteile wurden von den Supports befreit und mit 2K-Sekundenkleber verbunden. Bei zwei Abschnitten fehlte leider die Steckverbindung; hier wurden die Teile einfach mit Filament und einem feinen Lötkolben verbunden. Nach der Verklebung wurde die Silhouette von unten mit 2K-Gießharz verfüllt, um die Stabilität zu erhöhen. Das Gehäuse passt unten an den Nürburgring-Fuß und wurde ebenfalls mit 2K-Sekundenkleber verklebt.

Die RGB-LED-Streifen wurden sorgfältig zusammengelötet (achtet auf die Richtung der LEDs, sonst gibt’s bunte Überraschungen!) und mit Kabeln für Strom und Daten versorgt. Ein wichtiger Hinweis: Am Ende solltet ihr zusätzliche Stromkabel anlöten, falls mal alle LEDs gleichzeitig Party machen wollen und richtig Saft ziehen. Das betrifft LED 206 (für den inneren Streifen mit 60 LEDs/m) und LED 491 (für den äußeren Streifen mit 144 LEDs/m). Beim 144er Streifen ist es ein bisschen eine Fummelarbeit, aber es lohnt sich. P.S.: Viel Spaß beim Zählen – das ist meditativer, als man denkt! 😉

Die beiden langen LED-Streifen wurden dann, nach dem Entfernen des Klebestreifens, Rücken an Rücken zusammengeklebt. Das ging am besten auf dem Boden, denn diese Dinger haben eine beeindruckende Länge! Ich habe die untere LED-Leiste mit Klebeband fixiert und gespannt, dann die andere langsam und vorsichtig daraufgeklebt. ACHTUNG: Auch hier ist die Richtung entscheidend! Der RING dreht sich im Uhrzeigersinn, und die LEDs sollten das auch tun. Startpunkt ist unten am Sockel.

Und nun kommt der ultimative Geschicklichkeitstest: Die 10 Kabel durch das kleine Loch ins Gehäuse fädeln und die LED-Streifen in den RING einfädeln. Sobald alles sitzt und die Funktionskontrolle erfolgreich war (nicht vergessen!), wurde das Ganze mit Epoxidharz vergossen. Das macht unser Prunkstück wasserdicht und bereit für den Einsatz im Freien – der Nürburgring trotzt nun jedem Wetter!

Verdrahtung:

Die Buchse wurde fest ins Gehäuse geschraubt. Von dort aus wurde die Masse (unser 5V Minuspol) direkt an die WEMOS und die RGB-Streifen gelötet – das sind dann schon mal sechs Kabel.

Der Pluspol wurde clever auf zwei Schalter verteilt. An diese Schalter wurden die jeweiligen RGB-Streifen (einer für innen, einer für außen) und die zugehörigen WEMOS angelötet, wobei eine Schutzdiode zum Einsatz kam. Damit haben wir jeweils drei Kabel pro Schalter.

Die Schutzdiode verhindert, dass der kleine Arduino versucht, die LED-Streifen über die 5V USB Mini Buchse zu betreiben, wenn ihr den Wemos mal ohne Netzteil programmiert. Sonst wäre der kleine Kerl schnell Geschichte, und wir müssten einen neuen besorgen!

Die beiden Datenleitungen der RGB-LEDs wurden dann an den jeweiligen WEMOS angeschlossen. In diesem Projekt wurde D3 als Port verwendet, aber das lässt sich natürlich anpassen. Ein wichtiger Hinweis zum Netzteil: Es ist ein wohlüberlegter Kompromiss aus Erfahrungswerten und dem tatsächlichen Nutzen für das Projekt. RGB-LEDs ziehen bei 5V etwa 60mA pro Stück. Das bedeutet, wenn alle LEDs gleichzeitig auf 100% laufen würden, bräuchten wir sage und schreibe 42A!

Berechnung Innen: 206 LEDs à 60mA = 12 A MAX / Außen: 491 LEDs à 60mA = 29,46 A MAX

Da nicht alle LEDs gleichzeitig leuchten und die Helligkeit nicht auf 100% eingestellt ist, passt das 12A Netzteil wunderbar. Also seid vorsichtig beim Spielen mit den Helligkeitseinstellungen im Skript und der Anzahl der gleichzeitig leuchtenden LEDs – wir wollen ja keine Sicherungen sprengen!

Schaltplan:

Programmierung:

Für die beiden WEMOS D1 Mini sind die Daten in den Dateien N24_Arduino_aussen_v7.txt und N24_Arduino_innen_v8.txt enthalten. Die Kommentarzeilen „INNEN“ oder „AUSSEN“ müssen nicht mehr beachtet werden, da die Dateien getrennt wurden. Angepasst werden sollten der Kanal (WEMOS D3 wurde als Ausgabe verwendet) und gegebenenfalls die Anzahl der LEDs.

File innen:

#define PIN D3
#define NUMPIXELS 206 // Popular NeoPixel ring size

File aussen:

#define PIN D3
#define NUMPIXELS 491 // Popular NeoPixel ring size

Besonderheiten der Programmierung:

In der Programmierung der Variante „innen“ ist der Standort Pflanzgarten mit einer cyan/rot blinkenden Position an LED 140 zu sehen. In der Datei sind auch die aktuell eingetragenen Kurven zu finden. Diese werden mit Timern ab und zu „gelb“ und einige auch „rot“ angezeigt.

Anzahl und Position der Kurven sowie der eigene Standort (PLATZ):

#define KURVEN 10 // ANZAHL DER KURVENSEGMENTE DIE BLINKEN KÖNNEN
#define WAIT_MINUTES 10 // WARTEZEIT BIS ZUM NÄCHSTEN ANIMATIONSSCHRITT
#define PLATZ 140 // EUER PLATZ FÜR DAS ROT/GRÜN BLINKEN

Die Startpositionen für die Markierungen:

const uint8_t kurve[] = {198, 185, 143, 110, 88, 67, 50, 30, 25, 10};
// UND DIE LÄNGE WIEVIELE LED MARKIERT WERDEN.
const uint8_t laenge[] = {4, 5, 3, 4, 6, 5, 4, 8, 8, 4};

Farbdefinition für den eigenen Platz:

if (platz == 0) {
  platz = 1;
  pixels.setPixelColor(PLATZ, red);
} else {
  platz = 0;
  pixels.setPixelColor(PLATZ, petrol);
}

Steuerung der Kurve (gelb/rot) und Zeit:

case 7:
  for(int i = kurve[2]; i < kurve[2] + laenge[2]; i++) pixels.setPixelColor(i, red);
  break;

case 8:
  for(int i = kurve[7]; i < kurve[7] + laenge[0]; i++) pixels.setPixelColor(i, yellow);
  break;

In der Variante „aussen“ sind die Fahrzeuge hinterlegt. Die Grundgeschwindigkeit ist 50 und die 12 Fahrzeuge werden derzeit mit +1 bis +20 in der Geschwindigkeit gesteuert. Die Farben der Fahrzeuge werden mit dem RGB-Hex-Code gesteuert. Die Autos haben auch eine „white“ Frontbeleuchtung sowie eine „redhigh“ Schlussbeleuchtung, diese können ebenfalls angepasst werden und liegen in den Farbvariablen zugrunde.

Anzahl der Autos und deren Größe bzw. Geschwindigkeit

#ifdef AUSSEN
#define NUMPIXELS 491 // Popular NeoPixel ring size
#define AUTOS 12
#define SIZE_AUTO 3
#define SPEED 50

Farben der Autos und abweichende Geschwindigkeit

int auto_pos[AUTOS];
uint32_t col[AUTOS] = {0xff0000, 0x008080, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF, 0xDAA520, 0xFF20FF, 0xFFFF20, 0x708090, 0x4B0082, 0x8B4513};
int c_speed[AUTOS] = {SPEED, SPEED+1, SPEED+2, SPEED+3, SPEED+4, SPEED+5, SPEED+6, SPEED+7, SPEED+18, SPEED+9, SPEED+22, SPEED+14};
#endif

Front- und Schlusslicht

static uint32_t redhigh = 0x600000;
static uint32_t white = 0xFFFFFF;

pixels.setPixelColor((SIZE_AUTO + auto_pos[i]) / 100 % NUMPIXELS, white);
pixels.setPixelColor((auto_pos[i] / 100) % NUMPIXELS, redhigh);

Positionen der LEDs im Modell:

Programmierung des

WEMOS:

Mit dem Tool Arduino und einer USB-Verbindung könnt ihr den WEMOS ganz einfach programmieren.

Die nötigen Files für euren Arduino (WEMOS D1 Mini):

  • Arduino-File-innen: N24_Ardu...n_v8.txt
  • Arduino-File-aussen: N24_Ardu...n_v7.txt

 

Avatar

Marcus Hopp, NRW
DIY Bastler, 3D Drucker

Sidebar