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
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...
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 ;-)
Man kann auch den floatenden Pin eines AD-Wandlers nutzen, dann hat man zufälliges (kosmisches) Rauschen...
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
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...;-)
>>> zufälliges (kosmisches) Rauschen...
ist wohl eher ein komisches Rauschen ;)
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.
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
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. :)
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
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
Elektor hatte das mal als Projekt: http://www.elektor.de/jahrgang/2003/februar/elektronischer-super-wurfel.62051.lynkx
@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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.