Forum: Mikrocontroller und Digitale Elektronik LED-Cube 3x3x3 - mal ohne Arduino


von Dirk K. (dekoepi)



Lesenswert?

Zum Lernen des Umgangs mit Mikrocontrollern und Elektronikbauteilen 
gehört natürlich auch obligatorisch Blink-Blink mit LEDs. Ganz typisch 
etwa mit einem "dicken" Arduino ein einfacher 3x3x3-LED-Würfel.

Vor dem 4x4x4-RGB-LED-Cube wollte ich auch schon mal üben und habe mir 
einen einfachen 3x3x3-Cube mit billigen weißen LEDs gelötet. Zunächst 
habe ich den auch per Arduino Pro Mini angesteuert. Dabei ist mir aber 
nicht ganz wohl - der ATmega328 kann eigentlich eine Menge mehr und ist 
mit dem Blinken von 27 LEDs eigentlich fürchterlich unterfordert.

Also wollte ich eine Lösung, die etwas besser passt. Daher habe ich mir 
zwei handvoll ATtiny85 bestellt. Zunächst habe ich damit ein 
Schieberegister 74HC595 angeschoben - 8 LEDs lustig blinken lassen, ganz 
ohne USB, Arduino oder sonstwas, nur Batterie anstöpseln. Ist soweit 
schonmal ganz lustig (wenn auch der ATtiny85 mehr könnte, aber mit 8 
Pins am µC ist das bereits eine spannende Leistung, 8 LEDs zu steuern. 
Video davon hier: https://www.youtube.com/watch?v=clOOW0KXI-c ).

Blieb noch der LED-Würfel - 27 LEDs, einfacher Multiplex auf insgesamt 
12 Leitungen. Eigentlich ganz einfach, zwei Schieberegister mit dem 
ATtiny85 verheiraten, fertig. Gesagt, getan - das Platinchen zur 
Ansteuerung ist in den Fotos oben zu sehen. Ich habe auch den Quelltext 
mit angehängt, falls jemand so etwas auch mal bauen möchte und einen 
Startpunkt sucht.

Ich habe nur paar ganz rudimentäre Animationen gebastelt, vielleicht 
habe ich ja noch Lust und erweitere das etwas. Finde das aber so schon 
ganz hübsch für den Anfang :)
ATtiny85-getriebener 3x3x3-LED-Cube in Aktion: 
http://youtu.be/vKkzdwWS5zs

Nein, das ist nichts Bahnbrechendes oder Neues, das ist mir klar. Auch 
nicht neu, Schieberegister zur Porterweiterung zu nutzen. Nur im Kontext 
von LED-Cubes finde ich im Netz gar nichts derartiges. Da wird immer mit 
Arduino Uno oder Mega draufgeworfen. Oder die viele-Pins-ATtiny2313 & 
Co. Es geht aber eben auch ganz klein und schnuckelig.

Edit: Einen Vorteil habe ich gar nicht erwähnt - die ATtiny85 kosten so 
ein Euro das Stück, die Schieberegister je nach Abnahmemenge 10-20 
Cents. Das ist doch deutlich günstiger, als einen Arduino damit zu 
belegen ;)

: Bearbeitet durch User
von Easylife (Gast)


Lesenswert?

Und jetzt? D.h. wenn ich mal ne blinkende Werbetafel brauche bist du 
mein Mann dafür?

von max mustermann (Gast)


Lesenswert?

Schhönes kleines Projekt.
Ist das eine e-Zigarette daneben?

von Karol B. (johnpatcher)


Lesenswert?

In der Tat ein schönes Projekt. Es ist immer wieder beeindruckend wie 
viel man mit wie wenig anstellen kann (sowohl Hardware als auch 
Software). Die Idee für LED Cubes Logik der 74xx Familie einzusetzen ist 
allerdings alles andere als neu.

Die Software hätte ich persönlich modularer aufgebaut: Würde zunächst 
einmal die Treiberlogik von den Animationen trennen und beides in ein 
eigenes Modul packen. Bei meinem LED-Würfel habe ich auch ein eigenes 
"Transformationsmodul", welches Animationen verwenden können (z.B. eben 
Layershifts und ähnliches).

Tipp: "true" bzw. "false" kann man sich auch aus "stdlib.h" holen und 
muss das nicht selbst definieren.

Ansonsten: Gratulation und weiter so ;). Und nicht von den "negativen" 
Kommentaren demotivieren lassen.

Mit freundlichen Grüßen,
Karol Babioch

von Dirk K. (dekoepi)


Lesenswert?

@max mustermann: Ups, ja, isses :) (Taifun auf einem Poldiac [Clones].)

@Karol: Danke :) Der Code ist nur der allererste Startpunkt. Ging mir 
darum, zu gucken, ob das überhaupt läuft. Da ist nichts schön dran, 
einfach reingehackt, kompiliert und schnell rauf auf den Prozessor. Dass 
da viel Luft nach oben ist, ist klar - Prototyp halt. Dass ich auch eine 
größere Bibliothek einbinden kann, ist klar - für nur den einen Datentyp 
ging das aber genauso schnell und vielleicht etwas platzsparender. ;)

@Easylife: Lesen hilft. "Rightsizing" wäre das neue deutsche Wort dafür. 
Man muss nicht mit dem Panzer zur Arbeit fahren, das geht auch mit dem 
Tretroller. Vielleicht verstehst du das so besser. Viele Leute machen 
sich keine Gedanken darum, dass man vielleicht einen überdimensionierten 
µC für die Aufgabe nutzt.

: Bearbeitet durch User
von Oliver R. (orb)


Lesenswert?

Ich will Dein Projekt auf keinen Fall schlecht machen aber ich finde es 
interessant, daß etwas was vor 'Generation Ardiuno' gang und gäbe war, 
nämlich die verwendeten Mittel nach den Erfordernissen der Aufgabe zu 
wählen, jetzt schon als 'spannende Leistung' gefeiert wird.
Aber in einem Board in dem für einen einfachen Timer ein Cortex M4 
vorgeschlagen wird ist das eine erfrischende Abwechslung ;-)

von San L. (zwillingsfreunde)


Lesenswert?

Oliver R. schrieb:
> Ich will Dein Projekt auf keinen Fall schlecht machen aber ich finde es
> interessant, daß etwas was vor 'Generation Ardiuno' gang und gäbe war,
> nämlich die verwendeten Mittel nach den Erfordernissen der Aufgabe zu
> wählen, jetzt schon als 'spannende Leistung' gefeiert wird.

Hätte man schöner kaum ausdrücken können. Dies ist auch oft der Punkt 
den ich anspreche: Viele Leuten fehlt wegen den ganzen Angeboten an 
fertigen Libs & Boards die Fähigkeit, selbst einmal Bauteile 
auszuwählen.

Hier haben wir nun einmal ein Beispiel von jemandem, der sich wenigstens 
Gedanken drum macht. So schwierig ist es ja nicht. Nur ist es in der 
heutigen Zeit wohl kaum noch nötig sich dieses Wissen anzueignen. Aber 
man siehe da: Der TO hat sich gedanken gemacht, diese Umgesetzt und es 
funktioniert. Ein perfektes Beispiel dafür, dass es auch ohne fertige 
Libs geht. Und zu seinem eigenen Vorteil versteht er seinen Code sogar, 
ganz im Vergleich zu vielen anderen die sich diesen meist 
zusammenbasteln aus fertigen Libs und danach keine Ahnung haben, wie das 
ganze funktioniert.

Oliver R. schrieb:
> Aber in einem Board in dem für einen einfachen Timer ein Cortex M4
> vorgeschlagen wird ist das eine erfrischende Abwechslung ;-)

Offensichtlich ist bei denen doch nicht jeder darauf aus, mit Kanonen 
auf spatzen zu schiessen!

Gratulation meinerseits zu dem gelungenen Projekt. Auch wenn es wie 
erwähnt nichts neues ist, so ist es schon nur mal schön zu sehen dass 
sich manche Leute doch noch Gedanken machen. Gerade die Arduino Leute 
sorgen hier im Forum immer wieder für wirbel, da ists cool zu sehen dass 
es auch von ihnen noch einige gibt, die was können.
Viel Glück für zukünftliche Projekte. :)

von Dirk K. (dekoepi)


Angehängte Dateien:

Lesenswert?

Naja, der typische komplett fachfremde Arduino-Nutzer bin ich nicht. 
Komme schon ursprünglich aus der Informatik-Ecke - nur µC habe ich bis 
vor zwei Monaten noch nicht eingesetzt und programmiert.

Den Code für den Cube mache ich wohl nie in schön, sondern in 
Rapid-Prototyping-nur-ohne-wegwerfen-Manier ;)

Anbei die erweiterten Animationen für Nachbauwillige. So sieht das 
inzwischen aus (wieder nur schabbeliges Handy-Video, könnte ich auch mal 
in hübscher und professioneller machen ... wer weiß, am Wochenende 
vielleicht mal.):
http://youtu.be/v4UI1MQyCH0

(Sieht in echt besser aus, auf dem Handy gehen die drei Dimensionen 
etwas verloren, Rotor & Co. lassen sich da nur erahnen.)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.