RGB LED Matrix-Tisch

[youtube url=“https://www.youtube.com/watch?v=yn2jjPMtViM“]

Warum?

Vor einigen Jahren – genau genommen auf dem 23. Chaos Communication Congress (23C3) in Berlin – bin ich das erste mal auf kleine Kunstwerke aus verschieden farbigen LED gestoßen. Die dort gezeigten Bastelprojekte bestanden überwiegend aus 3D LED-Würfeln mit über 500 einzelnen LED, welche bis zu 8 Ebenen a 8×8 LED bestanden. Vor lauter Begeisterung beschloss ich noch auf dem Kongress einen solchen nachzubauen wenn ich einmal Zeit dafür finden würde (es kam bislang nie dazu). Im Folgenden ein Bild eines solchen Würfels:

img_4775

RGB LED Würfel von https://0x7d.com/

Dennoch bin ich vor einiger Zeit zufällig auf das Pixelbrite Projekt auf Instructables gestoßen und war von der damaligen Euphorie wieder angesteckt. Es handelt sich hier zwar um keinen LED Würfel mehr, sondern um eine RGB LED Matrix, welche man sehr flexibel verwenden kann, aber der Effekt ist nahezu der gleiche. Schnell war die Idee geboren dieses Projekt als neuen Wohnzimmertisch nachzubauen. Gesagt, getan – anbei ein Baubericht meiner Variante des Tisches.

Wie?

Das bereits erwähnte Projekt auf Instructables ist im eigentlichen Sinne als Effektbeleuchtung für DJs auf Veranstaltungen gedacht und weniger als Wohnzimmertisch. Daher bin ich von den Baubeschreibungen komplett abgewichen und habe nur die Idee übernommen. Mein Tisch sollte keine verdeckten Kanten aus Aluminiumprofilen haben, aber dennoch offene Seiten durch welche man noch das Licht sehen kann. Dazu später mehr.

Elektronik und Steuerung

Die Elektronik für den Tisch wollte ich einfach halten. Somit machte ich mich bei eBay auf die Suche nach geeigneten RGB LED-Streifen. Ich kannte bereits geeignete LED Controller von diversen anderen ähnlich gelagerten Projekten auf Adafruit und dessen Shop. Genauer gesagt ging es um den WS2801 Controller, welcher ein SPI-Interface (mit diversen Besonderheiten) besitzt und verwendet. Die relativ zügig gefundenen und für gut befundenen Streifen wurden sofort bestellt. Kostenpunkt ca. 60 Euro.

Jetzt musste nur noch eine Lösung gefunden werden, wie die LED-Streifen ihre Daten via SPI bekommen sollten. Gut dass ich nur kurz zuvor auf der Embedded World in Nürnberg war und dort diverse Eval-Boards abstauben konnte. Eines davon war die neu vorgestellte Nucleo-Serie von STM mit ARM Cortex M3 Controllern. Da Cortex-Controller überwiegend mit 3,3 Volt Spannung arbeiten, die LED-Streifen aber mit 5 Volt arbeiten, musste ein einfacher Pegelwandler für erste Tests mit MOSFETs gebauten werden. Fazit: es funktioniert, hat keinen Cent gekostet und muss nur noch auf eine einfache Platine gebannt werden – diese ist nachfolgend im Layout zu sehen:

export

Layout der Erweiterungsplatine für Pegelanpassung

Die Aufsteckplatine kommt dann im Huckepack zusammen mit dem Eval-Board und Netzteil unter den Tisch, sodass man es nicht sehen kann. Die zwei Potentiometer, welche mit zwei ADC-Pins des M3 Controllers verbunden sind möchte ich später noch die Helligkeit und Geschwindigkeit der Animationen einstellen können. Nachfolgend zwei Bilder dieser Beschreibung.

IMG_20140628_201708

NUCLEO-F103RB Board mit eigener Aufsteckplatine zur Pegelanpassung & Potis

IMG_20140629_183311

Tisch in der Ansicht von unten samt Netzteil

Holzarbeiten

Ein Plan für den Rest des Tisches gibt es nicht, da alles in meinem Kopf entstand. Lediglich grobe Abmaße habe ich von typischen IKEA Wohnzimmertischen übernommen (80x80cm Grundfläche bei ca. 40cm Tischhöhe). Mit dem Plan im Kopf bin ich zu OBI gefahren und habe sämtliche Holzteile eingekauft und schließlich auf der Kreissäge im Vereinsheim der Eisenbahnfreunde Bietigheim-Bissingen zugesägt. Der Abschluss der Holzarbeiten bestand darin alle Holzteile mit einem Creme-weißen Lack zu bepinseln.

IMG_20140528_180741

Ein Teil der Trennelemente bevor es zusammen gesteckt wurde

IMG_20140528_180705

Trennelemente ohne Lackierung direkt nach dem Sägen

IMG_20140528_180811

Zwei Meter der billigsten Balken von OBI dienen als Füße

IMG_20140528_220724

Lackierarbeiten sind im Gange

IMG_20140603_213515

Loch am Ende eines Fußes zur Ausfädelung der Stromversorgung

IMG_20140603_213447

35cm langes Loch durch den Fuß sowie Befestigung dessen

Plexiglashaube

Die Stellfläche für den Tisch bildet eine selbst zusammen geklebte Plexiglas-/Acrylglashaube. Die dafür benötigten Platten wurden als Rohmaterial via eBay eingekauft (ca. 70 Euro) und dann an der Kreissäge auf Gährung gesägt. Nach diversen Stunden Kanten Schleifen konnten die Teile dann auf einer extra dafür aufgebauten Vorrichtung mit Acrifix verklebt werden. Das klingt erst einmal einfach, aber Plexiglas zu verarbeiten ist mit großem Aufwand und Sorgsamkeit verbunden. Selbst die kleinsten überschüssigen Klebereste sieht man sofort nach dem Aushärten unter Licht! (PS: eine Firma hätte mir das auch für knapp 350 Euro zzgl. MWst. gemacht – wie ich finde ist es das nicht Wert weil viel zu teuer!)

IMG_20140530_172210

Kleben des Plexiglas-Rahmen mit Acrifix samt Hilfsvorrichtung

Komplettierung & Funktionstest

IMG_20140603_213536

Grobes Anzeichnen der späteren LED-Positionen

Die einzelnen RGB-LED samt den WS2801 Controllern wurden einfach via Heißklebepistole auf ihre zuvor angezeichneten Positionen geklebt. Ein Verlöten der Kabel war dann noch nötig, da die via eBay gelieferten Kabel der Streifen zu weit auseinander waren. Wieder ein paar Stunden Arbeit mit 400 Lötstellen inklusive Kürzen und Abisolieren.

IMG_20140604_221819

Kabelsalat vor dem Löten – die Abstände der LED auf den Streifen war zu groß

Nach den Lötarbeiten musste natürlich überprüft werden, ob den auch noch alles wie gewünscht funktioniert. Hierzu wurde das Eval-Board nochmals angeschlossen und siehe da – es geht nachwievor. Anschließend konnte der Tisch vollends zusammen gebaut werden.

IMG_20140606_154827

Erster Test nachdem alle Kabel neu verlötet waren

IMG_20140629_183244

Fertiger Zustand bevor die Plexiglas-Haube aufgesetzt wurde

…nochmal Steuerung

Der Cortex M3 Controller, welcher die Lichteffekte auf den Tisch zaubern soll, musste natürlich auch noch programmiert werden. Dies tat ich mit der CoIDE von Coocox unter Windows. CoIDE ist eine simple Eclipse-basierte Entwicklungsumgebung für die Programmierung mit C/C++ und der GNU Compiler Toolchain für ARM.

Aktuell gibt es nur fünf verschiedene Effekte welche alle fünf Minuten durchgewechselt werden. In Zukunft werden es sicher noch mehr werden – das Ausgeben von einfachen Texten z.B. funktioniert bereits!