Forum: Mikrocontroller und Digitale Elektronik Rollenspielwürfel


von Michael M. (bruckschi)


Lesenswert?

Guten Tach,

ich spiel sehr gerne Rollenspiele, bei denen man mit 2 Würfeln muss. 
Einen 6er und einen 20er, nun habe ich mir gedacht ich Programmier mir 
einen PIC(kann nur PIC programmieren) der für mich würfelt. Da der 
Würfel ein paar spezielle Funktionen haben soll, benötige ich Hilfe.

Es soll 2 Taster geben, einen für den 6er Würfel und einen für den 20er 
Würfel, 2 7-Segmentanzeigen zum anzeigen der Zahlen. Wenn ein Taster 
gedrückt würde, leuchtet die Anzeige komplett, nach dem loslassen des 
Tasters soll der Würfel langsam ausrollen. Ist der Würfel ausgerollt, 
soll die Anzeige 2mal Blinken und am besten noch über einen kleinen 
Lautsprecher ein Ton ausgegeben werden.

Mit freundlichen Gruß
Michael Brucksch

von mr.chip (Gast)


Lesenswert?

Schön ja. Und wo liegt jetzt das Problem? :-)

von Ralph (Gast)


Lesenswert?

Das Problem steht nicht da, es ist die "wirkliche" Zufallszahl.

von Stefan M. (Gast)


Lesenswert?

Naja die ist relativ einfach machbar, einfach ein Timer der durchzählt.

Bei mehreren MHz und einer normale Geschwindigkeit von vielleicht 1x 
drücken in 5sekunden ist da der zufall doch schon ziemlich gegeben...

von MichiB (Gast)


Lesenswert?

Die eigentliche Frage ist doch wie ein 20er Würfel
aussieht?

von Thomas B. (yahp) Benutzerseite


Lesenswert?

MichiB wrote:
> Die eigentliche Frage ist doch wie ein 20er Würfel
> aussieht?

Ähm, ja wie? Halt mit Zahlen von 1 bis 20. Wo ist das Problem?

Ansonsten wie von Stefan M. beschrieben ausprobieren. Zehntausendmal 
drücken und aufschreiben, dann bekommt man schon ein Gefühl, ob es für 
ein Spiel zufällig genug ist ;-)

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Man kann auch den floatenden Pin eines AD-Wandlers nutzen, dann hat man 
zufälliges (kosmisches) Rauschen...

von Frank L. (hermastersvoice)


Lesenswert?

ein Würfel hat doch aber per Definition nur 6 Seiten. Schreibt man da 
mehrere Zahlen auf eine Seite und sucht sich dann die passendste aus? 
Wem der Zufall mit floatendem AD-Pin noch nicht zufällig genug ist 
könnte auch einen Transistor vor sich hinrauschen lassen und per AD 
abtasten. Man kanns aber auch direkt mit dem Controller machen wenns 
kein analoger Zufall sein muss. Hier http://mondo-technology.com/ ist 
unter Tricks und Tips sowas fürn PIC beschrieben.

bye

Frank

von Jan (Gast)


Lesenswert?

Rollenspiel"würfel" gibt hier, für alle die nicht sehen wie sowas 
aussieht....
http://www.larisweb.de/rollenspiel/wuerfel.php

und Ja, die heissen nur so, was noch lange nicht bedeutet dass sie auch 
WÜRFELförmig sind...;-)

von Lucky (Gast)


Lesenswert?

>>> zufälliges (kosmisches) Rauschen...

ist wohl eher ein komisches Rauschen ;)

von Sebastian E. (der_andere_sebastian)


Lesenswert?

Wahrscheinlich wird das mit dem Speicher des PIC etwas knapp, aber man 
könnte, was das Ausrollen angeht, eine Vorüberlegung anstellen, auf 
welche angrenzenden Seiten der Würfel von einer bestimmten Seite aus 
kippen kann. Dann wird das vielleicht realistischer aussehen. 
Andererseits merkt wahrscheinlich kein Mensch, daß es einfach nur 
Zufallszahlen sind, die immer langsamer durch das Display laufen.
Das in Assembler zu programmieren, ist durchaus eine schöne 
Übungsaufgabe. Displayansteuerung (ggf. Multiplexbetrieb über 
Timer-Interrupt, oder statisch mit externen BCD-Decodern), 
(Pseudo)-Zufallszahlen, Tastenabfrage, Umgang mit Verzögerungsschleifen 
und Zählvariablen...
Wenn ich Zeit hätte, würde mich das als Aufgabe sogar reizen... aber ich 
muß die nächsten Tage noch 2 Layouts zeichnen, sorry. Vielleicht fühlt 
sich ja jemand anders motiviert.

von Peter D. (peda)


Lesenswert?

Stefan M. wrote:
> Naja die ist relativ einfach machbar, einfach ein Timer der durchzählt.


Nein das ist überhaupt nicht einfach!

Du mußt auch vom Programmablauf her sicherstellen, daß die Chancen, 
einen Zustand zu erwischen exakt gleich sind.

Auch kann durch die unterschiedliche Stromaufnahme der LED-Ziffern eine 
Verschiebung der Schaltschwelle des Tasteneingangs erfolgen, d.h. 
bestimmte Ziffern werden bevorzugt, je nach Entladungsgrad der Batterie.


Hier mal ein funktionierendes Beispiel:

http://home.tiscali.de/peterd/appl/soft/c51/dice/index.htm


Peter

von Klaus (Gast)


Lesenswert?

Interessantes Projekt. Machbar auf alle Fälle.

Aber ich finde ja, dass Rollenspiele etwas an Flair verlieren, wenn man 
nicht mehr mit echten Würfeln spielt. :)

von Peter (Gast)


Lesenswert?

Ich kenn jetzt nur die AVR-Hardware. Aber da würd ich einen Timer nehmen 
und den im CTC-Modus bis zum Höchstwert des Würfels* laufen lassen. Dann 
den Taster an einen Input-Capture-Pin. Dann müsste die 
Wahrscheinlichkeit doch ausreichend gleich verteilt sein.


*natürlich Höchstwert - 1

von Peter D. (peda)


Lesenswert?

Sebastian E. wrote:
> Wahrscheinlich wird das mit dem Speicher des PIC etwas knapp

Warum sollte es?

Mein C51-Programm benötigt 5 Byte SRAM und 206 Byte Flash.
Ich glaube nicht, daß es einen PIC gibt, der weniger Speicher hat.


Peter

von Frank E. (erdi-soft)


Lesenswert?


von Sebastian E. (der_andere_sebastian)


Lesenswert?

@Peter:

Nein, ich meine nicht, daß der Speicher für das Würfelprojekt allgemein 
zu knapp ist. Lediglich eine realistische "Ausrollsimulation" in 
Tabellenform wird, insbesondere beim 20seitigen, etwas Programmspeicher 
verbrauchen. Bei einem 16C54 oder 16C505 kann es dann, zusammen mit der 
7-Segment-Tabelle, vielleicht zu knapp werden. Aber gut, PIC kann 
genausogut ein 16F876 sein. Dann reicht's immer.

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Kein Hobbybastler programmiert mit den 16C PICs! Und ein 16F628 (welchen 
ich wohl dazu nehmen würde) hat 2K Flash und 224 Byte RAM. Das sollte ja 
wohl ausreichen für dieses Projekt.

Und PIC kann auch ein dsPIC33 FJ256GP710 sein, der hätte dann 256kByte 
Flash und 30kByte RAM wäre aber hier wohl etwas überperformt.

Sven

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.