Dobbelstenen

Dobbelstenen zijn leuk om te maken. Je kunt ze eenvoudig bouwen op een breadboard. Als ze eenmaal goed werken is het leuk om ze in een doosje te bouwen..
De meeste elektronische dobbelstenen lijken op een echte dobbesteen, dat wil zeggen dat de lampjes aan gaan in dezelfde vorm als bij een echte dobbelsteen. Daarvoor zijn 7 lampjes (ledjes) nodig. Bij de fantasiedobbelsteen kun je met 6 ledjes volstaan. De meeste dobbelstenen hebben gewoon een drukschakelaar om ze te "rollen", sommige een aanraakschakelaar of een infrarood afstandsschakelaar. Ook is het mogelijk een dobbelsteen te laten rollen door deze te schudden. Voorbeelden hiervan komen later.

Klassieke dobbelstenen met één kleur ogen

Klassieke dobbelstenen met vier kleuren

moeilijkmoeilijk
Erg leuk voor mens-erger-je-niet. De kleur van de ledjes is hetzelfde als die van de poppetjes van de speler die aan de beurt is.

Maar..... dit moet ik nog wel afmaken (kan nog enkele weken duren). Scroll vast verder naar beneden.


Fantasie dobbelstenen

eenvoudigeenvoudig
Je hebt 3 ogen gegooid...
Een dobbelsteen met 6 ogen is makkelijker te maken dan met 7 ogen. Deze dobbelsteen lees je net zo gemakkelijk af als een klassieke dobbelsteen, hoewel het patroon van de ogen anders is. Ik heb een goedkope Arduino pro mini gebruikt. Je kunt gerust een Arduino nano of andere kleine Arduino nemen: de code en aansluitingen blijven hetzelfde. Soldeer de korte pootjes van de leds vast aan een weerstand van bijvoorbeeld 330Ω en verbind de andere kant van alle weerstanden met elkaar. Daarnaan komt de draad naar GND van de Arduino. De lange poot van de ledjes sluit je via een draadje aan op de pinnen 2 t/m 7. De drukschakelaar verbind je met pin 9 en en GND. Ik gebruik heldere ledjes. Deze geven erg mooi licht, maar dat is op foto's of films (zelfs met zware onderbelichting) niet in te beeld te brengen. Houd er rekening mee dat deze ledjes zeer fel zijn. Als je de dobbelsteen bij daglicht gebruikt dan is dat prima, maar anders kun je beter grotere weerstanden aansluiten of gewone leds gebruiken. Nu moet je de Arduino programmeren. Als alles werkt zoals je verwacht dan kun je de batterij via een schakelaar aansluiten. Je hoeft maar twee pootjes van de schakelaar te gebruiken. Ik heb de schakelaar in de zijkant van het doosje gemaakt, dus niet in de deksel (op de foto zie je de zwarte schakelaar aan de rechterkant). Sluit de minpool van de 9V blokbatterij aan op GND van de Arduino en de pluspool op de schakelaar. De andere poot van de schakelaar sluit je aan op de
RAW aansluiting Als RAW er niet is gebruik je VIN
van de Arduino (NIET op VCC !). Een schakelaar is nodig, omdat de Arduino veel stroom trekt. Zet de dobbelsteen dus na gebruik uit.
// sketch voor de dobbelsteen met 6 ogen
void setup() {
  pinMode(9, INPUT_PULLUP);
  for (int i = 2; i < 8; i++) pinMode(i, OUTPUT);
}

void loop() {
  randomSeed(analogRead(A0)); // Kies willekeurig beginwaarde
  digitalWrite(13, LOW);
  while (digitalRead(9) == HIGH); // Wacht tot de knop is ingedrukt
  int r = random(1, 7); // Kies 1, 2, 3, 4, 5 of 6
  for (int i = 2; i < 8; i++) digitalWrite(i, LOW); // Zet alle ogen uit
  for (int i = 0; i < 10; i++) { // Laat ogen "rondgaan"
    digitalWrite(2 + i % 6, HIGH); delay(300); digitalWrite(2 + i % 6, LOW);
  }
  draw(r);
}

void draw(int i) {
  switch (i) {
    case 1: digitalWrite(2, HIGH); break;
    case 2: digitalWrite(3, HIGH); digitalWrite(7, HIGH); break;
    case 3: digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); break;
    case 4: digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH);
      digitalWrite(7, HIGH); break;
    case 5: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH);
      digitalWrite(6, HIGH); digitalWrite(7, HIGH); break;
    case 6: for (int i = 2; i < 8; i++) digitalWrite(i, HIGH); break;
  }
}

Mijn keuzes voor de ogen

Het leuke van fantasiedobbelstenen is dat je zelf alles naar je eigen smaak kunt instellen: hoe snel de ledjes verspringen voordat het aantal ogen getoond wordt en hoe dat gebeurt, maar ook het patroon dat je ziet bij een bepaalde worp. Zo kun je de "4" ook maken in een wybertjes vorm als je dat leuker vindt. Hiervoor hoef je alleen de getallen in de digitalWrite functies bij case 4 maar te veranderen (4 en 6 worden 1 en 5). Als je er een geluid bij wilt maken, kijk dan bij de beschrijving van het rad van fortuin hoe je dat kunt doen.

Hartjes

Even met de ledjes testen voor we gaan verven
Voor heel weinig geld kun je bij de Action doosjes in de vorm van een hartje kopen. Leuk om iemand cadeau te doen, zeker als op de deksel een werkende dobbelsteen is gemaakt. Als je een groot exemplaar koopt dan kunnen de Arduino en de batterij in de deksel verborgen worden, waardoor hij als opbergdoos voor sieraden bruikbaar blijft. Als je een klein doosje hebt dan kun je de battterij met schakelaar in het doosje verstoppen, zoals in de afbeelding te zien is. Je kunt de dobbelstenen volgens de klassieke opbouw maken, maar ik vind het voor de vlakverdeling mooier om de vorm iets aan te passen. In het voorbeeld hieronder ben ik ook afgeweken van het klassieke schema. Zie maar hoe jij dat vindt. Als je het anders wilt hoef je alleen de getallen in de digitalReads te veranderen! In het kleine doosje heb ik alle ledjes een eigen pin gegeven (pin 2 t/m pin 8). Minder efficiënt misschien, maar hierdoor kun je alles aanpassen naar je eigen wens. Zo zou je er bijvoorbeeld zonder problemen een klein rad van fortuin kunnen programmeren. De drukknop is op pin 9 aangesloten. Van de batterij gaat de plus (rode draad) naar de middenpoot van de schakelaar; een van de twee andere poten gaat naar de
RAW aansluitingAls RAW er niet is gebruik je VIN
ingang van de Arduino mini pro. De andere poot wordt niet gebruikt. De min van de batterij gaat rechtstreeks naar GND, maar dat mag ook via de aardedraad die tussen de leds loopt.
Open hartje
eenvoudigeenvoudig
Zie de foto's voor het resultaat. Ik plak nog een mooi papiertje in de deksel om de Arduino onzichtbaar te maken voor de gebruiker.
// Hartje dobbelsteen, Th.M. Hupkens c(2017)
// Pin 9 = drukknop
void setup() {
  for (int i = 2; i <= 8; i++) {
    pinMode(i, OUTPUT); // De acht "ogen"
    digitalWrite(i, HIGH); // Laat zien dat alle ogen werken...
  }
  pinMode(9, INPUT_PULLUP);
  randomSeed(analogRead(A0)); // Initialiseer de random number generator
}

void loop() {
  while (digitalRead(9)); // Wacht totdat de drukknop is ingedrukt
  for (int i = 1; i < 20 + random(10); i++) {
    toonWorp(random(1, 7)); // Geef de indruk van een rollende dobbelsteen
    delay(i * 10);
  }
  int Ogen = random(1, 7); // Kies het aantal ogen van de worp
  toonWorp(Ogen);
}

void toonWorp(int W) {
  for (int i = 2; i <= 8; i++) digitalWrite(i, LOW);
  switch (W) {
    case 1: digitalWrite(5, HIGH); break;
    case 2: digitalWrite(4, HIGH); digitalWrite(6, HIGH); break;
    case 3: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(5, HIGH); break;
    case 4: digitalWrite(2, HIGH); digitalWrite(3, HIGH);
      digitalWrite(7, HIGH); digitalWrite(8, HIGH); break;
    case 5: digitalWrite(2, HIGH); digitalWrite(3, HIGH);
      digitalWrite(5, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); break;
    case 6: for (int i = 2; i <= 8; i++) if (i != 5) digitalWrite(i, HIGH); break;
  }
}
Mijn uitvoering

In werkelijkheid zijn de ledjes veel mooier (stralend geel)...