WürfelSo langsam wurde es auch bei mir mal Zeit für das 0815 Mikrocontroller Projekt LED Würfel. Fast fertiggestellt eigentlich schon vor einem 3/4 Jahr hatte ich es dann nicht mehr geschafft die Software zu vollenden sodass der Würfel im Regal verstaubte. Dieses Wochenende nahm ich mich dem unschuldigen Kerl nochmal an und stellte fest, dass die Softwareanfänge wohl bei der letzten Neuinstallation meines Rechners verloren gegangen sein mussten. Zum Glück war das nicht weiter schlimm, ich war nämlich ohnehin nicht zufrieden mit dem Verhalten der Darstellung durch die LEDs.

Die LEDs haben den gesamten Port C eines ATmega8 Plus einen Pin am Port D für sich alleine. Jede LED kann einzeln eingeschaltet werden, da auf eine portsparende Kombination gegenüberliegender LEDs verzichtet wurde. Das Programm ist so aufgebaut, dass die grünen LEDs wahlweise in voller Helligkeit leuchten oder durch Missbrauch der im Controller integrierten Pull-Up Widerstände deutlich dunkler sind. Die Software ist wie immer in C geschrieben und reagiert auf Schütteln des Würfels. Dazu wurde ein Schalter mit zwei Metallkugeln verwendet, die sich in dessen Gehäuse beim Schütteln bewegen. So wird der Kontakt unterbrochen und verbunden, sodass ein laufender Schüttelvorgang erkannt werden kann. Bleibt der Schalter dauerhaft geöffnet, so ist der Würfel umgedreht, sodass sich der AVR bis zum erneuten drehen in die normale Position in den Sleep Modus begibt. Auf diese Weise kommt der Würfel komplett ohne außenliegende Schalter oder Taster aus.

Links die untere Hälfte mit dem Batteriefach und den Schrauben, links die obere Hälfte mit der isolierten Steuerungsplatine und den Muttern
Links die untere Hälfte mit dem Batteriefach und den Schrauben, rechts die obere Hälfte mit der isolierten Steuerungsplatine und den Muttern

Das Gehäuse stammt natürlich aus dem 3D Drucker. Es ist in zwei Hälften aufgeteilt. Die obere Hälfte enthält bereits Löcher in die die LEDs eingedrückt werden und zudem sechseckige Aufnahmen für M3er Muttern. Diese werden mit einem Lötkolben eingedrückt. Die untere Hälfte hält Platz für 3AAA Batterien bereit und enthält zudem die notwendigen Löcher für vier Schrauben die in die Muttern der oberen Hälfte greifen. So lässt sich der Würfel sicher verschrauben, sodass auch Kinder nicht an die Batterien gelangen können.

Die Elektronik ist auf insgesamt zwei Platinen untergebracht. Die LEDs wurden vor dem Einbau auf ein Stück Lochrasterplatine gelötet und anschließend in die vorgesehenen Aussparungen im Deckel gedrückt, der Mikrocontroller und die Vorwiderstände der LEDs sind dagegen auf einer zweiten kreuzförmigen Platine untergebracht und mit dem Gehäuse verklebt. Der Controller ist entgegen der guten Sitten nicht mit Abblockkondensatoren und einem Pull-Up Wiederstand am Reset bestückt. Dies liegt vorallem an meinem Bauteilengpass vor einem 3/4 Jahr. Auf weitere Lötarbeiten wollte ich allerdings verzichten um das Gehäuse vor dem heißen Lötkolben zu bewahren. Ein ISP Stecker ist nicht vorgesehen, die zur Programmierung erforderlichen Pins sind dafür auf einer Buchsenleiste herausgeführt.

Nachdem der Würfel auf die Unterseite gestellt wird wechselt er zwischen hell und dunkel ab. Durch Schütteln bei der gewünschten Helligkeit wird diese ausgewählt und es kann gewürfelt werden. Die Helligkeit wird bis zum nächsten Ausschalten gespeichert, also solange bis der Würfel auf die Oberseite gedreht wird. Durch die klare Ausschaltposition bleibt der Wüfel sicher in diesem Zustand und schaltet sich nicht versehentlich wieder ein. Im aktivierten Zustand reichen jedoch bereits leichte Erschütterungen um den Würfel zum Erzeugen einer neuen Zufallszahl zu bewegen.

Die während dem Würfeln angezeigte Zahl entspricht nicht der Zahl, die am Ende tatsächlich gewürfelt wurde, sondern zeigt nur an, dass gewürfelt wird. Intern werden die Zufallszahlen in der ansonsten leeren Hauptschleife erzeugt, die ausgelesen wird, sobald das Ende des Schüttelns erkannt wurde. Der Hautptteil des Programms erfolgt durch den Interrupt auf INT0 und die im CTC Modus alle 0,5 Sekunden aufgerufene ISR des Timer1.

Set
Eine weiße Unterlage durfte natürlich nicht fehlen

Ein kurzes Video gibt es zudem auf YouTube:

Der Schaltplan ist hier zu finden, die CAD Dateien auf Thingiverse und das gesamte Projekt einschließlich Source Code auf GitHub.

Subscribe
Notify of
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Kleinz
8 years ago

Hey, wirklich top würfeli!

Grüßi vom Kleinz