DEUTSCHE GESELLSCHAFT FÜR ZERSTÖRUNGSFREIE PRÜFUNG E.V. ZfP-Sonderpreis der DGZfP beim Landeswettbewerb Jugend forscht SCHÜEX MECKLENBURG-VORPOMMERN Würfel für Jung und Alt Damian Schottowski Schule: CJD Christophorusschule Rostock Jugend forscht 2014
Schüler experimentieren 2014 von Damian Schottowski unterstützt vom RFZ Rostock-Reutershagen 1
Inhaltsverzeichnis Einleitung Seite 3 Gehäusebau Seite 3 Funktionsweise Seite 4 Schaltung1 Seite 6 Schaltung2 Seite 7 Zwei in Eins- Ein Programm für beide Anzeigevarianten Seite 8 Zusammenfassung Seite 9 Anhang Seite 10 2
Einleitung Nach der Teilnahme an schüler experimentieren im letzten Jahr (Bau einer Verkehrsampel für Grundschulen und Kindergärten) habe ich mir überlegt, was man noch mit dem PICAXE08M anstellen kann, eine Alarmanlage oder ein Morsegenerator oder einen elektronischen Würfel? Ich habe mich für den elektronischen Würfel entschieden. Zur Hilfe bei dieser Entscheidung kam mir die Tatsache, dass die Würfel beim Spielen sehr oft vom Tisch fallen. Manchmal liegt der Würfel sogar unter dem Sessel oder der Couch. Das soll mein Würfel verhindern. Eine Besonderheit hat mein Würfel noch. Ich will, dass der Würfel die gewürfelte Ziffer anzeigt oder die bekannte Augenzahlanzeige darstellt. Dazu kann ich die Anzeige, die den Deckel meines Würfels darstellt, auswechseln. Gehäusebau Ich habe den Würfel aus Wellpappe gebaut, weil diese sehr leicht zu bearbeiten und umweltverträglich zu entsorgen ist. Wellpappe ist außerdem sehr gut erhältlich. Bei jedem Paket das zuhause ankommt, kann man sich ein bisschen glatte Wellpappe abschneiden und weglegen. Mein Würfel ist 10,5cm(Kantenlänge) breit. Ohne Deckel ist er 9cm hoch, mit Deckel ist er auch 10,5cm hoch. Auf der Abbildung sieht man wie ich den Rand von dem Deckel zuschneide. 3
So sieht der fertige Würfel aus und der Batterieschalter ist auch schon zu sehen. Funktionsweise Ein Würfel muss mit Zufallszahlen arbeiten, also habe ich zuerst überlegt, wie man diese erzeugen kann. In den meisten Fällen erzeugt ein Computer eine Zufallszahl zwischen 0 und 1. Diese muss man noch mit 6 multiplizieren und hat dann Zahlen zwischen 0 und 5,999. Wenn ich zur Zufallszahl noch 1 addiere, habe ich Zahlen zwischen 1 und 6,999. Von diesen Zahlen wird nur der ganzzahlige Teil verwendet. Dadurch bekommt man Zahlen von 1 bis 6. Die Random-Funktion des PICAXE erzeugt aber Zufallszahlen zwischen 0 und 65535 (2 16 =16 bit) The random command generates a pseudo-random sequence of numbers between 0 and 65535. (Aus dem PICAXE-Manual) Hieraus musste ich die Zufallszahl für meinen Würfel entwickeln. Zuerst habe ich die Zahl durch 10000 geteilt, denn der PICAXE arbeitet nur mit Ganzzahlen. Dabei habe ich aber festgestellt, dass 7 Zahlen (0-6) auftreten. 0-9999 liefert 0 10000-19999 -> 1 20000-29999 -> 2 30000-39999 -> 3 40000-49999 -> 4 50000-59999 -> 5 60000-65535 -> 6 Tabelle 1 Ich habe dann die 65535 durch 6 geteilt und 10922,5 erhalten. Die neue Tabelle ergibt sich, wenn ich die 65535 durch 10923 teile: 0-10922 liefert 0 10923-21845 -> 1 21846-32768 -> 2 32769-43691 -> 3 43692-54614 -> 4 54615-65535 -> 5 Tabelle 2 4
Zu diesen Zahlen addiere ich noch 1 und erhalte dadurch die Würfelzahlen von 1 bis 6. Wenn hier auch nicht alle Zahlen gleichhäufig auftreten, haben aber alle Mitspieler die gleichen Chancen. Das nächste Problem hatte ich bei der Ausgabe an die einzelnen Pins. Bei meinem vorherigen Projekt (Ampel) habe ich jedem Pin an(high) oder aus (low) zugewiesen. Bei drei Farben war das kein Problem. Für meine 6 Zufallszahlen verwende ich den Befehl PINS. Dieser Befehl legt die gewürfelte Zahl gleich als Binärzahl an die richtigen Pins. Binärzahlen 0 -> 0000 1 -> 0001 2 -> 0010 3 -> 0011 4 -> 0100 5 -> 0101 6 -> 0110 Tabelle 3 Man sieht, dass die 4. Stelle schon nicht mehr gebraucht wird, also kommt man mit den 3Anschlüssen Pin0 bis Pin2 aus. Wird z. B. eine 5 gewürfelt, bedeutet das, dass Pin0 high ist und Pin2 high ist, wenn der Befehl PINS=5 lautet. Die drei Anschlüsse Pin0 bis Pin2 werden an einen BCD-7Segment-Decoder angeschlossen und dieser an eine Ziffernanzeige. Hier auf dem Bild sieht man, wie ich einen PICAXE an Elemente eines Elektronikbaukastens angeschlossen habe. Jetzt soll alles in meinen Würfel eingebaut werden. Eine Flachbatterie, der programmierte Microcontroller und die Anzeige. Die Anzeige wird über einen 9-poligen Stecker mit dem PICAXE verbunden. Für den Stecker habe ich meine eigene Anschlussbelegung festgelegt. 1- Masse 2- nicht belegt 3- nicht belegt 4- Würfeltaster (Pin3) 5- Plus 6- Pin0 7- Pin1 8- Pin2 9- Pin4 Tabelle 4 5
Über diesen Stecker kann ich meine beiden Anzeigen anschließen. Für die Ziffernanzeige habe ich die erste Schaltung gebaut. Der V40511 ist ein Wandler von Binärzahlen zu einer Ziffer. Die Ziffer ist eine VQB27, bei der alle Leuchtbalken eine gemeinsame Katode haben. Schaltung1 Für die echte Würfelanzeige ist es aber schwieriger mit dem PICAXE zu arbeiten, denn der nächste Anschluss Pin3 ist nur als Eingang zu benutzen. Ich brauchte also Pin4 als zusätzlichen Ausgangsanschluss. An allen Ausgängen sind 2 Leuchtdioden angeschlossen (zu LED1 habe ich die LED8 geschaltet, die aber nicht zu sehen ist, um für alle Pins gleiche Bedingungen zu haben) Welche Dioden leuchten? 6
gewürfelte Zahl PINs binary dezimal 1- LED 1 0 00001 1 2- LED 2, 3 1 00010 2 3- LED 1, 2, 3 0, 1 00011 3 4- LED 2, 3, 4, 5 1, 2 00110 6 5- LED 1, 2, 3, 4, 5 0, 1, 2 00111 7 6- LED 2, 3, 4, 5, 6, 7 1, 2, 4 10110 22 Tabelle 5 Die in der Tabelle 5 dargestellten Dezimalzahlen brauche ich für mein Programm. Auszug aus dem Programm Eins: Pins=1 Zwei: Pins=2 Drei: Pins=3 Vier: Pins=6 Fuenf: Pins=7 Sechs: Pins=22 Das vollständige Programm für beide Anzeigen befinden sich im Anhang. Schaltung2 Die Veränderungen gegenüber der ersten Schaltung sind nur auf der Anzeigeseite. Die PICAXE-Seite bleibt unverändert. 7
Draufsicht auf den normalen Würfel. Zwei in Eins- Ein Programm für beide Anzeigevarianten Wie erkennt der Microcontroller aber, welche Anzeige angesteckt ist? Dazu verwende ich beim Start des kompletten Programms den Pin3 als Eingang. Es wird die Eingangsspannung einer Zahl b6 zugeordnet. Ist b6 kleiner 80, wird die Würfelanzeige verwendet, ist b6 größer 80, wird die Ziffernanzeige verwendet(wird erreicht durch einen Widerstand, der von Pin3 zu Plus geht). Wenn das Programm weiterläuft, wird Pin3 auch als Ausgang geschaltet. Im Programmauszug für die Zahlen 5 und 6 sieht man, wie die Werte für die Pins umgeändert werden. 8
Fuenf: Pins=5 if b6<80 then gosub fuenf1 fuenf1: Pins=7 Sechs: Pins=6 if b6<80 then gosub sechs1 sechs1 Pins=22 Zusammenfassung Ich habe einen elektronischen Würfel gebaut, der mit Ziffernanzeige oder der bekannten Augenzahl funktioniert. Er kann einfach auf den Tisch gestellt werden und braucht keinen Netzanschluss. Die Anzeige des Wurfes als Binärzahl habe ich aber weggelassen, da sie beim Spielen sicher nicht interessant ist. Wichtig ist nur, dass dieser Würfel nicht vom Tisch fallen soll. Warum habe ich den PICAXE verwendet? Er ist so einfach zu programmieren und man braucht dazu kein Programmiergerät. Auch für moderne Computer gibt es einen USB-COM- Adapter, so dass man weiter die einfache Schaltung verwenden kann. 9
Anhang Programm für beide Anzeigen 'PICAXE08M2 Dirs=%00010111 'w0 ist die Zufallszahl also b0 und b1; b für Byte und w für Wort (2Byte) Symbol zahl=b2 Symbol i=b3 'also ist w1 weg Symbol p=w2 'also b4 und b5 weg main: readabc 4,b6 start: Pins=0 if pin3=1 then gosub Wurf goto start Wurf: for i=1 to 10 random w0 zahl=w0/10923+1 if Zahl=1 then gosub Eins if Zahl=2 then gosub Zwei if Zahl=3 then gosub Drei if Zahl=4 then gosub Vier if Zahl=5 then gosub Fuenf if Zahl=6 then gosub Sechs p=100*i Pause p next i Pause 10000 Eins: Pins=1 Zwei: Pins=2 Drei: Pins=3 Vier: Pins=4 if b6<80 then gosub vier1 vier1: Pins=6 Fuenf: Pins=5 10
if b6<80 then gosub fuenf1 fuenf1: Pins=7 Sechs: Pins=6 if b6<80 then gosub sechs1 sechs1 Pins=22 Verwendung des PICAXE08M 1) Aus dem Internet ist von der Seite http://www.picaxe.com/software/picaxe/picaxe- Programming-Editor/ herunterzuladen. 2) Es ist ein einfaches Programmiermodul zu bauen. an braucht also nur eine Flachbatterie, 2 Widerstände und einen COM-Stecker z. B. ein alter Mausstecker 3) Anschließen an den Computer und das Programm übertragen. 11