Schritt für Schritt...

Von der Idee zur Realität.


Alles auf einen Blick
(Druck Version)

PDF
(white)
Wie alles begann:

Anfang 2015. Als ich damals noch zur Schule ging, musste ich mich für ein Projekt/Thema entscheiden, mit welchem ich mich das nächste Jahr über beschäftigen wollte, eine sogenannte Abschluss-Jahresarbeit. Mein Thema war mir schon seit Langem klar! Es sollte sich um die Entwicklung, den Bau und die Programmierung dieses LED-Tisches handeln. Seht selbst...

Angefangen hat natürlich alles mit einer Skizze, welche ich natürlich meinen Vorstellungen, Wünschen und Erwartungen anpasste. Das Design war mir relativ schnell klar gewesen, ich wollte einen eleganten, quadratischen aber einfachen Tisch bauen, der eine gute Höhe für einen Sofa-Beistelltisch haben sollte. In meinem Fall sind es 29cm inkl. Fuß geworden, was sich im Nachhinein auch als ziemlich passend herausstellte.
Arbeits- und Zeitplan
Als ich also eine grobe Idee hatte wie am Ende alles aussehen sollte, machte ich mich als erstes an die Entwicklung eines einfachen Prototypen, bestehend aus einer Infrarot-LED (940nm), einem Infrarot-Sensor (IS471F) mit kleinem 0.33μF Kondensator und Vorwiderständen für die IR-LED (wie im dazugehörigen Datenblatt beschrieben) und einer großen zweifarbigen LED, ebenfalls mit Vorwiderstand. Für die Steuerung des Prototypen benutzte ich einen Arduino Uno, genauso wie ich ihn auch später für das fertige Projekt zum Einsatz kommen lassen wollte. Die abgebildete Schaltung sollte die Funktionsweise des grundlegenden Prinzips darlegen und einfach veranschaulichen. Ziel war es, dass sobald sich eine reflektierende Fläche (z.B. eine Hand) über die IR-LED bewegte und so das ausgesandte infrarote Licht zurück auf den IR-Sensor reflektierte, die große LED ihre Farbe von grün auf rot wechselte und das Ganze angesteuert vom Arduino Uno. Der Trick bei dem Ganzen,warum ich auch genau diesen speziellen IR-Sensor und keinen anderen benutzte, war, dass dieser die IR-LED selber mit einer bestimmten Frequenz ansteuert und dass deshalb nur das von der IR-LED reflektierte infrarote Licht mit derselben Frequenz vom IR-Sensor "akzeptiert" wird und man dadurch infrarotes Lich von anderen Stör-Quellen wie z.B der Sonne einfach eliminieren kann. Das hat soweit auch alles bestens funktioniert.
(Klick auf's Bild und blätter weiter für mehr FOTOS und VIDEOS!)
Prototyp 2
Die einzelnen auf der fertigen Platine verbauten Bauteile waren schließlich: [1] Eine einfache Befestigung der Platine auf einem Platinen-Abstandshalter (Spacer) aus Metall, welcher mit dem Untergrund verbunden wurde. [2] Eine Stiftleisten-Steckverbindung womit die erste Platine mit der Zweiten, die Zweite mit der Dritten, usw. verbunden wurde. [3] Die Lochrasterplatine selbst. [4] Ein 33μF Kondensator zum glätten der Platinenspannung. [5] Der IS471F IR-Sensor [6] Die fertige WS2811/12 RGB-LED Platine [7] Die durchgeschleiften Kontakt-Pins der WS2811/12 RGB-LED: 5V IN; Data IN; GND; 5V OUT; Data OUT; GND [8] Eine 940 nm IR-LED mit einem Abstrahlwinkel von 40° [9] Zwei 470 Ohm Vorwiderstände für die IR-LED [10] Und noch eine einfache Platinen-Kennung, sodass ich bei späteren Defekten einfach den Überblick behalte, welche bereits einmal ausgetauscht wurde und welche noch nicht. Viele waren es zum Glück nicht;) [11] Auf der Unterseite der Platine sieht man die gelöteten Verbindungen der einzelnen Komponenten, welche mit möglichst großer Effizienz, möglichst einfach und dennoch gut gewählt angeordnet wurden.
Alle Bauteile
Als nun das ganze technische mehr oder weniger einwandfrei funktionierte, ich auf die Bestellungen warten musste und ich mir sicher sein konnte dass es später einmal funktionieren wird, machte ich mich an die Skizze des Holzgestells. Wie bereits erwähnt, sollte der Tisch quadratisch werden, eine gute Höhe als Sofa-Beistelltisch besitzen und dazu noch einigermaßen elegant aussehen. Dabei raus kamen die abgebildeten Skizzen inklusive einer Skizze für einen einzelnen Platinenschacht. Das Holz welches ich verwenden wollte war einmal Pappel Sperrholz (4mm) für das Raster und den Zwischenboden, eine 9mm Pappel Sperrholz-Platte für der Boden und Akazien-Tischlerplatte (18mm) für den Rahmen und oben drauf noch die 3mm starke satiniert-farblose Plexigalsscheibe.
Holzgestell
Da ich immer noch auf die restlichen Bestellungen wartete und der Bau der 100 Platinen selbst nochmal eine Weile dauern würde, machte ich mich an einen kleinen Test mit den Platinen aus meinem 2x2 Pixel Prototyp und dem fertigen 10x10 Pixel Tisch-Gestell. Ich wollte einen Eindruck bekommen wie es ungefähr am Ende aussehen würde, auch wenn das nicht wirklich der Fall war mit 4 Pixeln! Dafür fiel mir aber etwas anderes nicht sehr wünschenswertes auf, und zwar funktionierte der Touch nicht mehr so wie ich das wollte... Wenn ich also den Beispielcode startete während die Plexiglasscheibe auf dem Pixel-Raster lag, dann leuchteten die Pixel wie erwünscht. Sobald ich aber mit meiner Hand drüber fuhr, und die Pixel eigentlich nur solange sie bedeckt waren ausgehen sollten, blieben sie auch danach aus! Der Fehler lag auch nicht am Code, denn wenn ich es ohne Plexiglas probierte, funktionierte es wie es sollte... Nach mehreren Tagen voller Verzweiflung kam ich auf den Fehler und dieser war mehr als schockierend einfach und dennoch sehr schwer ausfindig zu machen. Ich hatte meinen 4 Pixel Prototyp mit dem Sperrholz einfach irgendwie zusammengebaut und hatte dabei (natürlich) nicht auf die Maserung des Holzes geachtet! Bei meinem 10x10 Pixel-Raster war diese also mal gleich und mal quer zu der in meinem Prototypen... Das bedeutete, dass ich das Raster noch einmal neu bauen durfte und diesmal mit der Maserung identisch zu dem im Prototypen (und zwar mit der Maserung von unten nach oben verlaufend und nicht quer, da sonst die Reflektionen des infraroten Lichts zu stark in alle Richtungen gegangen und somit verfälscht worden wären!) Mit dem neuen Raster funktionierte auch alles wieder so wie es eigentlich sollte und bis das der Fall war, waren auch meine restlichen Bestellungen eingetroffen:)
100 Pixel
Und was macht man als nächstes wenn man alle 100 Platinen fertig gelötet hat? Natürlich, testen! Ich habe also die komplette Verkabelung für die Pixel vorbereitet indem ich die Flachbandkabel jeweils auf die Länge vom einen Pixelfach zum Nächsten zugeschnitten habe und diese dann mit den dazugehörigen Flachbandkabel-Steckern verbunden habe. Ich schloss nun alle Platinen an ihren vorgesehenen Plätzen an und verband den Daten-Input der ersten Platine mit dem Arduino Uno. Dann galt es noch die Platinen mit Strom zu versorgen, was ich widerum von einem extra 5V Netzteil mit außreichend Leistung tat. Nun konnte ich zum ersten Mal alle 100 Pixel gleichzeitig in Betrieb nehmen und dabei gleich auch noch sehen wie es im Pixel-Raster aussieht! Leider war das nicht so beeindruckend wie ich es mir erhofft hatte (siehe Bilder), da schon nach ca. 1-2 Reihen der Strom nicht mehr für die restlichen LED's ausreichte... Ich hielf also nochmal nach indem ich in jede 2. Reihe erneut 5V vom Netzteil einspeißte. Danach lief alles soweit wie erwartet.
Arduino
Nun kam die wahrscheinlich Nerven zehrendste Arbeit, das Verkabeln! Ich wollte dies so übersichtlich und nachvollziehbar wie möglich machen, sodass mögliche spätere Defekte leicht wieder lokalisiert werden konnten. Zudem wollte ich die Anschlüsse zu der Steuerelektronik in der Ebene darunter so gestalten, dass ich den Tisch auch später wieder auseinander nehmen konnte um Änderungen daran vornehmen zu können. Hierfür nutzte ich steckbare Lysterklemmen wie auf den Bildern gut zu erkennen ist. Ebenfalls über die Lysterklemmen wurden der Datenpin und die Stromzufuhr für die Platinen vom Netzteil angeschlossen.
Verkabelung 2
Die Zeit war gekommen! Ich konnte nun endlich beide großen Hälften des Innenlebens miteinander "verheiraten". Dafür musste ich lediglich alle Lysterklemmen-Stecker miteinander verbinden und fertig war es! Nur noch das Gehäuse außenrum zusammenbauen und der Tisch war so gut wie fertig...
Teile
Softwaretechnisch sah das natürlich noch ganz anders aus... Hier war noch nicht viel geschehen und umso mehr war noch zu tun. Somit fing der Spaß auch gerade erst richtig an. Für die Programmierung nahm ich mir viel Zeit, und die brauchte ich auch! So ein Programm ist nicht mal so schnell geschrieben wie man es denkt, vor Allem nicht wenn man alles umsetzen möchte was einem so in den Kopf kommt (u.A. Snake, Tetris, Tic Tac Toe, usw.). Demnach programmierte ich ohne Ende und suchte immer weiter nach noch besseren Methoden die Aufgaben zu erledigen... Natürlich kam ich nicht so weit wie ich es mir erhofft hatte, aber für einfache Farbverläufe, Muster, interaktive Reaktionen und kleine Mal-Programme reichte es noch bis zur Präsentation! Seit dem wird immer mal wieder wenn es Zeit dazu gibt am Tisch und den Programmen weiter gefeilt und programmiert, doch wer so etwas kennt weiß, dass das schnell mal nicht zu einem endgültigen Ende kommt:)
Fertig