Les Dés Gagnants

De 1 à 4 Dés attractif(s) et coloré(s) !

 

      Si une envie subite de jouer à un jeu de société en famille, vous gagne, vous allez perdre une demie heure à rechercher les dés avant de commencer ! ça gâche un peu l'enthousiasme spontané !  La petite boite que je propose là, vous offre un set de 1 à 4 dés lumineux et non pipés, puisque ce n'est pas le coup de paluche qui oriente le jeux mais le hasard des nombres aléatoires . Tout de suite après l'allumage du premier, si l'on garde la main sur le bouton, un deuxième, puis un troisième.... jusqu'à quatre pixels s'éclairent pour définir le nombre de dés choisit ! Pour jouer on approche la main et les dés en sont jetés . Alea jacta est ..........

Multi dices 1

 

Les Composants:

  • Le panneau de leds

Multi dice pixels

La famille de panneaux lumineux WS2812 de 8x8 est une source de lumière à LED intelligente, dont le circuit de commande et la puce RVB sont intégrés dans le package des composants. Il comprend un latch des données sur le port numérique et assure simplement la gestion de la couleur et de la lumière, pixel par pixel. Le protocole de transfert de données utilise une seule ligne de communication.  

Caractéristiques: 

 - Protection contre la connexion inverse d'alimentation.

 - Une seule source d'énergie.

 - Chaque pixel, des trois couleurs primaires, permet un affichage de luminosité de 0 à 256.

 - Signal transmis sur un  port  d'une seule ligne.

 - Tension: 5 V

2,93€ chez Ali express

 

  • Le bouton sensitif

Multi dices butUn bouton de 'touch-control' sensible à 5 mm avec sortie TTL et pouvant travailler en mode monostable ou bistable, en niveau de sortie haut ou bas, et paramétrable simplement par un strap. La tension d'alimentation est large puisqu'elle s'étend de 2,5 a 5,5V
AB = 00: sortie niveau TTL Haut sans verrouillage;
AB = 01: sortie niveau TTL Haut bistable;
AB = 10: sortie niveau TTL Bas sans verrouillage;
AB = 11: sortie niveau TTL Bas bistable;
Taille: env. 15 x 11 x 1mm

0,97 € les 10 chez Ali Express

 

  • Le microcontrôleur

Multi dices ardui

Un vieil habitué, puissant et pas cher pour commander les dés ... Un Arduino Nano qui est programmable par l' IDE en open source téléchargeable gratuitement sur le réseau . Tout un monde merveilleux, ouvert à qui voudra y entrer, avec une documentation, et des librairies toutes faites ; Du pur bonheur  ... 

Caractéristique:

Microcontrôleur Atmel ATmega328

Tension de fonctionnement (niveau logique)5 V

Tension d'entrée (recommandée)7-12 V

Tension d'entrée (limites)6-20 V

Broches e/s numériques14 (dont 6 fournissent une sortie PWM)

Broches d'entrées analogiques 8

Courant continu par broche d'entrée/sortie40 mA

Mémoire Flash32 ko (dont 2 ko utilisés par le bootloader)

SRAM2 ko

EEPROM1 ko

Vitesse de l'horloge16 MHz

2,84€ chez Ali Express

 

  • L'interrupteur Marche/arrêt

Multi dices int

 

       Il n'y a pas grand chose à dire sur l'interrupteur, sauf que j'ai mis ce que j'avais ; un inter à glissière aurait été plus joli et surtout moins saillant ! Bon, ce que l'on demande à un inter c'est d'interrompre et là, la mission est remplie .... Il n'y a pas de contraintes de pouvoir de rupture, d'intensité ou de tension dans ce montage, donc tout autre type fera aussi bien l'affaire .

 

 

 

 

 

  • Le coupleur de piles

Multi dices pile

 

    Le coupleur de piles utilisé est pour 4 piles de type AAA ! ça marche mais un coupleur 6 piles (9 volt) serait plus approprié, surtout qu'il y a de la place dans le boitier ... Mais ça tient le coup, je n'ai pas eu à en changer durant les phases de réalisations et de tests . N'oublions pas qu'il reste l'entrée mini USB sur le micro contrôleur qui peut servir d'alimentation secteur si elle est précédée d'un bloc secteur ou toute autre source de 5 volts DC fournissant 70mA ... Il faudra juste veiller à ce que l'on reste en classe III pour des raisons évidentes de sécurité .

 

 

 

  • La résistance de bus 

Multi dices r470     Une résistance de 1/4 de Watt en 470 ohms pour la transmission des datas sur le bus .C'est une préconisation constructeur afin de garantir que la tension des données sur le bus 1 fil, référencée à la masse, ne soit jamais supérieure à celle de l'alimentation ... J'ai pris un composant traversant pour vider un peu les fonds de tiroirs, mais une CMS de 1206 ou autre, fait aussi bien l'affaire. 

 

  • La résine de coulée ou d'inclusion

Multi dices res      La résine GTS pro Soloplast 500g avec durcisseur est une résine orthophtalique pré-accélérée d'une grande transparence pour la réalisation de pièces en inclusion et l'emploi de stratification. Pas trop de durcisseur dans le mélange, pour éviter le jaunissement et que ça se fendille par une polymérisation trop rapide ! Attention de bien assurer le mélange des deux composants et surtout l'étanchéité parfaite du contenant, car si ça coule, ça s'infiltre tout partout (c'est liquide à la base ) .

Référence: 127944

Fabricant: Soloplast

17,65 € chez Leroy Merlin

 

 

 

 

 

La Réalisation:

  • Le programme 

La version complète, prête à téléverser dans l'Arduino est dans le ZIP ci-dessous. L'IDE s'en charge, avec la condition que l'on ait choisi le bon type d'Arduino. Perso, j'ai pris un Nano ATmega328P comme d'hab en "Old Boot Loader"... Le port com se déclare tout seul à la connexion de l'USB, à condition d'avoir installé les bons drivers de port CH34x  ou CP201x ; le mien est CP210x... et il me donne entières satisfactions sur les circuits Chinois .

Le Sketch commence par les déclarations des entrées / sorties, des variables utilisées et de l'appel d'une Librairie "Adafruit_NeoPixel" pour ne pas avoir à se repalucher toute la procédure de gestion de l'affichage.

//declaration des variables et des entrées / sorties
#include <Adafruit_NeoPixel.h>
#define PIN            8
#define NUMPIXELS     64

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int pushBut = 2;

int dice0 = 0;
int dice1 = 5;
int dice2 = 40;
int dice3 = 45;

int valDice ;

int nbDice;
 

Viennent ensuite 4 sous programmes de pilotage individuel de chaque led, avec génération de nombre aléatoire de 1 à 6, et affichage !

//Gestion du Dé n°1
void diceone () {
  valDice = random(1, 7); //Géneration d'un nombre aléatoire de 1 à 6

switch (valDice) { //Attribution d'une couleur et de la position des points sur la matrice ...
  case 1:
    pixels.setPixelColor(9, pixels.Color(0,50,50));
    break;
  case 2:
   pixels.setPixelColor(2, pixels.Color(50,50,0));
   pixels.setPixelColor(16, pixels.Color(50,50,0));
    break;
      case 3:
   pixels.setPixelColor(2, pixels.Color(0,50,0));
   pixels.setPixelColor(16, pixels.Color(0,50,0));
   pixels.setPixelColor(9, pixels.Color(0,50,0));
    break;
      case 4:
   pixels.setPixelColor(2, pixels.Color(0,0,50));
   pixels.setPixelColor(0, pixels.Color(0,0,50));

      .../...

Chaque cycle est répété 25 fois avec une constante de temps qui s'allonge, pour simuler le roulement des Dés et ce grâce à un sous programme appelé "rollDice" ....

//Roullement des dés
void rollDice() {
    for(int i=1;i<25;i++){
    diceone ();
    //et allumage si déclaré
        if(nbDice > 1){
          dicetwo ();
    }
        if(nbDice > 2){
          dicetre ();;
    }
        if(nbDice > 3){
          dicefor ();
    }

   pixels.show();
    
delay((i*30));
pixels.clear();
   }
}

Voila pour les sous-programmes, vient ensuite les déclarations du setUp où j'en profite pour faire la sélection du nombre de Dés ! A la mise en marche, on vient lire l'état du bouton sensitif dans une boucle et l'on incrémente le nombre de Dés choisi en espaçant le choix par une pause de 1,5 seconde ...

//Sélection du nombre de Dés souhaité
 for(int i=0;i<5;i++){
   if ((digitalRead(pushBut)) and (i=1)) {
    pixels.setPixelColor(28, pixels.Color(50,0,50));
    pixels.show();
    nbDice = 2;
    delay(1500);
   }

Dans le Loop éternel, on vient lire l'état du bouton sensitif, et si celui-ci est actif, on redemande le lancement des Dés par appel du sous-programme "rollDice" ...

void loop() {  //Lancement des Dés

   if (digitalRead(pushBut)) {
    rollDice();
   }

 

 

  • Le schémas :

Multi dices sch

      Quelle simplicité ! Il n'y a rien ... Un Arduino Nano, qui s'occupe de tout; Après l'interrupteur Marche/Arrêt, on applique la tension des piles sur la Pinuche VIN et GND; le régulateur intégré du circuit va la rabaisser à 5 volts et la distribuer aux autres composants. Le bouton, étant alimenté, va faire passer sa sortie TTL à l'état logique haut, si un doigt vient contrarier son champ électrostatique (~5mm), et rapporter cette information sur la GPIO D2 du Nano  ... 

      Pour piloter l'afficheur (j'aurais du en mettre deux pour faire huit dés ) une sortie (GPIO D8) vient envoyer des trames sur l'unique fil de bus série , référencé par rapport à GND, vers le panneau lumineux WS2812, à travers une résistance (R1) de 470 ohms . J'aurais dû découpler l'alimentation de la dalle lumineuse par un électrochimique de 220µF/16volt pour éviter que les transitoires de charges ne viennent s'autoperturber au niveau des lignes de l'alimentation, mais ça marche sans ça, donc économies, économies !

      C'est rapide, mais il n'y a rien d'autre !

 

  • Le circuit imprimé :

  Multi dices cimp 1  Multi dices comp 1

 

      Le circuit imprimé n'est pas obligatoire vu le peu de composants qu'il reçoit ! Un câblage "en l'air" ou sur de la plaque universelle percée, va tout aussi bien ! Il faut seulement penser à isoler les éléments et les fixer correctement . Moi j'aime bien graver un circuit : ça fait plus propre et l'on peu y mettre des connecteurs pour séparer les composants en cas de besoins ... Dans les quatre trous de fixation, je monte des vis  de 3 x 20 et écrous + écrous (serrés à la main) pour servir le circuit comme gabarit d'espacement des tiges filetées et noyer les têtes dans la résine aux bons entraxes .

 

 

 

  • La mise en boite :

       La boite est réalisée à l'imprimante 3D en deux parties ; un fond emboitable avec des oreilles de vissage et un cadre qui reçoit en plus de toutes les pièces, le fond et un altuglace translucide genre Macrolon ! Un ajustement rigoureux et étanche est impératif pour que lors de la coulée, la résine d'inclusion ne fuie pas de partout . 

Multi dices box 1 Multi dices coul 1   

        

 

 

 

 

 

 

 

 

 

     Le but est de réaliser un sandwich et de couler une résine d'inclusion qui va maintenir tous les composants ensemble . Les couches de ce copieux sandwich sont: d'abord l'écran plexiglace, bien ajusté aux bords du cadre de la boîte ( on dispose un ruban adhésif tout autour pour assurer l'étanchéité ) puis le panneau de Led WS2812, et le circuit imprimé, équipé de ses quatre vis / écrous / écrous, pour que lors de la coulée de résine, les têtes de vis, et uniquement les têtes soient scellées en bonne place ... 

     Il faut bien immobiliser l'ensemble en position (petites pinces crocos et tiges de bois ) en veillant que le bouton sensitif soit contre la paroi de l'emplacement où il est prévu, afin d'en garantir la sensibilité . Quand on est sûr de la position de l'ensemble, on peut préparer la résine ! Surtout ne pas abuser sur le durcisseur (~1 à 2 %) ; l'excès fait jaunir et craqueler la matière ... Un soin particulier est apporté lors de la coulée, pour mettre ce qu'il faut et seulement là où il en faut ...

     On ne touche plus à rien pendant le temps de durcissement (20 heures avec ma résine ) puis on peut tout démonter l'accastillage de maintient et on retire le circuit de ses tiges filetées, on régle les contre-écrous à la hauteur voulue, pour que le bouton sensitif soit en coïncidence avec l'encoche aménagée à cet effet et on remonte le circuit à l'envers ! Une feuille isolante collée avec de l'adhésif double faces et collage du support de piles ! Reste qu'a fermer l'ensemble avec le fond réalisé à l'imprimante 3D ... après avoir terminé les connexions évidement .

 

  • Les fichiers pour le faire :

       Trois répertoires dans le Zip ci-joint;

Le premier contient les schémas et dessins du PCP sous la version 4 d'Eagle Cadsoft . J'y ai inclus les dessins au format JPEG afin de les rendre exploitables par ceux qui utilisent un autre logiciel ... Vu la grandeur du circuit, la version gratuite de Eagle Autodesk est largement suffisante . Etant donné le peu de composants utilisés, un câblage en l'air, ou une plaquette MBoard ou VeroBoard  permet de s'affranchir de la gravure d'un circuit .

Dans le deuxième, le programme complet sous la version INO pour le téléversement dans l'Arduino, ainsi qu'une version TXT pour un parcours rapide, comme brouillon ou qui sert absolument à rien, mais il est dedans !

Le dernier, c'est les fichiers pour l'impression 3D ... Le format RSDOC est éditable sous DesignSpark Mechanical, pour pouvoir y ajouter une touche personnelle et le modifier à souhait . Les format STL, c'est pour être converti en G-Code assimilable par l'imprimante...  

Multi dicesMulti dices (991.97 Ko)

 

En Conclusion:

       Pour jouer, maintenant, après avoir mis les piles et fermé la boite, on met le dé en marche en basculant l'interrupteur tout en gardant un doigt sur la 'touch-control' si l'on veut plusieurs dés; Une led centrale est allumée, puis une seconde va s'illuminer et ainsi de suite ! Quand on a le nombre de dés voulus, on lève le doigt ... un appuis suivant va lancer les dés qui vont rouler sans passer en bas de la table ou du plateau ... On attend alors la stabilisation et on recommence pour rejouer. Tant que l'on ne coupe pas l'inter, il n'y a pas à re-choisir le nombre de dés ! A tous les coups l'on gagne ! 

 

Ajouter un commentaire