Table des matières:
Vidéo: POING ! - Arduino Arcade Game ! : 3 étapes
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Nous allons créer un jeu d'arcade de style PONG qui utilise des pièces du kit "Le kit de démarrage le plus complet UNO R3 Project" d'Elegoo Inc.
Divulgation complète - La plupart des pièces fournies pour ce Instructable ont été fournies à l'auteur par Elegoo Inc.
J'ai voulu construire un projet en utilisant un module LED Matrix. L'affichage LED de base 8x8 nécessite l'utilisation de registres à décalage supplémentaires pour pouvoir adresser les LED individuelles dans la matrice. Au lieu de cela, ce projet utilise le module LED MAX7219 8x8. C'est un module très simple à utiliser.
Je suggérerais qu'en raison du grand nombre de connexions de câblage sur ce projet, il serait considéré comme un niveau INTERMÉDIAIRE Instructable.
Commençons!
Fournitures
Pièces du kit de démarrage Elegoo utilisées (https://rebrand.ly/dvjb3w8)
- Microcontrôleur UNO R3
- Module LED 8x8 MAX7219
- Module d'affichage LCD 16x2
- Potentiomètre et bouton de réglage 10K
- Fils Dupont
- Résistance 220R
- Avertisseur piézo passif
- Module d'alimentation
- Adaptateur 9V 1A - nécessaire car l'UNO ne peut pas fournir suffisamment de courant pour le module LED 8x8
- Planche à pain
Pièces supplémentaires nécessaires
Potentiomètre linéaire 2 x 10K - peu coûteux et largement disponible sur eBay, AliExpress, Banggood, etc.
Étape 1: Câblage du circuit
Câblez le circuit selon le schéma de câblage. Prends ton temps. Il y a BEAUCOUP de connexions requises pour les deux écrans.
Remarquez sur la photo du circuit que le module d'alimentation est fixé sur le côté gauche de la planche à pain et que l'adaptateur CC 9V 1A est branché sur le module d'alimentation afin qu'un courant suffisant soit fourni à la matrice LED. Il n'y a AUCUNE connexion entre la broche 5V de l'UNO et la maquette. MAIS, la broche GND sur l'UNO est connectée à GND sur la maquette.
Vérifiez deux fois et trois fois votre travail.
Étape 2: Code Arduino
Cette instructable suppose que vous savez déjà comment programmer dans Arduino.
Téléchargez le croquis Arduino ci-joint. Assurez-vous d'avoir ajouté la bibliothèque LedControl à vos bibliothèques Arduino. J'ai utilisé la version d'Eberhard Fahle. Recherchez simplement MAX7219 dans le navigateur Gérer les bibliothèques et vous le trouverez et l'installerez.
Assurez-vous que le fichier pitches.h se trouve dans le dossier de votre croquis. Il est utilisé pour jouer les sons dans le jeu.
Un peu sur le timing
Comme la commande delay() interrompt complètement l'exécution de votre esquisse lorsqu'elle s'exécute, nous recherchons plutôt des périodes de temps écoulées qui se produisent lorsque nous voulons exécuter des parties de l'esquisse liées à l'animation. Nous recherchons un laps de temps prédéfini avant d'exécuter des parties de l'esquisse, telles que la mise à jour de l'emplacement de la balle sur l'écran.
Plus important encore, la commande delay() n'est réellement exécutée que dans la méthode loop(). Il ne s'exécute généralement pas comme prévu dans d'autres méthodes. Ainsi, tout le minutage lié à l'animation est effectué dans la méthode loop().
Exemple:
Nous définissons des variables de type « long » et quelques booléens, puis les définissons à la fin de setup().
bSeuil = 80; // le temps en millisecondes entre les mises à jour des balles
ballTime = millis (); // défini sur l'heure système actuelle
bon = faux; // la LED de la boule est-elle allumée ou éteinte
ballReturn = false; // rendons-nous une balle après un coup de raquette ?
Dans loop() pour dessiner la balle on a:
if ((millis() - ballTime > bThresh) && bon == false) {// si la balle est éteinte et que suffisamment de temps s'est écoulé ballOn(); // allume la LED de la balle
bon = vrai; // la balle est maintenant allumée
BallTime = millis(); // réinitialiser le ballTime à l'heure actuelle
}
if ((millis() - ballTime > bThresh) && bon == true) { // si la balle est allumée et que suffisamment de temps s'est écoulé
ballOff(); // éteint la LED de la boule
bon = faux; // la balle est maintenant éteinte
BallTime = millis(); remettre le ballTIME à l'heure actuelle
}
Il y a plusieurs façons de faire ce jeu. Ce ne sont que mes préférences.
Le croquis est entièrement documenté donc je vous invite à lire le code pour voir comment cela fonctionne.
Vérifiez, compilez et téléchargez votre code.
Profitez de votre jeu !
Étape 3: Conclusion
Mes remerciements vont à Elegoo Inc pour avoir fourni le kit de démarrage utilisé dans ce projet. C'est un kit avec une grande variété de pièces et de modules qui vous permettra de bien entrer dans le monde Arduino Maker.