Réalisation du Jeu PACMAN avec la carte ESP32

ESP32 09-02-25
56 0

Plan du tutorial

1- Présenter le jeu PAC-MAN

2- Principe de notre jeu

3- Matériel nécessaire

4- Schéma de câblage du projet

5- Programmation de la carte ESP32

 

 

Présenter le jeu PAC-MAN

PAC-MAN est un jeu vidéo d'arcade emblématique créé par Tōru Iwatani et publié par Namco en 1980. Il est devenu l’un des jeux les plus populaires de l’histoire du jeu vidéo grâce à son gameplay simple, addictif et son design unique.

Le joueur contrôle PAC-MAN, un personnage jaune en forme de cercle partiellement ouvert, qui doit :

Manger tous les points (appelés pac-dots) dispersés dans un labyrinthe.

Éviter les fantômes qui patrouillent le labyrinthe et essaient de le capturer.

Gagner des points en collectant des pac-dots, des fruits bonus, et en mangeant des fantômes sous certaines conditions.

 

Principe de notre jeu

Ce projet consiste à recréer le célèbre jeu PAC-MAN, adapté pour être contrôlé par une carte ESP32, affiché sur un écran LCD I2C, et joué à l'aide d'une manette (joystick ou boutons). Voici les éléments clés du gameplay, des fonctionnalités, et de la logique du jeu :

Objectif : Contrôler PAC-MAN pour collecter tous les points (ou "pac-dots") dans le labyrinthe tout en évitant les fantômes.

Conditions de Victoire : Collecter tous les points sans se faire attraper par un fantôme.

Conditions de Défaite : Si PAC-MAN est touché par un fantôme sans avoir mangé de super-capsule (power pellet).

Logique du Jeu (gérée par l’ESP32) :

1- Lire les entrées de la manette.

2- Mettre à jour la position de PAC-MAN.

3- Déplacer les fantômes avec des comportements définis (aléatoires ou semi-intelligents).

4- Détecter les collisions (PAC-MAN/fantômes, PAC-MAN/murs, PAC-MAN/points).

5- Mettre à jour l’écran LCD.

6- Jouer des sons via le buzzer (manger des points, danger, etc.).

 

Matériel nécessaire

Carte ESP32

La carte ESP32 est le cerveau du système, elle exécute le code du jeu, gère la logique de PAC-MAN, les déplacements des fantômes, la détection des collisions, etc.

Afficheur LCD I2C

Pinouts of 1602 LCD display with I2C

L'écran LCD affiche du labyrinthe de PAC-MAN, des personnages, des points à collecter etc.

Manette (Joystick ou Boutons de Direction)

La manette contrôle des déplacements de PAC-MAN (haut, bas, gauche, droite).

Buzzer

Le buzzer génére des Effets sonores (bruits de PAC-MAN mangeant des points, sons de collision, etc.).

Câble de connexion

Fils de connexion

Vous aurez besoin d'un câble pour connecter l'afficheur LCD et la manette (Joystick) à la carte ESP32.

Plaque d'essai (Breadboard) :

plaque d'essai

On utilise la plaque d'essai pour faciliter le câblage des 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.

 

Programmation de la carte ESP32

Voici un programme en MicroPython pour un jeu PAC-MAN simplifié, conçu pour une carte ESP32, une manette (joystick ou boutons), et un afficheur LCD I2C.

1- vous devez disposer d'un environnement MicroPython installé sur votre ESP32.

2- Flashez votre ESP32 avec MicroPython en utilisant Firmware esp32-20210902-v1.17.bin.

3- Importer les bibliothèques "i2c_lcd" et "lcd_api" dédiées à l'écran LCD I2C

Explication du Code

1- Initialisation de l’écran LCD :

L’écran est configuré en mode I2C avec l’adresse 0x27.

L’écran est un modèle 20x4 caractères.

2- Joystick :

La manette (Joystick) lit les mouvements horizontaux et verticaux pour contrôler PAC-MAN.

3- Buzzer :

Le Buzzer produit des sons pour les interactions importantes : points collectés ou fin de partie.

4- Création du Labyrinthe

Le labyrinthe est représenté par des chaînes de caractères :

# = murs

. = points à collecter

5- Déplacement de PAC-MAN

Lecture du joystick :

La carte ESP32 détecte les mouvements dans 4 directions : haut, bas, gauche, droite.

Mise à jour de la position :

La carte ESP32 vérifie les collisions avec les murs (#). Si PAC-MAN trouve un point (.), il le mange (+10 points) avec un bip sonore.

6- Mouvement des Fantômes

Les fantômes se déplacent aléatoirement dans des directions valides sans traverser les murs.

7- Affichage et Score

Le score s'affiche sur la dernière ligne de l’écran LCD, mis à jour après chaque mouvement.

8- Conditions de Fin de Partie

Si PAC-MAN touche un fantôme, un son d'alerte retentit et le jeu s’arrête. Le score final est affiché.

9. Gestion des Sons (Buzzer)

- Collecte de points : Bip aigu (1000 Hz, 0.1 sec)

- Game Over : Son grave (200 Hz, 0.5 sec)

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