Dieses Projekt ist im Winter 2011/2012 entstanden. Es ist ein selbst konzipierter 4x4x4 LED Cube. In erster Linie ist es darum gegangen für die bereits vorhandenen Bauteile Verwendung zu finden. Die Blauen LEDs mit kurzem Draht, der ATTINY Controller und die IO Controller hatte ich bereits zuhause.
Als Grundgerüst habe ich mir ein paar Meter Draht besorgt, welchen ich geschickt ausgedreht, gekürzt und zusammen gelötet habe. Der Würfel besteht aus 4 Teilen mit jeweils 16 LEDs. Die LEDs sind mit dem Plus Pol direkt auf das Drahtgerüst gelötet und mit einen Widerstand zum IO Controller geleitet. Die 4 IO Controller sind per I2C mit der Hauptplatine verbunden. Es sind PCA9552, 16Bit I2C LED Treiber. Die IO Controller sind übrigens fliegend montiert und werden nur durch das Flachbandkabel gehalten, welche wiederum mit Kabelbinder befestigt sind. Eine lange Frickelarbeit…
.
Die Hauptplatine selbst besteht aus einer 5x10cm Lochrasterplatine. Diese ist mit einem 7805er und einem ATTINY84 ausgestattet. Zusätzlich befindet sich noch ein Taster, ein Poti und eine 3,5mm Klinken Buchse auf der Platine. Zum Verbinden der IO Controller ist eine Steckerleiste montiert. Betrieben wird das ganze von einer 9V Batterie, welche sich auch direkt auf der Hauptplatine befindet. Die Hauptplatine selbst habe ich mit Kabelbindern im Mittelteil der Cube montiert. Sieht für den Leihen vielleicht nicht ganz so schön aus, aber für den Techniker um so schöner
. Außerdem kann man so den Cube per Eingabeknöpfe komfortabel steuern.
Die Treiber und das Grundgerüst sind soweit fertig Programmiert, es läuft derzeit ein Testprogramm. Zur Visual Programmierung bin ich noch nicht gekommen, sollte aber recht einfach gelingen. Ich habe dafür ein paar schöne Funktionen vorbereitet, mit denen die einzelnen Punkte in einer Matrix angesteuert werden können, aber auch Linien und Flächen Adressiert werden können. Das Programm ist in C geschrieben und wurde mit GCC unter Linux kompiliert und mit AVR Tools per Parallelport eingespielt.
Als Erweiterung habe ich mir vorgenommen den Klinken Stecker per Analogport auszulesen und eine Fast Fourier Transformation (FFT) zu verwenden um Frequenzabhängige Visuals erzeugen zu können. Bis jetzt habe ich nur einen Quick Hack zur Anwendung als VU-Meter erstellt.
Wie sich bei den IO Controllern herausstellte, sind die PWM Features die im Chip integriert sind leider sehr limitiert. Mehr als 44Hz Frequenz lässt sich daraus nicht raus holen. Daher habe ich die PWM Steuerung per Software realisieren müssen. Dabei unterscheide ich zwischen 4 Grau-Stufen die in einem Array zwischengespeichert werden und in Zyklen per I2C weitergegeben werden. Dabei ist eine Theoretisch Maximale PWM Rate von 400khz/(9bit*4)/(4*4) = 694FPS (Max I2C Bus Speed/(I2C Bytelänge*Bytehappen)/(anzahl IO Controller*Led Register)) zu erreichen, wenn alle LEDs einer PWM Änderung unterzogen werden. Entsprechend höher sind die FPS bei Teilupdates.
Die LEDs selbst sind direkt an 9V betrieben da ich den 7805er entlasten wollte. Als Vorwiderstände dienen hier 470Ohm Widerstände. Diese wurden deshalb so niedrig gewählt, um beim PWM Betrieb wenig Verluste am Widerstand und maximale Helligkeit zu haben. Dabei ist ein maximaler Stromfluss von 13mA pro LED möglich. Die Chips verkraften 200mA pro Package. Bei gleichzeitiger Inbetriebnahme aller 16 LEDs also maximal 12,5mA pro LED. Also etwas darunter… Bei 64LEDs auf einmal würde ein maximaler Strom von 832mA fließen, was bei 9V fast 7,5W entspricht. Ich denke das die 9V Batterie dabei beleidigt sein wird.
Also etwas mitdenken beim Programmieren oder ein Externes Netzteil verwenden.
Der Poti ist übrigens zur Steuerung der Visual Geschwindigkeit und Gesamt Helligkeit gedacht. Der Taster schaltet zwischen den Modis für den Poti um.
Fazit: Viel Arbeit. Viel Frickeln. Aber Schön. Im Internet sind aber bessere einfachere LED Cube Projekte zu finden. Nachbauen würde ich die 3x3x3 LED Cubes, am besten mit RGB Leds. Mehr Farbe, mehr Freude.
In diesem Sinne, viel Spass beim Basteln!