Jeu TETRIS commandé par la carte Arduino

Arduino UNO 07-03-25
118 0

Plan du tutorial

1- Présenter le jeu Tetris

2- Description de notre jeu commandé par Arduino UNO

3- Matériel nécessaire

4- Câblage des composants du projet

5- Programme Arduino du jeu Tetris

 

 

Présenter le jeu Tetris

Tetris est un jeu de puzzle emblématique créé en 1984 par Alexey Pajitnov. Il consiste à empiler des formes géométriques appelées tétriminos, qui tombent du haut de l’écran vers le bas. Le but est d’organiser ces pièces de manière à compléter des lignes horizontales, qui disparaissent une fois remplies, libérant de l’espace et permettant de continuer à jouer.

Mécanismes du jeu

1- Les Tétriminos

Il existe 7 types de tétriminos (I, O, T, L, J, S, Z), chacun formé de 4 blocs.

Les formes peuvent être tournées et déplacées avant d'atteindre le bas de l'écran.

2- Déroulement de la partie

Une pièce apparaît en haut de l’écran et tombe progressivement.

Le joueur peut déplacer la pièce vers la gauche, la droite, la faire tourner ou accélérer sa chute.

Lorsque la pièce atteint le bas ou entre en collision avec une autre, elle se fige.

Une ligne complète disparaît, ce qui augmente le score et accélère le jeu.

3- Fin du jeu

La partie se termine lorsque les blocs empilés atteignent le haut de l’écran, empêchant l’apparition d’un nouveau tétrimino.

 

Description de notre jeu commandé par Arduino UNO

Ce projet consiste à recréer le jeu Tetris sur une carte Arduino UNO, avec une interface utilisateur.

1. Affichage et grille de jeu

L’écran LCD sert à afficher la grille de jeu sous forme de caractères ASCII ou de blocs personnalisés.

L’espace de jeu est limité par la taille de l’écran LCD.

Chaque tétrimino est représenté par des caractères ou des blocs définis en mémoire.

La grille est mise à jour en fonction des mouvements du joueur.

2. Contrôle des tétriminos avec le joystick

Le joystick analogique permet au joueur de déplacer et faire pivoter les tétriminos :

Déplacement gauche/droite → Déplacement horizontal des pièces.

Poussée vers le bas → Accélération de la descente du tétrimino.

Appui sur le bouton du joystick → Rotation du tétrimino.

Le joystick génère des valeurs analogiques (0-1023), qui sont converties en commandes pour déplacer les pièces.

3. Gestion de la chute des pièces et des collisions

Un tétrimino tombe progressivement de haut en bas.

Si un mouvement entraîne une collision avec une autre pièce ou avec le bas de l’écran, la pièce se fige.

Une nouvelle pièce apparaît en haut de l’écran.

4. Suppression des lignes complètes

Si une ligne complète est formée, elle disparaît et les lignes supérieures descendent.

Un son est joué via le buzzer pour signaler la suppression.

Le score augmente en fonction du nombre de lignes supprimées.

5. Fin de la partie (Game Over)

Si les pièces atteignent le haut de l’écran, la partie est terminée.

Un son d’échec est joué par le buzzer.

L’écran affiche un message "Game Over" et propose de redémarrer la partie.

 

Matériel nécessaire

Ce projet Tetris utilise plusieurs composants électroniques connectés à une carte Arduino UNO pour recréer une version du jeu. Voici une description détaillée de chaque composant et de son rôle dans le projet.

1. Carte Arduino UNO

Arduino Uno

L'Arduino UNO est le microcontrôleur principal qui exécute le programme du jeu. Il contrôle l'affichage sur l'écran LCD, lit les entrées du joystick et génère des sons avec le buzzer.

Rôle dans le jeu

- Gère le mouvement des tétriminos à partir des entrées du joystick.

- Met à jour l'affichage de la grille sur l'écran LCD.

- Joue des sons via le buzzer en fonction des événements du jeu.

- Contrôle la détection des collisions et l’effacement des lignes.

2. Afficheur LCD I2C

Pinouts of 1602 LCD display with I2C

Un écran LCD I2C 16x2 ou 20x4 est utilisé pour afficher la grille de jeu. Il fonctionne via le protocole I2C, ce qui simplifie le câblage et réduit le nombre de broches utilisées sur l’Arduino.

Rôle dans le jeu

- Affiche la grille de jeu et les tétriminos en mouvement.

- Indique des messages comme le score, "Game Over", etc.

- Permet d’utiliser des caractères personnalisés pour mieux représenter les blocs.

3. Manette (Joystick) analogique

Le joystick analogique permet au joueur de déplacer et faire pivoter les tétriminos. Il fonctionne avec deux potentiomètres pour capter les mouvements X et Y et un bouton poussoir intégré pour déclencher des actions.

Rôle dans le jeu

- Déplacement gauche/droite : via l’axe X.

- Descente rapide : en poussant vers le bas sur l’axe Y.

- Rotation des pièces : en appuyant sur le bouton du joystick.

4. Buzzer

Le buzzer permet de générer des sons pour enrichir l'expérience du jeu (déplacement des pièces, suppression de lignes, Game Over). On peut utiliser un buzzer actif (produisant un son fixe) ou un buzzer passif (permettant de jouer des mélodies avec tone()).

Rôle dans le jeu

Son aigu quand une pièce tourne.

Bip rapide lors de la suppression d’une ligne.

Son grave en cas de Game Over.

Plaque d’essai (Breadboard)

plaque d'essai

La plaque d’essai permet de connecter les composants sans soudure et d’organiser le câblage.

fils de connexion

Fils de connexion

Les fils Dupont relient les composants à l’Arduino.

Schéma de câblage du projet

*

Joystick :

VRx : Connecté à l'entrée analogique A2 de la carte Arduino UNO.

VRy : Connecté à l'entrée analogique A3 de la carte Arduino UNO.

SW : Connecté à l'entrée numérique D2 de la carte Arduino UNO pour le bouton-poussoir.

GND : Connecté à broche GND de la carte Arduino UNO.

VCC : Connecté à broche 3V3 de la carte Arduino UNO.

2. Afficheur LCD :

SDA : Connecté à l'entrée analogique A4 de la carte Arduino UNO.

SCL : Connecté à l'entrée analogique A5 de la carte Arduino UNO.

GND : Connecté à broche GND de la carte Arduino UNO.

VCC : Connecté à broche 5V de la carte Arduino UNO.

3. Buzzer :

Connecter la broche (+)  du buzzer à la sortie numérique D3 de l'Arduino UNO.

Relier l'autre broche (-) à GND de l'Arduino UNO.

 

Programme Arduino du jeu Tetris

Ce programme crée une version simplifiée de du jeu Tetris utilisant un afficheur LCD I2C, une manette (joystick) et un buzzer.

Installer la bibilothèqueLiquidCrystal_I2C.h  pour contrôler l’écran LCD I2C.

Explication du code :

Initialisation

- L’écran LCD I2C est configuré avec l’adresse 0x27.

- Les broches du joystick (A0, A1, D2) et du buzzer (D3) sont définies.

Affichage de la grille et des tétriminos

- dessinerGrille() affiche une ligne en bas pour représenter le sol.

- afficherPiece() place un caractère # pour représenter un tétrimino.

Contrôle du jeu avec le joystick

- Déplacement gauche/droite via l’axe X.

- Descente rapide via l’axe Y.

- Rotation des pièces avec le bouton du joystick.

Gestion de la collision et Game Over

Si un bloc atteint le bas, le jeu est réinitialisé après l'affichage de "Game Over".

Effets sonores

Le buzzer joue des sons pour chaque action (tone(BUZZER, fréquence, duré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