- Composants utilisés:
- Explication de travail:
- Explication du circuit:
- Explication de la programmation:
Snake Game est très populaire depuis le début des téléphones mobiles. Initialement, il était venu dans les téléphones portables en noir et blanc, et est rapidement devenu très célèbre. Puis avec l'avancement des téléphones portables, ce jeu a également beaucoup changé, et maintenant de nombreuses versions graphiques et colorées de ce jeu sont disponibles.
Le jeu de serpent est également devenu un projet de bricolage très populaire pour les amateurs d'électronique et les étudiants. Donc, aujourd'hui, nous allons démontrer, Arduino Snake Game, avec toutes ses fonctionnalités de base, tout en le gardant simple en même temps.
Composants utilisés:
- Arduino UNO
- Affichage matriciel à LED 8x8
- Registre de décalage 74HC595
- Écran LCD 16x2
- POT 1K
- Boutons poussoir
- Fils de connexion
- Planche à pain
- Source de courant
Explication de travail:
C'est un jeu peu compliqué à construire. Mais dans ce tutoriel, nous avons simplifié les choses pour vous. Pour réaliser ce projet, nous avons utilisé un écran matriciel de couleur rouge 8x8 pour afficher le serpent et son point de nourriture, un écran LCD pour afficher les points ou le score, 5 boutons poussoirs pour donner des directions et démarrer le jeu et enfin un Arduino UNO pour contrôler l'ensemble du processus. Le schéma des broches de l'affichage matriciel à LED 8x8 avec son image d'origine a été donné ci-dessous:
Lorsque nous mettons le circuit sous tension, nous affichons d'abord un message de bienvenue, puis un indice «Appuyez sur Start To Play» sur l'écran LCD. Après cela, l'écran LCD affiche le score comme zéro et l'affichage matriciel montre deux points comme un serpent et un seul point comme de la nourriture.
Maintenant, l'utilisateur doit appuyer sur le bouton du milieu pour démarrer le jeu et le serpent commence à se déplacer vers le haut par défaut. Ensuite, l'utilisateur doit donner la direction au serpent en appuyant sur les «touches de direction» autour du bouton du milieu. Ici, nous avons utilisé cinq touches (boutons poussoirs) à savoir la touche gauche, la touche droite, la touche haut, la touche bas et la touche de démarrage. Chaque fois que le serpent atteint le point de nourriture ou mange la nourriture, le score augmente de 5 points à chaque fois et la longueur du serpent est augmentée d'un point (LED) à chaque fois, la vitesse du serpent devient également plus rapide qu'avant. Et chaque fois que le serpent frappait un mur ou atteignait la fin de la matrice LED, alors il mettrait fin au jeu («Game Over»). Ensuite, l'utilisateur doit recommencer le jeu en appuyant sur la touche de démarrage.
Explication du circuit:
Le circuit de ce projet de jeu de serpent est peu complexe. Ici, nous avons connecté l'affichage matriciel à l'aide du registre à décalage 74HC595. Ici, deux registres à décalage sont utilisés, l'un pour piloter les colonnes et l'autre pour piloter les lignes. Broches de contrôle des deux registres, registre à décalage de colonne et registre à décalage de ligne (SH, ST),sont directement connectés aux broches 14 et 16 d'Arduino respectivement. Et la broche DS du registre à décalage de colonne et du registre à décalage de ligne sont directement connectées aux broches 15 et 17 d'Arduino. Le bouton de démarrage pour démarrer le jeu est connecté à la broche numéro 3, le bouton de direction gauche à la broche 4, le bouton de direction droite à la broche 6, le bouton de direction vers le haut à la broche 2 et le bouton de direction bas à la broche 5. Un écran LCD est également connecté dans notre matériel à montrer le score. Les broches RS et EN sont directement connectées aux broches 13 et 12. La broche RW est directement mise à la terre. Et les broches de données d4-d7 sont connectées aux broches 11, 10, 9, 8 d'Arduino. Le reste de la connexion est indiqué dans le schéma de circuit.
Explication de la programmation:
Pour écrire ce code de jeu de serpent Arduino, nous incluons tout d'abord des fichiers d'en-tête et définissons des broches pour LCD. Et puis définissez des broches pour les boutons de direction et des broches de données pour les registres à décalage.
#comprendre
Ensuite, nous initialisons toutes les choses que nous avons utilisées dans le programme. Dans la fonction de configuration , nous initialisons l'écran LCD, en donnant la direction aux broches de sortie d'entrée, en tirant les bits vers le haut et en affichant un message de bienvenue sur l'écran LCD.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (début, INPUT);……………
Et puis nous commençons le jeu en fonction de la boucle .
void show_snake (int temp) {for (int n = 0; n
Ici, nous avons utilisé la fonction ci-dessous pour lire la direction d'entrée à partir du bouton poussoir.
void read_button () {if (! digitalRead (gauche)) {move_r = 0; move_c! = - 1? move_c = -1: move_c = 1; while (! digitalRead (gauche));……………
Consultez le code C complet du jeu Snake ci-dessous.