Gezinkter Würfel
Lösung von Teilnehmer Martin
Auf Knopfdruck (bzw dem Touchsensor) und mit sieben LEDs wird der Wurf eines Würfels simuliert. Aber das ist nicht alles - wie bei Spieltischen, wo man die Würfel mit einem Magneten beeinflussen kann (kennt ihr sicher aus diversen Hollywood-Filmen), kann man auch hier mithilfe eines Magneten den LED-Würfel dazu bringen, nur noch Sechser zu würfeln.
Spielanleitung:
- Die Beschaltung aufbauen
- Die XML-Datei in ArduBlockly öffnen, und auf den ESP-32 hochladen. Dazu sind keine besonderen Bibliotheken notwendig. Hier der Ardublockly-Code auch als Screenshot.
- Den Touchsensor berühren - solange er aktiv ist, flimmern die LEDs und Zufallszahlen werden berechnet.
- Touchsensor loslassen - die Würfelzahl wird mit den LEDs, und zusaetzlich auch im seriellen Monitor angezeigt.
- berührt man den Touchsensor erneut, wird wieder neu gewürfelt
- hält man einen Magneten an den Magnetsensor (egal ob mit Nord- oder Südpol), wird geschummelt - jeder Wurf wird nun zu einer Sechs
Benötige Materialien:
- ESP-32 Mikrocontroller
- Steckbrett
- 9 Steckkabel
- 7 LEDs in beliebiger Farbe
- 5 Widerstände 220 Ohm (Farbe rot rot schwarz schwarz)
- ein Stück Alufolie als Touchpad
- ein Magnet (zB ein Kühlschrankmagnet)
Aufbauanleitung:
- Die sieben LEDs werden nach dem Layout (siehe Foto) in das Steckbrett gesteckt. Die linke mittlere und die linke untere LED teilen sich den Minuspol (dieser steckt in derselben Spalte; plus geht einmal nach links und einmal nach rechts). Ebenso die rechte mittlere und rechte untere LED. (normalerweise sollte jede LED einen eigenen Vorwiderstand haben, aber so geht es auch und ist einfacher unterzubringen)
- die fünf Widerstände verbinden die Minuspole der LEDs mit der Minus-Leitung des Steckbretts. Die linke obere, die rechte obere und die LED in der Mitte haben einen eigenen Widerstand. Die linke mittlere und die linke untere teilen sich einen Widerstand, und ebenso die die rechte mittlere und rechte untere LED.
- Pin G13 (T4) wird über ein Kabel (bei mir ein blaues) an die Alufolie als Touchsensor angeschlossen.
- Pin GND ... wird mit einem schwarzen Kabel eine Verbindung zur Minus-Leitung des Steckbretts verbunden
- Pin G12 ... ein gelbes Kabel führt zur linken oberen LED
- Pin G14 ... ein weißes Kabel führt zur linken mittleren LED
- Pin G27 ... ein oranges Kabel führt zur linken unteren LED
- Pin G26 ... ein gelbes Kabel führt zur rechten oberen LED
- Pin G25 ... ein weißes Kabel führt zur rechten mittleren LED
- Pin G33 ... ein oranges Kabel führt zur rechten unteren LED
- Pin G32 ... ein rotes Kabel führt zur LED in der Mitte
(schaut euch auch die Bilder an)
Anmerkungen:
Wenn Ihr zuwenig LEDs oder Widerstände habt, könnt Ihr diese auch weglassen und die Ausgabe nur im seriellen Monitor ansehen.
Mit den LEDs ist es aber natuerlich schöner :)
Auch die Alufolie kann weggelassen werden, notfalls reicht auch das Kabel alleine.
Der Code ist typischer "Spaghetti-Code", da ArduBlockly die Pins nicht über eine Variable ansteuern kann sondern nur über eine fixe Zahl im Block. Mit einer Variable wäre es viel eleganter umsetzbar gewesen.
Der Zufallszahlengenerator ist alles andere als zufällig, er gibt immer dieselbe Zahlenfolge aus (zumindest bei meinem ESP-32 mit Ardublockly). Man sollte den Touchsensor daher etwas länger berühren, damit die Zahl zufälliger wird.