LED Cube RGB 12x12x12

  • Hallo zusammen,

    nach einigen Jahren für Prototypen, Planung, Programmieren, Schrauben und Löten ist er nun endlich fertig:

    Mein 12x12x12 RGB LED Cube powered by Raspberry Pi
    --> Homepage zum Projekt <--
    Auf der Seite gibt es einen Download-Bereich. Die Sourcen können auf dem PC kompiliert und in Matlab angezeigt werden.

    Ein paar Zahlen, Daten, Fakten:
    58711 Zeilen C-Code (2.12 Mb in 75 Dateien)
    4717 Zeilen Animations-Steuer-Scripte (140 kb in 32 Dateien)
    4507 Zeilen VHDL (695 kb in 24 Dateien)
    1728 RGB LEDs + 1160 weitere elektronische Bauteile
    Über 13.000 Lötpunkte
    910 Löcher und Gewinde für 195 Schrauben
    7m Alu-Profile

    Ganz grob ein paar Worte zum Aufbau:
    1) Hardware
    - Die Darstellung erfolgt ebenenweise mit einer Bildwiederholfrequenz von 280 Hz (pro Ebene knapp 0,3ms)
    - Die Farben der aktuell leuchtenden Ebene (144 RGB-LEDs) werden über 27 x TLC5940 gesteuert
    - Die Auswahl der Ebenen erfolgt über insgesamt 36 FETs (IRF4905)
    - Die Daten an die TLC5940 kommen über SPI vom Raspi (per DMA-Transfer)
    - Für die Spannungsversorgung gibt es 2 Netzteile: Ein kleines für 5A und ein großes für 20A (das kleine erzeugt weniger Wärme, ist aber zu klein für ausreichende Helligkeit des Würfels bei Tageslicht)
    - 2 PWM-gesteuerte 60mm-Lüfter sorgen für geregelte Kühlung, falls erforderlich
    - Zur Messung diverser Spannungen (Diagnose, ...), für Audio-Eingänge und für die Regelung der Lüfter gibt es 2 AD-Wandler (3208) auf der Platine
    - Zur Steuerung der Ebenen-FETs, der AD-Wandler, der Netzteile und der Lüfter gibt es ein FPGA (Außerdem: Abschalten der Netzteile, wenn der Raspi heruntergefahren ist)
    - Das FPGA hängt ebenfalls über SPI am Raspi. Die Audio-Daten können als Samples oder als FFT ausgelesen werden.

    2) Software
    - pro 10ms werden die RGB-Daten für bis zu 6 Ebenen berechnet (idR wird das dargestellte Bild mit 50Hz neu berechnet)
    - Wenn die Rechenzeit hierzu nicht ausreicht, dann werden entsprechend weniger Ebenen berechnet
    - Die Daten der Darstellung stammen aus Animationsobjekten (z.B. Rubiks Cube, Regen, ...)
    - Zusätzlich gibt es Objekte für die Transformation der Daten (Position, Skalierung, Drehung, Farbe, ...)
    - Die Objekte werden dynamisch erzeugt, parametriert und für die Darstellung ausgewählt (und nach der Darstellung entfernt). Hierzu gibt es einen Interpreter, der zur Laufzeit parallel ein paar Skripte abarbeitet, welche Animation gerade mit welchen Parametern dargestellt werden soll (Die Übergänge zwischen den Animationen entstehen, indem Skripte die Transformationen und die Objekte steuern)
    - Neben den Funktionen für die Darstellung gibt es Module für die Hardware-Steuerung, die Lüfterregelung, Diagnose, einen Fehlerbericht, einen Failsafe-Mode, die Bedienung etc.
    - Zur Dartellung von Text liest die SW ein paar TTF-Schriftarten ein und wertet diese zur Laufzeit auf Oberflächen von 3D-Objekten aus.
    - Nach der Initialisierung werden alle Funktionen als Timer-Tasks ausgeführt (meist im 10ms-Raster)

    3) Schnittstellen
    - An der Uhr gibt es nur einen Taster zum Ein- und Ausschalten, alle weiteren Bedienungen erfolgen über eine Webseite (nur im lokalen Netz verfügbar)
    - Auf der Webseite werden Betriebsmodi, Helligkeit und Lebendigkeit eingestellt
    - Für die Entwicklung zeigt die Webseite zudem wichtige Messwerte an, auch können wichtige Parameter über die Webseite verstellt werden. Ein Messfenster zeigt 3 auswählbare zeitliche Verläufe, z.B. Temperaturen oder CPU-Last ("Applikationswerkzeug").
    - Ein Bericht auf der Webseite zeigt die letzten Fehlermeldungen etc an.
    - Wenn ein Fehler auftritt, dann versendet die Uhr einen Fehlerbericht per E-Mail an mich
    - Zur Entwicklung der Animationen können die dargestellten bzw. die darzustellenden Daten via TCP zwischen dem Würfel und Matlab ausgetauscht werden (MiL).
    - Zudem läuft der Code auch in einer kleinen Progrmmierumgebung auf dem PC; auch zwischen PC und Würfel bzw. zwischen PC und Matlab können die RGB-Daten ausgetauscht werden (SiL).


    Ein guter Rat zuletzt:
    Bitte nur nachbauen, wer einen sozialverträglichen Aufstellort, mehr als 4 Jahre seiner Freizeit und ca. 2700 EUR übrig hat :)

    Viel Spaß mit den Videos auf der Webseite wünscht

    Flip

    • Offizieller Beitrag

    Sehr schick..aber kannst du mal grob aufschlüsseln wo da 2700€ sind? Ich weiss, der Prototyp ist immer teurer da probiert wird aber dieser Preis erscheint mir um Faktor 10 zu hoch

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Gehäuse: 600 EUR
    Platinen (PCB-Pool): 570 EUR
    27 TLC5940: 100 EUR
    40 IRF4905: 100 EUR
    2000 RGB-LED: 160 EUR + 30 EUR Zoll
    Buchsen auf der Rückwand: 100 EUR
    FPGA-Bord: 70 EUR
    Netzteile: 100 EUR
    Kupferdraht (300m): 50 EUR
    Und ein ganzer Haufen Kleinzeug...

    Einmal editiert, zuletzt von Flip Schaumal (16. August 2017 um 21:06)

  • Ist es möglich einen Cube mit noch mehr Dioden zu bauen?

    Und noch grösser als im Video↓ ist auch machbar. Kostet aber ein paar Dollars.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Ich leide an Verfolgungswahn... :daumendreh2: Ha, da ist schon wieder einer! :denker:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!