Création du jeu Snake avec la carte ESP8266

ESP8266 18-12-24
31 0

Plan du tutorial

1- Présenter le jeu Snake

2- L'objectif de notre projet

3- Matériel nécessaire

4- Schéma de câblage du projet

5- Programmation de la carte ESP8266 avec Micropython

 

 

Présenter le jeu Snake

Le jeu Snake est un jeu vidéo classique, simple mais addictif, qui consiste à contrôler un serpent qui grandit au fur et à mesure qu'il mange de la nourriture, tout en évitant les obstacles et sa propre queue. Voici une description du principe et du fonctionnement de ce jeu :

Principe de base

1- Contrôle du serpent :

Le joueur contrôle un serpent (ou une ligne) qui se déplace sur une grille ou un écran.

Les mouvements du serpent sont généralement limités à quatre directions : haut, bas, gauche, et droite.

2- Objectif :

Manger des éléments de nourriture qui apparaissent aléatoirement sur la grille.

À chaque fois que le serpent mange un élément de nourriture, il grandit en longueur.

3- Conditions de fin de jeu :

Le jeu se termine si :

a) Le serpent entre en collision avec les bords de l'écran (dans les versions sans murs infinis).

b) Le serpent entre en collision avec sa propre queue.

Mécanisme de fonctionnement

Déplacement continu :

Le serpent avance automatiquement dans la direction choisie par le joueur.

Le joueur peut uniquement changer la direction du mouvement (90 degrés à la fois).

Croissance :

Lorsqu'un élément de nourriture est mangé, une nouvelle section s'ajoute à la queue du serpent, ce qui le rend plus long.

Cela augmente également le score du joueur.

 

L'objectif de notre projet

L'objectif principal de ce projet est de concevoir et de programmer le jeu classique Snake en utilisant une carte ESP8266, un afficheur LCD I2C, un buzzer pour les effets sonores, et quatre boutons poussoirs pour le contrôle de la direction du Snake.

Objectifs spécifiques :

1- Création du Snake sur l'afficheur LCD :

Dessiner le Snake et les objets (nourriture) sur l'écran LCD en utilisant des caractères ou des blocs.

Mettre à jour en temps réel l'affichage en fonction des mouvements du Snake.

2- Contrôle avec les boutons poussoirs :

Configurer les boutons poussoirs pour permettre les déplacements du Snake (haut, bas, gauche, droite).

Gérer les interruptions ou les états des boutons pour des commandes fluides.

3- Gestion de la logique du jeu :

Faire bouger le Snake sur une grille simulée.

Gérer la collision avec la nourriture qui sera généré aléatoirement.

4- Effets sonores avec le buzzer :

Ajouter des effets sonores pour des actions spécifiques (manger et collision).

 

Matériel nécessaire

Carte ESP8266 NodeMCU

Cœur du système, la carte ESP8266 sert de microcontrôleur pour gérer l'affichage, les entrées des boutons, la logique du jeu et le contrôle du buzzer.

1- La carte ESP8266 Lit les entrées des boutons poussoirs pour déterminer la direction du Snake.

2- Elle gère l'affichage du Snake et des objets sur l'écran LCD en mettant à jour les caractères affichés.

3- Elle contrôle le buzzer pour jouer des sons en réponse aux événements.

Afficheur LCD I2C

Pinouts of 1602 LCD display with I2C

Il Affiche les éléments visuels du jeu Snake, y compris le serpent, la nourriture, et éventuellement le score.

Buzzer passif

Il fournit des effets sonores pour les événements du jeu, comme manger de la nourriture, collision, ou démarrage du jeu.

Boutons poussoirs (x4)

bouton-poussoir

Il permettent de contrôler les mouvements du Snake (haut, bas, gauche, droite).

Chacun des quatre boutons est affecté à une direction spécifique.

Fils de connexion :

Fils de connexion

Ils sont Utilisés pour relier tous les composants entre eux.

Breadboard

plaque d'essai

Une breadboard facilite le prototypage sans soudure.

 

Schéma de câblage du projet

1- Connexion de l'afficheur LCD I2C :

VCC : Connecté à la broche VIN de la carte ESP8266.

GND : Connecté à la broche GND de la carte ESP8266.

SDA : Connecté à la broche D2 (GPIO 4) de la carte ESP8266 pour les données I2C.

SCL : Connecté à la broche D1 (GPIO 5 ) de la carte ESP8266 pour l'horloge I2C.

2- Connexion du Buzzer :

La borne (+)  connectée à la broche D3 (GPIO 0) de la carte ESP8266 configuré en sortie.

La borne (-) connectée à la masse (GND) de la carte ESP8266.

Pour le premier bouton (pour la direction gauche):

1- Connectez une patte du premier bouton-poussoir à la broche D8 (GPIO 15) de la carte ESP8266.

2- Mettre une résistance entre cette patte et la broche GND de la carte ESP8266.

3- Connectez une autre patte du premier bouton-poussoir à la broche 3V de la carte ESP8266.

Pour le deuxième bouton (pour la direction droite):

1- Connectez une patte du premier bouton-poussoir à la broche D7 (GPIO 13) de la carte ESP8266.

2- Mettre une résistance entre cette patte et la broche GND de la carte ESP8266.

3- Connectez une autre patte du premier bouton-poussoir à la broche 3V de la carte ESP8266.

Pour le troisième bouton (pour la direction haut) :

1- Connectez une patte du premier bouton-poussoir à la broche D6 (GPIO 12) de la carte ESP8266.

2- Mettre une résistance entre cette patte et la broche GND de la carte ESP8266.

3- Connectez une autre patte du premier bouton-poussoir à la broche 3V de la carte ESP8266.

Pour le quatrième bouton (pour la direction bas) :

1- Connectez une patte du premier bouton-poussoir à la broche D5 (GPIO 14) de la carte ESP8266.

2- Mettre une résistance entre cette patte et la broche GND de la carte ESP8266.

3- Connectez une autre patte du premier bouton-poussoir à la broche 3V de la carte ESP8266.

 

Programmation de la carte ESP8266 avec Micropython

Le code suivant utilise le langage Micropython pour programmer l'ESP8266. Assurez-vous d'avoir les bibliothèques suivantes installées :

Explication du programme:

1- Initialisation :

a) Configurer les broches à utiliser pour l'afficheur LCD et les boutons poussoirs.

b) Initialiser l'écran et les positions de la nourriture et le Snake.

2- Contrôle :

Les boutons permettent de changer la direction.

3- Collision :

Vérifie si le Snake touche la nourriture.

4- Affichage :

Le Snake et la nourriture sont dessinés sur l'écran.

5- Buzzer : Émet des sons pour signaler les actions (déplacement et collision avec la nourriture).

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali-Prof Info