mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rollenspielwürfel


Autor: Michael Maier (bruckschi)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön ja. Und wo liegt jetzt das Problem? :-)

Autor: Ralph (Gast)
Datum:

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

Autor: Stefan M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: MichiB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die eigentliche Frage ist doch wie ein 20er Würfel
aussieht?

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Alex Bürgel (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite
Datum:

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

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...;-)

Autor: Lucky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>> zufälliges (kosmisches) Rauschen...

ist wohl eher ein komisches Rauschen ;)

Autor: Sebastian E. (der_andere_sebastian)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. :)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektor hatte das mal als Projekt:

http://www.elektor.de/jahrgang/2003/februar/elektr...

Autor: Sebastian E. (der_andere_sebastian)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.