Table des matières:

Pong Tennis avec matrice LED, Arduino et joysticks : 5 étapes (avec photos)
Pong Tennis avec matrice LED, Arduino et joysticks : 5 étapes (avec photos)

Vidéo: Pong Tennis avec matrice LED, Arduino et joysticks : 5 étapes (avec photos)

Vidéo: Pong Tennis avec matrice LED, Arduino et joysticks : 5 étapes (avec photos)
Vidéo: Make Your Own DIY Ping Pong Game EASY// 2024, Novembre
Anonim
Pong Tennis Avec Matrice LED, Arduino et Joysticks
Pong Tennis Avec Matrice LED, Arduino et Joysticks

Ce projet s'adresse aussi bien aux débutants qu'aux bricoleurs confirmés. À un niveau de base, cela peut être fait avec une planche à pain, des fils de liaison et collé à un morceau de ferraille (j'ai utilisé du bois) avec Blu-Tack et sans soudure. Cependant, à un niveau plus avancé, il peut être soudé à une carte perforée ou à un PCB personnalisé.

Comme il s'agissait d'un projet de verrouillage, je n'avais pas accès à de nombreux outils ou matériaux, c'est pourquoi il est collé à un morceau de bois de rebut légèrement trop petit avec Blu-Tack, mais malgré cela, c'est un projet amusant qui se réunit rapidement et est composé de pièces couramment disponibles qui peuvent être trouvées à bas prix en ligne.

Étape 1: Pièces

Pour faire le jeu Pong dont vous avez besoin;

  • 1x Un Arduino (tout type fonctionnera)
  • 4x MAX7219 8x8 Matrices LED
  • 2x manettes de jeu
  • 1x buzzer piézo (facultatif)
  • 15x cavaliers femelle-femelle (3x groupes de 5)
  • 15x fils de connexion mâle-femelle (3x groupes de 5)
  • 18x fils de connexion mâle-mâle
  • 1x planche à pain
  • 1x 220Ω Résistance

Au lieu d'une carte Arduino Uno ou Nano, vous pouvez utiliser un Arduino basé sur une maquette;

  • 1x CI ATmega328p 28 broches
  • 1x oscillateur à cristal 16kHz
  • 2x 22pF Condensateurs Céramique
  • 1x convertisseur USB FTDI UART
  • 1x 100uF condensateur électrolytique
  • 1x sortie micro USB (en option)

Outils;

  • PC avec Arduino IDE (et bibliothèque LedControl)
  • Câble USB approprié pour votre Arduino
  • Power Bank pour alimenter le jeu loin de votre ordinateur

Étape 2: Câblage

Câblage
Câblage
Câblage
Câblage

Le câblage est très simple car tout ce dont vous avez besoin est des câbles de connexion pour connecter les en-têtes des matrices et des joysticks à l'Arduino. La seule complication est l'alimentation car l'Arduino Uno n'a que 3 connexions GND et une connexion 5v. C'est là que la maquette entre en jeu et agit comme un rail de distribution d'alimentation pour tous les composants. Si vous utilisez un NANO, la maquette aura le même objectif et vous permettra de tout brancher.

Pour le câblage, suivez ces connexions.

  • Joystick gauche - GND et 5v à leurs rails d'alimentation respectifs. SW - broche 9, VRx - A0, VRy - A1.
  • Joystick droit - GND et 5v à leurs rails d'alimentation respectifs. SW - broche 8, VRx - A2, VRy - A3.
  • Matrice LED la plus à droite - GND et 5v à leurs rails d'alimentation respectifs. DIN - 13, CS - 11, CLK - 12. (Comme ligne 25)
  • Toutes les autres matrices LED peuvent être connectées en guirlande à la sortie de la première en allant de droite à gauche pour que le code fonctionne correctement.
  • Buzzer en option - Anode (+) via une résistance de limitation de courant de 220 à la broche 10, Cathode (-) - GND.

Étape 3: Câblage alternatif

Câblage altern-t.webp
Câblage altern-t.webp
Câblage altern-t.webp
Câblage altern-t.webp
Câblage altern-t.webp
Câblage altern-t.webp

Après l'avoir câblé avec un Arduino UNO pour économiser de l'espace, j'ai décidé de mettre le circuit intégré Arduino de l'UNO sur la planche à pain avec un oscillateur à cristal 16Mhz et une paire de condensateurs 22pF de chaque côté à la terre. Je pense que c'était une modification intéressante car elle rend le projet plus net et plus fini, mais vous devez utiliser un programmeur USB FTDI pour mettre à jour le programme.

Étape 4: Code + Explication

Pour télécharger le code sur l'Arduino, téléchargez la bibliothèque LedControl à partir de GitHub ici, github.com/wayoda/LedControl et ajoutez le fichier Zip ou ajoutez-le via le gestionnaire de bibliothèque dans l'IDE. Après cela, ouvrez le croquis ci-joint, sélectionnez votre Arduino dans les paramètres de la carte et du port sous Outils et téléchargez-le sur l'arduino.

Explication

Ligne 1: ajoute la bibliothèque

Ligne 5-23: Configure toutes les variables, constantes et numéros de broche.

Ligne 25: configure le LED Martix et définit les broches de contrôle et le nombre d'écrans.

Ligne 27: Configure la fonction de réinitialisation.

Ligne 30-35: Fonction d'arrêt pour allumer/éteindre tous les affichages ensemble.

Ligne 38-43: fonction SetIntensity pour régler la luminosité de tous les écrans ensemble.

Ligne 46-51: fonction ClearAll pour effacer tous les affichages ensemble.

Ligne 53-64: joystick Fonction pour obtenir la position des joysticks, les mapper sur les 7 positions possibles de la batte pour frapper la balle puis déplacer la batte vers la nouvelle position.

Ligne 67-435: fonction qui déplace la balle vers le joueur gauche à la hauteur et à la vitesse spécifiées, vérifie si le joueur l'a frappée et continue et définit le statut de crash sur vrai ou fait rebondir la balle, ajoute 1 au score et augmente la vitesse.

Ligne 438-811: fonction qui déplace la balle vers le bon joueur à la hauteur et à la vitesse spécifiées, vérifie si le joueur l'a frappée et continue et définit le statut de crash sur vrai ou fait rebondir la balle, ajoute 1 au score et augmente la vitesse.

Ligne 813-823: Fonction d'affichage d'un smiley, d'une tique, d'une croix ou d'un point d'interrogation sur l'affichage spécifié (0 à droite à 3 à gauche).

Ligne 861-979: Fonction d'affichage des nombres 0-9 à l'affichage spécifié.

Ligne 981-1047: Fonction d'affichage du score à chaque joueur côté de l'écran.

Ligne 1049-1064: Fonction pour vérifier si le lecteur est prêt.

Ligne 1066-1076: Setup Section du code pour le code qui est exécuté une fois au démarrage du programme.

Ligne 1078-1136: section Main Loop pour la logique de jeu où toutes les fonctions sont utilisées et où est décidé qui gagne, puis redémarre le programme après 5 secondes d'affichage du score.

Étape 5: Merci d'avoir lu

Merci d'avoir lu
Merci d'avoir lu

Merci d'avoir lu ce Instructable, c'était un projet de verrouillage amusant qui s'est réuni en quelques jours alors que j'en apprenais plus sur la programmation Arduino. Si vous l'avez apprécié, n'hésitez pas à voter pour lui dans le concours Arduino.

Conseillé: