NiceDice

Der NiceDice ist ein 6-seitiger Spielwürfel. Naja kein ganz normaler, sondern
der Sportwagen unter den elektronischen Würfeln. Es gibt doch schon solche
Würfel als Bausatz zu kaufen mag man einwenden – Stimmt, doch NiceDice macht den
anderen Bausätzen aus dem Internet noch etwas vor: Er hat Stil, ist klein und
erzeugt Zufall indem man ihn schüttelt, wie ein echter Würfel aus dem
Mensch-ärgere-dich-nicht.

Motivation

Vor langer Zeit (2015) hatte ich mal bei einem Schülerpraktikum einen elektronischen Würfel gebaut, allerdings einen ziemlich langweiligen: einen mit Hauptschalter, Knopf zum Würfeln und sieben 5mm-LEDs, die aus dem seifengroßen schnöden Kästchen rausgucken. Kurzum schön für Kinder und Jugendliche, die mal was mit Elektronik machen wollen, aber ohne wirklichen Anspruch.

Als nun (2023) das Weihnachtsfest näherrückte und ich mir Gedanken über die Geschenke für meine Lieben machte, kam ich auf die Idee: „das kann ich doch mittlerweile besser“, und so beschloss ich den Sportwagen unter den elektronischen Würfeln zu Entwickeln: klein, mit Design, ohne hässliche (aus Sicht der nicht Elektrotechniker) Elektronik und Aktivierung durch tatsächliches Schütteln.

Die Funktion

Ein kleiner Mikrocontroller (Atiny 13A) übernimmt die Steuerung, zumindest eigentlich, denn die meiste Zeit ist er im Tiefschlaf um so wenig Strom zu verbrauchen, dass die Knopfzelle (CR2023) ein paar Jahre hält.

Wird durch Bewegung der verbaute Vibrationssensor ausgelöst, misst er die zufällig lange Zeit, die der Sensorkontakt geschlossen ist und berechnet daraus das Würfelergebnis. Da jedes Schütteln anders ist, wird auch die Zeitdauer die der Sensor aktiv ist leicht schwanken. Da ich davon ausgehe, das niemand genau 200µs lang auf einen Knopf drücken kann, geschweige denn schüttelt, würde ich das Ergebnis als zufällig beschreiben.

Der verbaute Vibrationssensor funktioniert rein mechanisch und ist ein kleiner Metallbecher in dem sich eine Feder mit einer kleinen Schwungmasse befindet. Im bewegungslosen Zustand berühren sich Becher und Feder nicht, was einem offenen Kontakt zwischen den beiden Anschlüssen entspricht. Wird nun der Sensor in Bewegung gebracht, so wird durch Massenträgheit die Feder ausgelenkt und berührt bei ausreichend starker Beschleunigung die Seitenwand des Bechers, woraufhin sich der Kontakt schließt und der Mikrokontoller dies als Schütteln erkennt.

Hinweise zum Nachbau

Prinzipiell würde ich Anfängern ersteinmal andere Projekte empfehlen. Wer es jedoch mit seinem Hobby ernst meint und sich zutraut Mikrocontroller zu Flashen, für den ist das Projekt gut geeignet.

Allgemein

  • Die Widerstände sind auf leuchtkräftige, rote LEDs ausgelegt. Im Betrieb sollten laut Datenblatt mindestens 50.0mcd pro LED erreicht werden. Bei schwächeren oder Andersfarbigen LEDs kann es schnell passieren das diese dann nur leicht glimmen anstatt anständig zu leuchten.
  • in der ZIP-Datei befinden sich die Herstellungsdaten für die Platine, die meisten Platinenfertiger sollten mit denen zurechtkommen. Trotzdem am besten nochmal selber in der Onlinevorschau kontrollieren ob alles passt. (LEDs auf der Oberseite, Lötstoppmaske lässt Pads frei, Leiterbahnen, Lötdruck und Bohrungen sind vorhanden, etc.)

Programmierung

  • vor Beginn überprüfen ob man die AVR-Toolchain beherrscht. Zumindest das Flashen vom Mikrocontroller sollte man schonmal probiert haben. Für erste Versuche damit würde ich andere Projekte empfehlen.
  • zum Programmieren ist ein AVR-ISP-Programmer nötig. Der 6-pin-ISP-anschluss befindet sich an der rechten Seite der Platine, in Form von je drei Kontakten auf Vorder- und Rückseite. Zum Programmieren kann man da den Stecker erst hin und danach wieder ablöten, allerdings gibt es auch die Möglichkeit sich einen passenden Stecker für solche Platinenkontakte zu besorgen und sich daraus einen einfachen Adapter zu bauen, den man zum Flashen nur auf die Platine aufsteckt. Aus diesem grund entspricht die Kontaktanardnung der des Standart 6-pin-ISP-anschlusses.

Löten

  • Falls mit Steckadapter programmiert wird: erst den Mikrocontroller Flashen und erst danach den Batteriehalter anlöten. Sonst blockiert dieser den Stecker
  • dran denken: das Mikrocontrollergehäuse ist auf der linken Seite angephast, nicht dass der am Ende falschherum auf der Platine sitzt.
  • Liegt die Platine so das der Mikrocontroller richtig orientiert ist, befinden sich die Kathoden (Minuspol, weil K wie kalt) der LEDs alle auf der linken Seite.

Montage

  • Die Montage empfehle ich entsprechend den Bildern zu machen. Der Abstand von Platine und Frontplatte kann über das verdrehen der Muttern eingestellt werden.

Benutze Software

Compilieren und Bauen:

  • GNU Make 4.4.1
  • avr-gcc 13.2.0
  • avr-libc 2.1.0-3

Flashen:

  • avrdude 1:7.2.-1

Schaltungsentwurf:

  • kicad 5.1.5

Lizenz

Das ganze Projekt stelle ich hiermit unter der Apache 2.0 Lizenz zur Verfügung. Die Schaltpläne und das Platinenlayout können auch unter der CC BY 4.0 Lizenz genutzt werden, sowie alle weiteren Dateien im Unterordner „PCB/“.

Projektstatus

Ich hatte meinen Spaß und betrachte das Projekt als abgeschlossen, trotzdem freue ich mich zu erfahren, wenn jemand das Projekt auf eigene Faust weiterentwickelt, die Lizenz lässt das ja zu 😉

Beteiligte Benutzer: Ludwig Birkle
Zeitaufwand: Geschätzt 1h
Lizenziert unter: Apache 2.0 (respektive CC BY 4.0)
Git: https://gitlab.cs.fau.de/la72dyqu/NiceDice