Forum: Projekte & Code electronic-dice deluxe mit PFS154


von Ralph S. (jjflash)



Lesenswert?

Eigentlich hätte das als Gadget für Weihnachten herhalten sollen, aber
die Platinen sind leider zu spät gekommen (na ja :-) das nächste
Weihnachten kommt bestimmt).

Hm, grundsätzlich stellt sich mir die Frage, ob man etwas so relativ
"einfaches" wie den 4-millionstenundeinen elektronischen Würfel hier
einstellen soll, aber: Einsteiger gibts viele, Projekte mit Padauk
PFS154 dafür wenige und als Spielzeug ist der Würfel gar nicht so
schlecht ( leider muß ich zugeben, dass ich hier immer wieder auf die
Würfeln-Taste drücke ).

Die Platine soll u.a. als SMD-Lötübung (in billig) herhalten und dennoch
einen Zweck haben. Außerdem wird die Platine auch als Übungsobjekt für
Programmierung zum Thema multiplexen eingesetzt werden (zumindest habe
ich das so jetzt einmal vor).

Aus diesem Grund gibt es auf der Platine auch eine bestückbare
Pfostenreihe, damit diese in ein Steckbrett gesteckt werden kann (in
diesem Fall darf ein programmierter PFS154-Controller nicht auf der
Platine bestückt werden).

Die Platine kann also zum einen als wirkliches Spielzeug oder aber als
Programmierübung eingesetzt werden.

Vorab an all die "Nörgler" warum ich keine Treibertransistoren für die
Anzeige verwende: Schlicht sie sind nicht notwendig. Die Charge LED's
(2000 Stck.) die ich hier habe, sind mir grundsätzlich schon viel zu
hell. Ich war hier erstaunt, dass die LED's (ungemultiplext) selbst mit
einem Strom von 100 µA als Anzeige noch fast zu hell sind. Nein, ich
kann nicht auf ein Datenblatt verweisen, weil ich schlicht keines habe.
Wie dem auch sei: sie sind hell genug.

Einen "Fehler" habe ich beim Design der Platine gemacht: Ich habe
insgesamt 3 x 2 LED's in Reihe geschaltet (schlicht aus Gewohnheit) und
hatte nicht im Blick, dass man die Schaltung ja evtl. auch nur mit 3,7V
(LiOn) laufen lassen möchte (was jetzt eben nicht geht, weil die
Spannung für 2 in Reihe geschalteten Leuchtdioden zu gering ist).

Beschreibung des Würfels:

Der Würfel selbst hat insgesamt 4 Spielemodi. Der Spielmodus wird durch
das "Menü" beim Anlegen der Betriebsspannung mit der mittleren Taste
angewählt und mit der rechten Taste ausgewählt. Jeder Spielmodus wird
auf dem rechten Würfel mit einer Augenanzeige von 1..5 angezeigt.

5 ?????
Die Auswahl 5 legt fest, ob der Würfel mit Tönen hinterlegt ist oder
nicht. Wird Menüpunkt 5 ausgewählt, zeigt ein einfaches piepen des
Lautsprechers an, dass der Ton abgeschaltet ist, ein zweifaches piepen
schaltet ein zuvor abgeschalteten Lautsprecher wieder an.

Die Spielemodi 1..3
--------------------------------------------------------

Hier wird einfach nur festgelegt, mit wievielen Würfeln gespielt werden
soll. Wird mit 2 oder 3 Würfeln gespielt, kann mit den unter der
Würfelanzeige angeordneten Tasten ausgewählt werden, ob beim nächsten
Würfeln der Würfel stehen bleiben soll oder nicht. Das Spiel mit nur
einem Würfel ist eben nur ein einfacher Würfel.

Spielemodus 4
---------------------------------------------------------

Spielemodus 4 ist für das Würfelspiel Mäxle (oder auch als Maiern, Lügen
etc. bekannt). Beim Mäxlespiel (mit 2 Würfeln) muß ein nachfolgender
Spieler mit seinen Würfeln immer min. gleichviel oder mehr Punkte
erreichen als sein Vorgänger. Die höhere Ziffer eines Würfels wird mit
10 multipliziert und die niedrigere dazu addiert (eine 5 und eine 3
wären als zusammen 53 Punkte). Die höchste einfache Zahl ist somit 65.
Dannach kommen die Päsche und als höchste Wertung gilt eine "1" und eine
"2" das sogenannte Mäxle.

Damit ein nachfolgende Spieler nicht sehen kann, was sein Vorgänger
gewürfelt hat, kann mit der mittleren Taste nun die Anzeige
ausgeschaltet werden und der aktuelle Spieler muß nun entwerder seinem
Vorgänger glauben und neu würfeln. Glaubt er der Aussage nicht, so kann
er die Anzeige aufdecken und man kann somit sehen, ob hier gelogen wurde
oder nicht.

Soll der Spielemodi geändert werden, muß die Würfeltaste solange
gedrückt werden, bis 2 mal alle 3 Würfel mit einer "6" blinken, danach
ist man wieder im Menü.

-------------------------------------------------------
Die Software
-------------------------------------------------------

Die im Zip-Archiv enthaltene Software beinhaltet alle Dateien, um das
Würfelspiel zu compilieren (unter Linux).
Ein einfaches "make" im Ordner übersetzt das Programm und ein "make
flash" wird bei angeschlossenem Programmer den Controller flashen.

-------------------------------------------------------
Die Hardware
-------------------------------------------------------

... ist vom billigsten: billigster Controller, billigste Anzeige (nur
Leuchtdioden), etc.
Im Anhang hier ist das Layout (erstellt mit Sprint-Layout 6.0) und die
Gerber-Files enthalten. Die Gerberfiles beinhalten eine PCB mit 4
identischen Nutzen des elektronischen Würfels.

Sollte jemand diesen Würfel wirklich bauen wollen, hat aber keinen
Programmer für den Padauk PFS154 (und will auch keinen bauen), dann kann
man darüber "reden" (eher schreiben) ob ich vllt. 2 oder 3 Stück per
Post verschicke.

Viel Spaß,

Ralph

von Michael B. (laberkopp)


Lesenswert?

Hübsch, die Steigerung ware Betrieb aus Knopfzelle und Anzeige auf 
ePaper.

Ich befürchte, der ein/aus Schalter funktioniert so nicht wie im 
Schaltplan enthalten: entweder ist +5V verbunden oder GND.

Die Platine ist richtig. EasyEDA ?

von Vanye R. (vanye_rijan)


Lesenswert?

Also norgeln muss man immer! :-D

Wie hast du denn das mit der Zufallsgenerierung gemacht? Du willst doch 
wohl nicht riskieren was wir beim Mensch-Aerger-Dich-Nicht vorhersehbare 
Zufallszahlen haben und es bereits vorher klar ist das Oma gewinnt oder?

Vanye

von Ralph S. (jjflash)


Lesenswert?

Michael B. schrieb:
> Ich befürchte, der ein/aus Schalter funktioniert so nicht wie im
> Schaltplan enthalten: entweder ist +5V verbunden oder GND.

Du hast recht (Fehler by me). Auf dem Layout ist das anderst !

Michael B. schrieb:
> Die Platine ist richtig. EasyEDA ?

nein, Sprint-Layout 6.0 Eine Platine habe ich bereits vollbestückt (aber 
nicht hier) und die funktioniert auch mit Controller und Schalter.

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

bereinigter Schaltplan...

von Ralph S. (jjflash)


Lesenswert?

Vanye R. schrieb:
> Wie hast du denn das mit der Zufallsgenerierung gemacht? Du willst doch
> wohl nicht riskieren was wir beim Mensch-Aerger-Dich-Nicht vorhersehbare
> Zufallszahlen haben und es bereits vorher klar ist das Oma gewinnt oder?

das habe ich sehr primitiv, eben "billig" gemacht.
1
        wurf++;
2
        wurf= wurf % 216;

In der Schleife, in der gewartet wird bis die Würfeln-Taste gedrückt 
wird, wird dieser Zähler hochgezählt. Dieses geschieht so schnell, wie 
der Controller eben rechnet (dieser taktet mit 8 MHz und arbeitet einige 
Befehle ab, ich habe sie nicht gezählt). Es dürften einige 100 
Durchläufe (einige 1000?) sein, bis dieser Zähler angehalten wird. Zudem 
kommt dann noch das Prellen der Tasten hinzu, sodaß das wohl sehr 
unwahrscheinlich ist dass der Wurf vorhersagbar ist.

Hinweis: 216 entspricht 6^3. Diese zufällige Zahl wird dann eben auf die 
3 Würfel dekodiert.

von Tim  . (cpldcpu)


Lesenswert?

Sehr schön, wieder ein PFS154 design zu sehen.

... aber das hätte man doch bestimmt auch mit weniger GPIO hinbekommen. 
Vielleicht ein 8 pinner? ;)

von Ralph S. (jjflash)


Lesenswert?

Tim  . schrieb:
> ... aber das hätte man doch bestimmt auch mit weniger GPIO hinbekommen.
> Vielleicht ein 8 pinner? ;)

Na ja, viele Gründe, warum eben kein 8 Pinner:

Von den 16 Pinner'n habe ich noch bestimmt 100 Stück, vom 8 Pinner nur 
12 !

Abgesehen davon habe ich jetzt überlegt (nach Deinem Post) ob das 
wirklich mit einem 8 Pinner gehen würde und ich denke eher nicht.

Für einen Würfel benötigt es 4 Leuchtdiodenpfade, bei 3 Pfaden leuchten 
2 LED immer gleichzeitig. Bei 3 Würfeln zu je 4 Pfaden plus 3 
Leuchtdioden als Statusanzeigen müssen also insgesamt (3*4)+3 = 15 
Leuchtdiodenpfade angesteuert werden. Die "pinsparsamste" Variante (die 
ich kenne) ist hier dann Charlie-Plexing. Um 15 Leuchtdiodenanzusteuern 
bedarf es beim Charlieplexing 5 Pins (die dann 20 LED's steuern 
könnten). Hier ist dann aber von Nachteil, dass jeweils 2 LED's parallel 
geschaltet sein müßten und nur die einzelne LED für Anzeige 1,3 und 5 
hätte keine Parallel-LED. Die würde hier dann deutlich heller leuchten. 
Zusätzlich zu den 5 LED I/O's braucht es aber noch 4 Tasten um den 
Würfel zu bedienen (Menü, Select und Würfeln) und einen weiteren für den 
Lautsprecher.

D.h. würde man über das hellere Würfelauge in der Mitte hinwegsehen, 
bräuchte es insgesamt 10 I/O Pins + 2 Pins für Vdd und GND. Wären 12 
Pins, im allerbesten Fall würde also ein 14 Pinner gehen (von dem ich 
keinen einzigen habe).

Solltest du allerdings eine andere Idee haben das doch mit einem 8 
Pinner zu lösen, laß mich das wissen.

By the way: Mein Sohn hat doch tatsächlich für den Würfel ein Gehäuse 
gedruckt und spielt damit mit meinem Enkel. (Versorgungsspannung 
geschieht aus 3 x AA Batterien).

Im Moment bin ich wieder daran, eine (eigene) Ladeelektronik für LiOn 
Akku's zu machen (hat schon 2 mal fehlgeschlagen => Akkus dann hinüber) 
mit nachgeschaltetem Step-Up Wandler (ja, ich weiß, dass es Module gibt, 
aber die will ich jetzt mal nicht, sondern ich will Ladeelektronik und 
Wandler auf einer Platine haben, zudem muß man die erhältlichen Module 
über einen Widerstand noch anpassen, weil diese vom Ladestrom zu einem 
18650 Akku passen  und nicht zu einem Miniaturakkupack).

Tim  . schrieb:
> Sehr schön, wieder ein PFS154 design zu sehen.

:-) ich hatte doch erst hier

Beitrag ""Intelligenter" Textdisplayadapter mit Padauk PFS154"

etwas mit PFS154 gepostet! Dieses "intelligente Display" habe ich dann 
doch tatsächlich (für mich) als erste Anwendung (ausser Spielzeug) auf 
Steckbrettversuchen im Einsatz.

von Tim  . (cpldcpu)


Lesenswert?

Ich hatte noch das hier im Hinterkopf:

https://cpldcpu.com/2015/05/24/plexingplus/

Damit würde man für 3 würfel 6 pins brauchen. Man müsste sich natürlich 
dann noch irgendetwas überlegen, um die Taster auszulegen. Aber das 
müsste schon irgendwie möglich sein.

Schöner displayadapter!

von Ralph S. (jjflash)


Lesenswert?

Tim  . schrieb:
> Ich hatte noch das hier im Hinterkopf:
>
> https://cpldcpu.com/2015/05/24/plexingplus/
>
> Damit würde man für 3 würfel 6 pins brauchen. Man müsste sich natürlich
> dann noch irgendetwas überlegen, um die Taster auszulegen. Aber das
> müsste schon irgendwie möglich sein.

Dein "PlexingPlus" habe ich mir jetzt angesehen und das ist schon heftig 
"tricky" (oder auf neudeutsch: ein heftiger Hack). Aber: erlaubt ist, 
was funktioniert. Allerdings wird dann ein einzelnes Auge eines Würfels 
dann immer mit 2 LED's angezeigt (rein optisch nicht so schön) und es 
ist schon "arg" (für mich), wenn man etwas zum "nichtleuchten" bringt, 
indem einfach die Versorgungsspannung nicht ausreicht (4 Leuchtdioden in 
Reihe).

Nicht falsch verstehen: Ich finde den Hack schon klasse! Aber für einen 
Würfel aufgebaut dann eher unschön. :-) au0erdem wäre dann ein 
zusätzliches Auslesen der Taster über genau die Anschlüsse der LED's ein 
wahrscheinlich noch größerer Hack. Zu guter Letzt: wo nehme ich den Pin 
her, auf dem die Tonfrequenz für den Lautsprecher (für das Ausrollen der 
Würfel sowie als akkustische Anzeige für Laustsprecher enable/disable) 
her?

:-) aber man kann sich ja mal - rein zum Spaß - das Hirn zermartern wie 
das auch mit einem 8 Pinner funktionieren könnte.


Allerdings: Warum solche Klimmzüge unternehmen, wenn der 16 Pinner nicht 
mehr kostet als der 8 Pinner und auch nicht wirklich mehr Platz auf der 
Platine einnimmt?

Zudem, und das ist der Grund, warum auf dem PCB die LED-Stränge auf Pins 
geführt wurden, soll die Platine auch noch als billige Grundlage dienen 
um Programmierübungen auf einem Steckbrett vorzunehmen, Hier wird dann 
der PFS154 nicht bestückt.

Aber... ich werde jetzt - wie oben geschrieben nur zum Spaß - einmal 
"hirnen", ob alles zusammen auch in einem 8 Pinner ohne zusätzlichen IC 
realisierbar wäre.

Tim  . schrieb:
> Schöner displayadapter!


:-) dankeschön

von Tim  . (cpldcpu)


Lesenswert?

Ralph S. schrieb:
> Tim  . schrieb:
>> Ich hatte noch das hier im Hinterkopf:
>>
>> https://cpldcpu.com/2015/05/24/plexingplus/
>>
>> Damit würde man für 3 würfel 6 pins brauchen. Man müsste sich natürlich
>> dann noch irgendetwas überlegen, um die Taster auszulegen. Aber das
>> müsste schon irgendwie möglich sein.
>
> Dein "PlexingPlus" habe ich mir jetzt angesehen und das ist schon heftig
> "tricky" (oder auf neudeutsch: ein heftiger Hack). Aber: erlaubt ist,
> was funktioniert. Allerdings wird dann ein einzelnes Auge eines Würfels
> dann immer mit 2 LED's angezeigt (rein optisch nicht so schön) und es
> ist schon "arg" (für mich), wenn man etwas zum "nichtleuchten" bringt,
> indem einfach die Versorgungsspannung nicht ausreicht (4 Leuchtdioden in
> Reihe).
>
> Nicht falsch verstehen: Ich finde den Hack schon klasse! Aber für einen
> Würfel aufgebaut dann eher unschön. :-) au0erdem wäre dann ein
> zusätzliches Auslesen der Taster über genau die Anschlüsse der LED's ein

Der Smiley in meinem Originalpost war nicht ohne Grund da :). Natürlich 
ist es kein "besserer" Weg, einen elektronischen Würfel zu bauen, 
sondern nur einer der mehr Herausforderungen mit sich bringt. Aber das 
ist ja der Spass daran.

Das hier hatte ich bestimmt auch schon einmal verlinkt?

https://hackaday.io/project/183938-circuit-golf-electronic-dice-edition

> wahrscheinlich noch größerer Hack. Zu guter Letzt: wo nehme ich den Pin
> her, auf dem die Tonfrequenz für den Lautsprecher (für das Ausrollen der
> Würfel sowie als akkustische Anzeige für Laustsprecher enable/disable)
> her?

Guter Punkt 🤔

von Ralph S. (jjflash)


Lesenswert?

Tim  . schrieb:
>> wahrscheinlich noch größerer Hack. Zu guter Letzt: wo nehme ich den Pin
>> her, auf dem die Tonfrequenz für den Lautsprecher (für das Ausrollen der
>> Würfel sowie als akkustische Anzeige für Laustsprecher enable/disable)
>> her?
>
> Guter Punkt 🤔

Hey (lach, nicht ganz ernst nehmen): Punkt, Satz und Sieg (für mich 
natürlich).

Aber im Ernst, ich hab mir jetzt wirklich überlegt, wie man nach deiner 
Vorlage da jetzt noch 4 Tasten unterbringen könnte (und mir fällt da 
nicht wirklich etwas ein).

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.