Table des matières:
- Étape 1: Liste des matériaux
- Étape 2: Téléchargement de la bibliothèque et du croquis
- Étape 3: Connexion des pièces: le connecteur VGA
- Étape 4: Connexion des pièces: les potentiomètres et le bouton
- Étape 5: Conclusion et remerciements
Vidéo: ESP8266 VGA Pong : 5 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Dans ce Instructables, je vais montrer comment construire une reproduction du jeu classique Pong pour un moniteur VGA, à l'aide d'un ESP8266 et de quelques autres composants.
Ce jeu est rendu possible grâce à la bibliothèque EspVGAx récemment publiée sur GitHub par Sandro Maffiodo (alias Smaffer) et, à ma connaissance, c'est le premier jeu à l'exploiter.
La bibliothèque implémente une résolution de 512 x 480 pixels, stockée dans un framebuffer à l'intérieur de la RAM, ce qui nécessite 30720 octets. La résolution est énorme par rapport aux Arduino TVout ou VGAx (128 x 96 et 120 x 60 pixels respectivement). J'espère que ce jeu inspirera d'autres programmeurs à développer ou reproduire des jeux plus complexes.
Étape 1: Liste des matériaux
La bibliothèque EspVGAx nécessite un ESP8266 avec tous les GPIO exposés, comme la carte ESP-12E, NodeMCU-12E ou toute carte qui expose GPIO5 (D1), GPIO4 (D2) et GPIO13 (D7)
J'ai notamment utilisé:
- un ESP8266 NodeMCU-12E (lien ici)
- un connecteur DSUB15 (c'est-à-dire un connecteur VGA femelle)
- une résistance de 330 ohms
- une autre résistance (environ 1 à 3 kOhm)
- deux potentiomètres 10 kOhm
- un bouton poussoir (n.o.)
- deux diodes (telles que 1N4007s)
- une planche à pain
- fils
J'ai obtenu le connecteur DSUB15 d'une vieille carte PC VGA. Alternativement, vous pouvez également couper un ancien câble VGA et connecter les fils directement à la maquette.
Étape 2: Téléchargement de la bibliothèque et du croquis
Il existe différentes méthodes pour programmer et ESP8266; J'ai utilisé l'IDE Arduino pour écrire Pong et télécharger le code.
Veuillez noter que la bibliothèque EspVGAx fonctionne pour Arduino IDE 1.8.1. Si vous avez d'autres versions, le mieux est de télécharger les fichiers.zip et de les décompresser dans un dossier dédié. La version Windows est ici. Les versions pour d'autres OS sont ici.
Après cela, vous devez télécharger la bibliothèque EspVGAx à partir de la page GithHub ici (lien direct pour la version zip ici) et la décompresser dans les bibliothèques de dossiers du logiciel Arduino.
NB Il y a un petit bug dans le fichier espvgax_draw.h. Pour le corriger, il suffit de remplacer la ligne 17:
while (x0%32) { avec while (x0%32 && sw > 32) {
Enfin vous pouvez télécharger ESP8266_Pong.rar à la fin de cette étape.
Une fois décompressé, pour le télécharger sur votre ESP8266, vous devez configurer l'IDE Arduino.
Si vous ne l'avez jamais fait, vous pouvez trouver toutes les instructions nécessaires sur ce Instructables, en particulier à l'étape 2.
Une fois que tout est configuré, les paramètres de l'ESP8266 devraient ressembler à ceux indiqués dans l'image ci-dessus.
Si vous pouvez télécharger le code sans erreurs, vous pouvez commencer à assembler les pièces.
Étape 3: Connexion des pièces: le connecteur VGA
Je recommande de connecter d'abord le port VGA, comme indiqué dans les images ci-dessus. Veuillez noter qu'en connectant les trois broches Rouge, Vert et Bleu ensemble (c'est-à-dire les broches 1, 2 et 3 sur le connecteur DSUB15), vous aurez une image N&B sur votre écran. Vous pouvez également avoir différentes combinaisons de couleurs. Voir les détails sur la page GitHub de la bibliothèque.
De plus, vous devez connecter une résistance de 330 Ohm entre les broches RVB et le D7 (GPIO13) sur l'ESP8266. Cela m'a donné une image un peu grisâtre sur mon moniteur donc, après quelques essais, j'ai décidé de l'éliminer du tout.
A ce stade, si tout fonctionne correctement, vous pouvez déjà connecter le moniteur et voir l'écran de début du jeu, avec la bannière "ESP8266 VGAx Pong".
Étape 4: Connexion des pièces: les potentiomètres et le bouton
Le bouton doit être connecté entre 3.3V et la broche D0 (GPIO16). Connectez également la résistance de 1 à 3 kOhm de D0 à la masse. Cela évite à D0 d'être dans un état indéterminé lorsque le bouton est ouvert.
Le branchement des deux potentiomètres est moins trivial, en effet l'ESP8266 n'a qu'un port d'entrée analogique A0 (ADC0) ! L'astuce consiste à connecter les deux sorties pot.s au même port et à les "multiplexer". Le multiplexage signifie simplement que vous allez allumer un potentiomètre, le lire, puis l'éteindre et passer au second.
Si vous voulez en savoir plus sur cette méthode, vous pouvez lire ce Instructable.
Connectez un potentiomètre extrême à GND, l'autre extrême à D5 pour le potentiomètre gauche et D6 pour le droit.
Chaque broche centrale du potentiomètre doit être connectée à une diode individuelle, et les autres côtés des diodes doivent être connectés à A0 (ADC0), avec la polarité indiquée dans l'image ci-dessus.
Étape 5: Conclusion et remerciements
Je remercie Sandro Maffiodo - SMAFFER - pour la bibliothèque ESPVGAX. Ce jeu ne serait pas possible sans lui.
J'espère que ce Instructable sera une source d'inspiration pour d'autres programmeurs pour faire des reproductions de jeux d'arcade classiques plus complexes avec l'ESP8266, qui a beaucoup moins de limitations que l'Arduino.
Enfin, j'ai écrit ce Instructable pour le soumettre au concours de jouets: si vous l'aimez ou le reproduisez, veuillez prendre un moment pour le voter !
Conseillé:
ESP8266 - Irrigation de jardin avec minuterie et télécommande via Internet / ESP8266 : 7 étapes (avec photos)
ESP8266 - Irrigation de jardin avec minuterie et télécommande via Internet / ESP8266 : ESP8266 - Irrigation télécommandée et avec synchronisation pour les jardins potagers, les jardins de fleurs et les pelouses. Il utilise le circuit ESP-8266 et une vanne hydraulique / électrique pour l'alimentation de l'irrigateur.Avantages : Faible coût (~ US$ 30,00) Commandes d'accès rapide ov
Pong Tennis avec matrice LED, Arduino et joysticks : 5 étapes (avec photos)
Pong Tennis avec matrice LED, Arduino et joysticks : Ce projet s'adresse aussi bien aux débutants qu'aux bricoleurs expérimenté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 sur une plus grande avance
PC de base Arduino avec sortie VGA : 5 étapes (avec photos)
PC de base Arduino avec sortie VGA: Dans mon précédent Instructable, j'ai montré comment construire un ordinateur rétro 8 bits exécutant BASIC, au moyen de deux Arduino et avec un signal de sortie en noir et blanc pour un écran de télévision. Maintenant, je vais montrer comment construire le même ordinateur, mais avec le signal de sortie dans
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): 10 étapes (avec photos)
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): Dans mon projet précédent, j'ai développé une balance de salle de bain intelligente avec Wi-Fi. Il peut mesurer le poids de l'utilisateur, l'afficher localement et l'envoyer vers le cloud. Vous pouvez obtenir plus de détails à ce sujet sur le lien ci-dessous : https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Affichage de chapeau à LED avec pong : 12 étapes (avec photos)
Affichage de chapeau à LED avec Pong : Il y a quelque temps, en tant que premier projet de microcontrôleur, j'ai créé un jeu de Pong sur un écran LED 5x7, mais rien n'en est devenu. Récemment, on m'a donné un casque de sécurité dans le cadre d'un uniforme (pour une compétition d'ingénierie) et on m'a dit de le personnaliser, et je me suis souvenu