← Retour au portfolio

Projet n°4

Projet 4 – Space Invader sur MAX7219

📸 Photos

Schéma du Space Invader sur Arduino — visuel d’origine à réintégrer
Montage réel du Space Invader — visuel d’origine à réintégrer

🔧 Objectif du projet

Construire un simple Space Invader jeu de style arcade utilisant :

  • UN Matrice de LED MAX7219 8×8 pour afficher le jeu,
  • UN manette de jeu pour contrôler le vaisseau spatial,
  • UN Écran LCD 1602 (non I2C) pour afficher l'écran de bienvenue et le score actuel.

Ce projet combine électronique, logique de jeu interactif, et contrôle de l'affichage


📦 Matériel utilisé

  • 1 × Arduino UNO
  • 1 × matrice LED MAX7219 (8 × 8)
  • 1 × manette analogique
  • 1 × écran LCD1602 (pas d'I2C)
  • 1x 220 résistances
  • Fils de liaison, planche à pain, potentiomètre (pour le contraste LCD)

📟Code

Vous devez installer LedContrôle et Cristal Liquide . Le code : Ici

🔌 Aperçu du câblage

MAX7219

  • VACARME → Broche 11
  • CLK → Broche 13
  • CS/CHARGER → Broche 10

LCD1602

  • RS → D8, E → D7, D43-D7 → D9 à D12
  • Potentiomètre entre V0 et GND pour régler le contraste

Manette

  • VRx (horizontal) → A3
  • Vcc / GND → 5V / GND

🧠 Comment ça marche

  1. Écran de démarrage :
    L'écran LCD affiche : Space Invader Move to play! Le MAX7219 montre un grand « S » comme le logo du jeu (inutile mais amusant ^^).
  2. Démarrer le jeu :
    Le jeu commence lorsque vous déplacez le joystick vers la gauche ou la droite (axe X).
  3. Jouabilité :
    • Vous contrôlez un vaisseau spatial au bas de la matrice LED.
    • Le tir est automatique (une balle à la fois).
    • Trois extraterrestres tomber du haut de l’écran.
    • Chaque coup extraterrestre vous donne +1 point (affiché sur l’écran LCD).
    • Si un extraterrestre atteint votre position → Jeu terminé.
  4. Animation de jeu :
    Une animation rapide s'affiche et le jeu redémarre automatiquement.

✨ Résultats

  • Entièrement jouable et réactif
  • Commandes par joystick fluides
  • Affichage clair et en temps réel des scores LCD1602 non I2C
  • Boucle de relecture facile, parfaite pour apprendre ou s'amuser

💡 Ce que j'ai appris

  • Comment coordonner deux systèmes d'affichage (Matrice LED + LCD)
  • Manutention entrées joystick analogiques pour le contrôle directionnel
  • En utilisant millis() gérer mouvement chronométré (délai non bloquant)
  • Basique logique de conception de jeux en utilisant des tableaux et des drapeaux
  • Écrire du code Arduino propre avec des fonctions modulaires

🧪 Améliorations possibles

  • Ajouter un bouton à tirer manuellement des balles
  • Utilisez un buzzer pour bruitage (tirer, frapper, game over)
  • Mettre en œuvre un réglage de la difficulté (la vitesse des extraterrestres augmente avec le temps)
  • Rendre la matrice plus lisse en optimisant loop() avec seulement millis() (Non delay())

📁Code Source

Découvrez le projet complet et le code sur GitHub :
👉 My Github Link

Et un autre projet que j'ai réalisé (Écran pour Musique Spotify sur LCD1602)