Inhoudsopgave:
- Benodigdheden
- Stap 1: Stap 1: Sluit componenten aan
- Stap 2: Stap 2: Sluit 8x8 Led Matrix aan op Arduino
- Stap 3: Stap 3: Sluit de roterende encoder aan
- Stap 4: Stap 4: Knop en VCC
- Stap 5: Stap 5: de code
- Stap 6: Stap 6: Maak het mooi…
Video: E-dice - Arduino Die/dice 1 tot 6 dobbelstenen + D4, D5, D8, D10, D12, D20, D24 en D30 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Dit is een eenvoudig Arduino-project om een elektronische dobbelsteen te maken. Het is mogelijk om te kiezen voor 1 t/m 6 dobbelstenen of 1 van de 8 speciale dobbelstenen. De keuze wordt gemaakt door simpelweg aan een encoder te draaien.
Dit zijn de kenmerken:
- 1 dobbelsteen: grote stippen laten zien
- 2-6 dobbelstenen: zowel punten als totale waarde (afwisselend)
- 4, 5, 8, 10, 12, 20, 24 en 30 gefacetteerde dobbelstenen tonen waarde en indicator voor gekozen dobbelsteen
- animatie voor het gooien van dobbelstenen bij het indrukken van de knop
Het is mogelijk om alles in een kubus van 7 cm bij 7 cm te plaatsen, inclusief een batterij. Maar dan zou je alles moeten solderen. Ik gebruikte een breadboard en wat jumperdraden om alles aan te sluiten, vandaar de grotere doos eronder.
Om de arduino willekeurige getallen te seeden, gebruikte ik de uitlezing van een niet-verbonden vrije pin.
Opmerking: deze instructable laat je elke stap zien om de e-dice te laten werken. Ik zal een pdf toevoegen met een basispatroon voor de doos, echter zonder verdere instructies. Door een laag papier over de led-matrix te leggen, maak je cijfers en resultaten beter zichtbaar.
Opmerking 4 weken later: ik heb dit project geport naar een attiny85-chip, met gebruik van een progmem en een spanningsdeler om de reset-pin te omzeilen en te gebruiken als een knop-pin. Neem contact met mij op voor meer informatie.
Benodigdheden
- arduino (ik gebruikte een nano)
- roterende encoder (of click-encoder maar we gebruiken de push-functie niet)
- druk op de knop
- 8 x 8 led-matrix met MAX7219-module (minder pinnen nodig! 3 in plaats van 8)
- draad jumpers
Stap 1: Stap 1: Sluit componenten aan
-
Sluit alle componenten aan zodat geen van de pinnen met elkaar verbonden is. (Gaten a t/m e zijn aangesloten per regelnummer, idem voor gaten f t/m j)
- De arduino nano gaat aan de bovenkant met pinnen aan beide zijden van de centrale pin.
- De (klik)encoder of roterende encoder gaat naar links
- De led-matrix aan de rechterkant:
- Drukknop onderaan voor gemakkelijke toegang (bepaal welke contacten geopend worden door te drukken)
- Gebruik een stuk draad om de twee "+" lijnen te verbinden
- Doe hetzelfde voor de twee "-" lijnen (aarde of gnd)
Stap 2: Stap 2: Sluit 8x8 Led Matrix aan op Arduino
We gebruiken een led-matrix met een MAX72XX-driver. We kunnen 5 pinnen sparen en hoeven niet te multiplexen.
Het is mogelijk om meerdere matrices aan te sluiten op één MAX72xx driver. Hiervoor is er een "OUT" en "IN" kant. We gebruiken alleen de "IN" pinnen.
Deze pinnen worden in het breadbord geduwd. Je kunt de pinnamen net onder de led-matrix zelf zien. Alles moet worden aangesloten:
- VCC naar 5V ("+"-lijn)
- GND naar GND ("-"-regel)
- DIN naar Arduino D12 (oranje jumper)
- CS naar Arduino D10 (groene jumper)
- CLK naar Arduino D11 (witte jumper)
Stap 3: Stap 3: Sluit de roterende encoder aan
Ik gebruikte een roterende klik-encoder. Deze encoders hebben een extra push-functie (en extra pin) die we in dit project niet gebruiken. Je zou kunnen doen met een gewone roterende encoder.
Als u aan de knop draait, geeft de encoder + of - signalen ten opzichte van de oorspronkelijke positie. U kunt inkepingen voelen bij het draaien. In mijn geval ontdekte ik met Serial.print() dat de encoder 4 stappen gaf voor elke inkeping. Je moet dit aanpassen als sommige dobbelstenen worden overgeslagen. (Zie code)
Sluit de encoder als volgt aan:
- GND naar GND ("-"-lijn) (klein stukje zwarte draad)
- + tot 5V ("+"-lijn) (stukje rode draad)
- SW naar niets (dit is de schakelaar, die we niet gebruiken.)
- DT naar A1 (oranje jumper)
- CLK naar A0 (witte jumper)
Stap 4: Stap 4: Knop en VCC
In mijn eerste versie gebruikte ik een knop met een extra weerstand. In de arduino IDE kunt u echter het gebruik van een pull_up-weerstand instellen. Hiermee heb je geen extra weerstand nodig, maar moet je een kleine inverse doen in de code, lezend deze knop.
Verbind eenvoudig het ene uiteinde van de knop met GND ("-"-lijn) en het andere uiteinde met D2 (blauwe jumper).
De laatste verbinding die gemaakt moet worden: een draad van de Arduino 5V naar de "+"-lijn voor het gebruik van de gereguleerde 5V van de arduino.
Na deze stappen zijn alle verbindingen gemaakt om een werkende versie te maken.
Opmerking: je zou een batterij kunnen toevoegen. Sluit de batterij met + aan op VIN en - op GND ("-"-lijn).
Stap 5: Stap 5: de code
Open de Arduino-IDE.
De zip-bestanden voor de bibliotheken die niet beschikbaar zijn, kunt u downloaden via het 'Bibliotheekbeheer' in de IDE.
Zorg ervoor dat u de volgende bibliotheken toevoegt via "Bibliotheekbeheer" of voeg de bibliotheek handmatig toe in de IDE:
LedControl door Eberhard Fahle v1.0.6
-
TimerOne door Jesse Tane, Jérôme Despastis, … (Ik heb handmatig versie r11 gedownload en geïnstalleerd van:
code.google.com/archive/p/arduino-timerone…
- Encoder door Peter Dannegger gevonden op
Ik gebruik de bibliotheek van Peter Danneggers omdat hij een functie heeft toegevoegd om de versnellingsgevoeligheid van de encoder te geven: sneller draaien zorgt ervoor dat de getallen sneller stijgen.
Zodra deze bibliotheken zijn geïnstalleerd, zou u het bestand edice.ino moeten kunnen openen en compileren.
Stap 6: Stap 6: Maak het mooi…
Ik vind het leuk om mijn Arduino's opnieuw te gebruiken, dus ik soldeer zelden een project of doe mijn best om het er mooier uit te laten zien. Ik hou van de nerdy-stijl van draden en jumpers …
Ik heb echter dit kleine sjabloon gemaakt om alle componenten te bevatten. Als je de doos met de nummers 30 t/m 4 gedrukt op wit papier over de matrix plaatst, leiden de losse led-omhulsels minder af. Als bonus laten de leds in de bovenste rij zien welke van die speciale dobbelstenen is gekozen.
EDIT: Ik heb een versie gemaakt met een attiny85 digistump vonk, in een mooie lasercut doos. De knop wordt gebruikt om zowel de dobbelsteen als een drukknop te kiezen.