Table des matières:

ESP8266 VGA Pong : 5 étapes (avec photos)
ESP8266 VGA Pong : 5 étapes (avec photos)

Vidéo: ESP8266 VGA Pong : 5 étapes (avec photos)

Vidéo: ESP8266 VGA Pong : 5 étapes (avec photos)
Vidéo: Sun-Powered Fun: Solar Charged Arduino Pong Game! 2024, Novembre
Anonim
Image
Image
Liste des matériaux
Liste des matériaux

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

Bibliothèque et téléchargement de croquis
Bibliothèque et téléchargement de 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

Connexion des pièces: le connecteur VGA
Connexion des pièces: le connecteur VGA
Connexion des pièces: le connecteur VGA
Connexion des pièces: le connecteur VGA
Connexion des pièces: le connecteur VGA
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

Connexion des pièces: les potentiomètres et le bouton
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é: