Table des matières:

Jeu Arduino Sorta Sudoku : 3 étapes (avec photos)
Jeu Arduino Sorta Sudoku : 3 étapes (avec photos)

Vidéo: Jeu Arduino Sorta Sudoku : 3 étapes (avec photos)

Vidéo: Jeu Arduino Sorta Sudoku : 3 étapes (avec photos)
Vidéo: Don't Do This At Home 2024, Novembre
Anonim
Jeu de Sudoku Arduino Sorta
Jeu de Sudoku Arduino Sorta

Beaucoup de gens aiment jouer au Sudoku et les petits-enfants aiment les jeux de devinettes, alors j'ai décidé de créer un jeu portable "Sorta Sudoku". Dans ma version, le jeu est une grille 4x4 mais un seul numéro est fourni. L'idée est de deviner le reste des nombres en un minimum d'essais. C'est un jeu simple mais il peut être assez addictif lorsque vous recherchez le score parfait de 15. Le jeu nécessite à la fois un élément de chance et de logique et le meilleur score que j'ai vu jusqu'à présent est de 16. Jetez un œil car même si vous n'êtes pas intéressé par la création du jeu, il peut y avoir certains éléments du logiciel que vous pouvez utiliser dans l'un de vos propres projets.

Étape 1: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

Le matériel peut être basé sur à peu près n'importe quelle version Arduino. J'ai fait le prototypage à l'aide d'un Nano, puis j'ai gravé le code dans une puce ATMega328. C'est la même puce utilisée dans le Nano, mais son utilisation seule permet une construction plus compacte et une consommation d'énergie moindre. Comme vous pouvez le voir, j'ai construit le circuit sur une petite planche à pain qui se superpose au module LCD. L'autre aspect différent est que le Nano fonctionne à 16 MHz en utilisant un cristal externe, mais j'ai choisi d'utiliser l'oscillateur intégré à 8 MHz pour la puce ATMega328. Cela permet d'économiser des pièces et de l'énergie.

L'écran LCD 2004 s'interface avec l'Arduino de la même manière qu'un écran LCD 1602. Une différence intéressante réside dans l'adressage des emplacements d'affichage. Évidemment, il y a une différence car il y a quatre lignes au lieu de deux mais, dans le 2004, la troisième ligne est une extension de la première ligne et la quatrième ligne est une extension de la deuxième ligne. En d'autres termes, si vous aviez un programme de test qui venait d'envoyer une chaîne de caractères à l'écran LCD, le 21e caractère apparaîtrait au début de la troisième ligne et le 41e caractère reviendrait au début de la première ligne. Le logiciel gère cette différence avec une table de recherche d'adresses LCD.

L'entrée pour le jeu est une matrice de commutation 4x4 maison. Chaque interrupteur correspond directement à l'emplacement équivalent sur l'écran. Il y a aussi un interrupteur d'alimentation et un interrupteur de réinitialisation. L'interrupteur de réinitialisation efface l'ancien jeu et génère un nouveau jeu.

J'ai décidé de faire fonctionner ma version sur batterie, j'ai donc utilisé une batterie Li-ion 18650 commune de 3,6 volts. Cela a nécessité que j'ajoute une petite carte pour permettre la recharge USB et une autre petite carte pour augmenter la tension de la batterie à 5 volts pour l'écran LCD et la puce ATMega. Les images montrent les modules que j'ai utilisés mais il existe également des modules tout-en-un qui remplissent les deux fonctions.

Étape 2: Logiciel

Le logiciel est le même pour la puce Nano et la puce ATMega328. La seule différence réside dans la méthode de programmation. J'utilise ma propre version barebones du logiciel LCD et du logiciel de décodage matriciel du clavier. Ce sont des fichiers « include » distincts pour le projet.

Les commandes "random" et "randomSeed" sont utilisées pour aider à créer le jeu. J'ai ajouté une sauvegarde dans l'EEPROM de la "graine" pour m'assurer qu'une séquence différente est générée à chaque mise sous tension. Les lignes du puzzle sont dérivées d'un tableau de recherche à 24 éléments. Les trois premières lignes sont sélectionnées au hasard dans le tableau, avec des vérifications pour s'assurer qu'une ligne sélectionnée n'entre pas en conflit avec une ligne précédente. La dernière ligne est remplie manuellement car il n'y aura qu'un seul motif possible à ce stade. Après cela, il suffit de numériser la matrice du clavier et de convertir les touches enfoncées en nombres.

Pour deviner un nombre, appuyez plusieurs fois sur le commutateur correspondant. Chaque pression augmente le nombre affiché. Si vous dépassez le nombre souhaité, continuez simplement à appuyer. Si vous relâchez le commutateur pendant une seconde, il verrouillera le dernier numéro affiché. Si le numéro est incorrect, il effacera le numéro et vous pourrez réessayer. Chaque estimation incrémente le compteur affiché et une fois qu'un nombre est correctement deviné, ce commutateur matriciel est effectivement désactivé.

Étape 3: Afficheurs

Affiche
Affiche
Affiche
Affiche
Affiche
Affiche

Voici quelques photos des différents affichages.

Conseillé: