Table des matières:

Mastermind Star Wars avec Arduino MEGA : 5 étapes (avec photos)
Mastermind Star Wars avec Arduino MEGA : 5 étapes (avec photos)

Vidéo: Mastermind Star Wars avec Arduino MEGA : 5 étapes (avec photos)

Vidéo: Mastermind Star Wars avec Arduino MEGA : 5 étapes (avec photos)
Vidéo: La vérité derrière le personnage de Farine de Blé 2024, Juillet
Anonim
Mastermind Star Wars avec Arduino MEGA
Mastermind Star Wars avec Arduino MEGA
Mastermind Star Wars avec Arduino MEGA
Mastermind Star Wars avec Arduino MEGA
Mastermind Star Wars avec Arduino MEGA
Mastermind Star Wars avec Arduino MEGA

Ce sont des temps défavorables à la rébellion. Bien que l'étoile de la mort ait été détruite, les troupes impériales utilisent du matériel gratuit et Arduino comme arme secrète.

C'est l'avantage des technologies libres, toute personne (bonne ou mauvaise) peut les utiliser.

Dans une base cachée située sur la planète Anoat, ils construisent une imprimante 3D capable de reproduire l'Imperial Destroyer.

La seule solution pour vaincre l'Empire est qu'un groupe de rebelles commandés par Luke Skycuartielles et Obi-Wan Banzi, battent les troupes impériales et obtiennent la clé qui donnera accès aux plans de destruction de l'arme secrète.

Cette clé est composée de 4 couleurs et vous disposez de 10 tentatives pour la déchiffrer. Il n'y a que quatre règles:

  1. Les couleurs peuvent être répétées
  2. Une lumière blanche indique que vous avez atteint la bonne couleur et la bonne position
  3. Une lumière violette indique que vous avez atteint la couleur mais pas la position
  4. S'il n'y a pas de lumière, vous n'avez pas deviné la couleur ou la position.

Vous devez vous dépêcher car à l'autre extrême, le maléfique Dark Ballmer tentera d'obtenir la clé avant vous. Dans ce cas, vous ne pourrez pas savoir de quoi il s'agit et vous n'aurez pas accès aux plans de l'arme secrète. Votre mission aura échoué.

Petit Padawan, que la force t'accompagne pour déchiffrer la clé et ainsi pouvoir sauver la Galaxie.

Étape 1: Matériel

Matériel
Matériel

Le matériel nécessaire à la fabrication du Mastermind Star Wars avec Arduino est divisé en trois parties.

  • Menuiserie et papeterie pour la réalisation du logement
  • Composants, câbles et Arduino pour toute l'électronique
  • Outils

Commençons par la menuiserie. Le matériel suivant est nécessaire:

  • 2 x panneaux MDF de 90x60
  • 1 x feuille de papier végétal

Dans la partie électronique, le matériel suivant est nécessaire:

  • 1 x bande NeoPixel 5 mètres
  • 1 x Arduino MEGA
  • 1 x condensateur 100 µF
  • 4 x résistance 470
  • 5 x bouton noir
  • 5 x bouton blanc
  • 1 x alimentation 5V-5A
  • 1 x alimentation 5V-2A

Enfin, dans la partie outil, nous avons utilisé les éléments suivants:

  • Pistolet en silicone chaud
  • Laser CNC de MxN
  • Soudeuse électrique
  • Étain de soudeur

Étape 2: Concevoir

Concevoir
Concevoir
Concevoir
Concevoir
Concevoir
Concevoir

L'une des parties les plus importantes de ce projet est la conception du logement. Il se compose de 3 pièces découpées au laser.

La base est tirée d'une pièce de 90x60 en MDF. Tenez compte des dimensions du matériau car vous aurez besoin d'un cutter laser assez grand.

Vous pouvez trouver le fichier SVG à la fin de cette étape.

Le capot supérieur est celui qui contient les dessins thématiques de Star Wars ainsi que les trous pour les boutons et les pixels.

Il a la même forme que la base.

Les parois latérales ont été réalisées à l'aide d'une technique de découpe laser appelée saignée. Cela permet au matériau d'être flexible. Pour placer les murs, certaines pièces ont été conçues pour servir de guide.

Enfin, chaque matrice NeoPixel possède une grille où d'un côté sont fixés les NeoPixel et de l'autre un papier végétal est fixé pour diffuser la lumière du NeoPixel. Ici vous avez tous les fichiers SVG afin que vous puissiez les couper et les fabriquer vous-même.

Étape 3: Assemblage électronique

Assemblage électronique
Assemblage électronique
Assemblage électronique
Assemblage électronique
Assemblage électronique
Assemblage électronique
Assemblage électronique
Assemblage électronique

La première phase du montage de l'électronique consistait à découper la bande de 5 mètres de NeoPixel en 8 bandes de 10 pixels et 4 pixels séparés pour chaque joueur. Au total 84 pixels par joueur. D'une part les 10 bandes sont assemblées les unes après les autres en laissant suffisamment de câble pour mettre chaque bande parallèle à quelques millimètres. Cette matrice de pixels servira à montrer chaque jeu et le résultat. 4 pixels montrent les quatre couleurs de la clé et les quatre autres pixels montrent le résultat. Je vous rappelle qu'en conséquence nous devons:

  • Si le pixel est blanc, c'est qu'il a réussi sa position et sa couleur.
  • Si le pixel est violet, la couleur est correcte mais pas la position.
  • Si le pixel est éteint, ni la couleur ni la position ne sont correctes.

L'une des erreurs que nous avons commises est le câblage d'alimentation et le GND. Cela aurait pu être plus simple mais nous nous en sommes rendu compte plus tard. Le câble de données doit suivre un ordre puisque la numérotation des pixels va de bas en haut.

D'autre part, nous avons 4 pixels séparés qui doivent être connectés entre eux. Ces pixels nous montreront la couleur que nous sélectionnons avec les boutons.

Une résistance de 470Ω est connectée en série à chaque bande pour protéger les données. Le câble de données de chaque bande de pixels est connecté à une broche numérique. Les broches sélectionnées dans l'Arduino MEGA sont 6, 7, 8 et 9.

Par exemple, 6 et 7 sont pour le joueur 1 et 8 et 9 pour le joueur 2.

Les boutons que nous avons utilisés sont les boutons typiques des machines d'arcade. Nous pensions qu'ils seraient beaux et c'est comme ça.

D'autres boutons poussoirs peuvent être utilisés mais il faut tenir compte du fait que s'ils sont plus petits ou plus grands, le fichier DXF doit être modifié avant la découpe avec la CNC laser.

Pour distinguer les joueurs, certains boutons sont blancs et d'autres sont noirs.

Chaque joueur a 4 boutons vers le haut et 1 bouton vers le bas. Les 4 boutons supérieurs servent à sélectionner la couleur de chaque position de la touche.

Le bouton du bas est utilisé pour valider, c'est-à-dire qu'il envoie la clé à apparaître dans la matrice de pixels avec la vérification pertinente de la réussite de la couleur et de la position.

Avant de tout assembler, nous avons soudé tous les câbles. Vous aurez donc besoin de beaucoup de câble. Cela dépendra de la taille du jeu. Dans notre cas, il a été assez important.

Par exemple, vous pouvez utiliser un câble Ethernet pour l'ouvrir et prendre les câbles internes. C'est une bonne solution. Essayez de les avoir le plus ordonné possible car il faudra alors faire les branchements avec l'Arduino MEGA comme vous le voyez sur le schéma électrique.

Une fois que vous êtes tous soldat avant de le monter, vous devez l'essayer. Il est testé car lorsqu'il est installé dans le boîtier, il sera collé avec du silicone chaud et s'il tombe en panne ce sera compliqué alors enlevez-le. Pour placer les matrices de pixels, une grille a été conçue avec les mêmes dimensions que la grille du couvercle où d'un côté les pixels sont collés et de l'autre un papier végétal.

Ce papier diffuse la lumière de chaque pixel donnant un bien plus bel effet. Ensuite, cette structure colle à la partie supérieure à l'intérieur. C'est un peu compliqué mais avec soin, on obtient un bon résultat.

L'alimentation a été quelque peu compliquée. En principe et au vu du schéma, nous n'allions utiliser qu'un seul chargeur. Cependant, après les premiers tests et la consommation de NeoPixel nous avons vu qu'il faudrait deux chargeurs.

Chaque pixel peut consommer un maximum de 60 mA. Si on multiplie par 168 pixels, on obtient une consommation d'environ 10 A.

Même si ce serait dans le pire des cas. Dans la programmation nous avons déjà pris en compte de ne pas maximiser l'intensité du NeoPixel.

On n'atteint même pas les 50% donc, avec un chargeur 5V et 5A c'est largement suffisant.

D'autre part, l'Arduino MEGA dispose d'un chargeur séparé qui peut être connecté via le connecteur jack ou via le port USB. Une amélioration possible serait d'avoir un seul chargeur pour l'ensemble du système.

Étape 4: Programmation du jeu

Programmation de jeux
Programmation de jeux
Programmation de jeux
Programmation de jeux

La programmation a été effectuée à l'aide de deux bibliothèques: OneButton et Adafruit_NeoPixel.

La bibliothèque OneButton permet de contrôler les boutons de manière simple avec des interruptions.

La librairie Adafruit_NeoPixel nous a permis de contrôler la bande NeoPixel de manière très simple.

La programmation est basée sur différents états dans lesquels le logiciel peut être:

Démarrage du jeu. État = 0

Dans cet état, le jeu est lancé et il y a une séquence de lumières dans les deux joueurs indiquant que le jeu va commencer. Pendant cet état, les boutons-poussoirs ne répondent pas.

Etat initial. État = 1

Dans l'état initial, attendez qu'un des deux joueurs double-clique sur le bouton de confirmation (le cinquième bouton). Cette action permettra de démarrer le jeu.

Préparation du jeu. État = 2

Dans l'état de préparation du jeu toutes les variables sont réinitialisées et la sélection aléatoire des couleurs pour la clé est lancée.

État de lecture = 3

A l'état 3, le jeu démarre. Chaque joueur sélectionne une clé avec les boutons et la valide en cliquant sur le bouton de confirmation. Cet état peut se terminer de deux manières: lorsqu'un joueur découvre la clé ou lorsque les deux joueurs consomment les 10 tentatives dont ils disposent.

Un État gagnant = 4

Si un joueur gagne, un coche vert sera affiché sur son tableau ainsi que la combinaison gagnante et une croix rouge sur le perdant.

Jeu à égalité. État = 5

En cas d'égalité, rien n'est indiqué sur aucun tableau et la combinaison gagnante sur les tableaux des deux joueurs.

Qu'il y ait un gagnant ou une égalité dans le jeu, l'état suivant sera le premier en attente d'un double clic.

Vous pouvez trouver tout le code ci-dessous. La seule chose qui est en espagnol:)

Étape 5: Tests et améliorations

Le jeu est testé en jouant. Dans la vidéo ci-dessus, vous pouvez voir un jeu complet.

À partir de là, nous pouvons penser à plusieurs améliorations qui peuvent être ajoutées au Mastermind Star Wars avec Arduino.

Ensuite, je les liste.

  • Pouvoir jouer à tour de rôle avec un total de 10 tentatives pour les deux joueurs. Lorsqu'un joueur essaie une touche, l'autre joueur verra le jeu.
  • Un mode de jeu individuel pour qu'une seule personne puisse jouer.
  • Mode chacun avec sa clé.
  • Inclut un écran OLED.
  • Utilisez un seul chargeur pour tout.
  • Se connecter à un NodeMCU ESP8266

Je suis sûr que beaucoup de gens trouveront de nombreuses améliorations. J'attends les commentaires ci-dessous.

Et que la force soit avec vous.

Conseillé: