Jeu TETRIS contrôlé par la carte ESP32

ESP32 05-03-25
43 0

Plan du tutorial

1- Présenter le jeu Tetris

2- Fonctionnement du notre jeu

3- Matériel nécessaire

4- Câblage des composants du projet

5- Programme Micropython du jeu Tetris

 

Présenter le jeu Tetris

Tetris est un jeu vidéo de puzzle créé en 1984 par Alexey Pajitnov, un programmeur soviétique. Le principe du jeu repose sur l'empilement de formes géométriques appelées Tetriminos, qui tombent du haut de l'écran vers le bas. Ces Tetriminos sont constitués de quatre carrés assemblés selon différentes configurations.

L’objectif est d’assembler ces Tetriminos de manière à former des lignes horizontales complètes. Lorsqu’une ligne est complétée, elle disparaît et laisse de la place pour les nouvelles pièces. Le joueur doit éviter que les blocs s’empilent jusqu’en haut de l’écran, ce qui entraînerait une fin de partie.

Mécanique de jeu

Les Tetriminos tombent automatiquement mais peuvent être déplacés gauche/droite et tournés avant de toucher le bas de l’écran.

Plus le jeu progresse, plus la vitesse de chute des Tetriminos augmente, rendant le jeu plus difficile.

Le joueur marque des points en complétant des lignes, et un bonus est accordé pour plusieurs lignes supprimées en une seule fois (double, triple, Tetris pour 4 lignes d'un coup).

 

Fonctionnement du notre jeu

1- Génération des Tetriminos

Une pièce est générée en haut de la grille.

Elle est choisie aléatoirement parmi les 7 formes classiques du Tetris.

Elle commence à tomber progressivement.

2- Déplacement et Rotation

Le joueur peut déplacer la pièce avec le joystick.

En appuyant sur le bouton, il peut faire tourner la pièce.

Si la pièce heurte un bord ou une autre pièce, elle s’arrête.

3- Vérification des lignes complètes

Après chaque mouvement, le programme vérifie si une ligne complète est formée.

Une ligne complète disparaît et les pièces du dessus descendent.

Un score est mis à jour en fonction du nombre de lignes supprimées.

4- Augmentation de la difficulté

Avec le temps, la vitesse de chute augmente pour rendre le jeu plus difficile.

5- Fin du jeu

Si une nouvelle pièce ne peut pas être placée, la partie est terminée et un message "Game Over" s'affiche.

 

Matériel nécessaire

1. Carte ESP32

L'ESP32 est le cœur du système, il :

- Gère l’affichage du jeu sur l’écran LCD.

- Lit les entrées du joystick pour contrôler les pièces.

- Joue des sons via le buzzer.

- Effectue la logique du jeu : chute des pièces, collisions, suppression des lignes complètes.

2. Écran LCD I2C (16x2 ou 20x4)

Pinouts of 1602 LCD display with I2C

L’écran LCD affiche la grille de jeu et les pièces en mouvement.

3. Joystick (Module XY avec bouton)

Le joystick est utilisé pour contrôler les pièces :

- Déplacement gauche/droite (Axe X).

- Rotation des pièces (Bouton poussoir).

4. Buzzer

Le buzzer est utilisé pour jouer des sons lors d’événements du jeu :

- Pose d’une pièce.

- Effacement d’une ligne.

- Game Over.

5. Breadboard

plaque d'essai

Le Breadboard facilite le câblage des composants sans soudure.

6. Fils de connexion (Dupont)

Fils de connexion

Les de connexion permettent de relier l’ESP32 aux différents composants.

Schéma de câblage du projet

 

1- Joystick :

Connecter les axes X et Y aux entrées analogiques de la carte ESP32 (exemple : GPIO34 et GPIO35).

Connecter le bouton poussoir (si utilisé) à une entrée de la carte ESP32 (exemple GPIO33).

Connecter la broche 5V à la broche 3V3 de la carte ESP32.

Connecter la broche GND à la broche GND de la carte ESP32.

2- Afficheur LCD :

Si un module I2C est utilisé, connecter les broches :

SCLGPIO22(ESP32)

SDAGPIO21(ESP32)

VCC5V(ESP32)

GNDGND(ESP32)

3- Buzzer :

Connecter la broche (+) à la broche GPIO23 de la carte ESP32.

Connecter la broche (-) à la broche GND de la carte ESP32.

 

Programme Micropython du jeu Tetris

Voici un programme MicroPython simple (version 0) du jeu Tetris sur ESP32, utilisant un écran LCD I2C (16x2), un joystick pour le contrôle et un buzzer pour les effets sonores.

Remarques:

1- Ce programme utilise les bibliothèques  i2c_lcd et lcd_api dédiées à l'écran LCD I2C pour la gestion de l'affichage.

2- N'oublier pas de flashez votre ESP32 avec MicroPython en utilisant Firmware esp32-20210902-v1.17.bin.

Explication du fonctionnement du programme

1- Initialisation du matériel :

Écran LCD via I2C.

Joystick (X, Y, bouton-poussoir).

Buzzer pour effets sonores.

3- Affichage du jeu :

Le LCD affiche les pièces en utilisant des caractères personnalisés.

La pièce descend automatiquement ligne par ligne.

4- Contrôle avec le joystick :

Gauche/Droite : Déplace la pièce.

Bas : Accélère la descente.

Bouton-poussoir : Fait pivoter la pièce.

5- Vérification des lignes complètes :

Simulation d’une suppression de ligne avec un bip sonore et un message.

6- Nouvelles pièces :

Lorsque la pièce atteint le bas, une nouvelle pièce est générée.

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