Table des matières:

POING ! - Arduino Arcade Game ! : 3 étapes
POING ! - Arduino Arcade Game ! : 3 étapes

Vidéo: POING ! - Arduino Arcade Game ! : 3 étapes

Vidéo: POING ! - Arduino Arcade Game ! : 3 étapes
Vidéo: Arduino Star Wars Game - how to make 2024, Novembre
Anonim
Image
Image
POING ! - Jeu d'arcade Arduino !
POING ! - Jeu d'arcade Arduino !

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âblage du circuit
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

Conclusion
Conclusion
Conclusion
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.

Conseillé: