Table des matières:

Jeux d'arcade ESP32 VGA et joystick : 6 étapes (avec photos)
Jeux d'arcade ESP32 VGA et joystick : 6 étapes (avec photos)

Vidéo: Jeux d'arcade ESP32 VGA et joystick : 6 étapes (avec photos)

Vidéo: Jeux d'arcade ESP32 VGA et joystick : 6 étapes (avec photos)
Vidéo: Jeu "Pong" avec STM32 Blue Pill 2024, Juillet
Anonim
Image
Image
Jeux d'arcade et joystick ESP32 VGA
Jeux d'arcade et joystick ESP32 VGA
Jeux d'arcade et joystick ESP32 VGA
Jeux d'arcade et joystick ESP32 VGA

Dans ce instructable, je vais montrer comment reproduire quatre jeux d'arcade - Tetris - Snake - Breakout - Bomber - à l'aide d'un ESP32, avec la sortie pour un moniteur VGA.

La résolution est de 320 x 200 pixels, en 8 couleurs. J'ai déjà fait une version avec un Arduino Uno (voir ici), mais la résolution n'était que de 120 x 60 pixels, 4 couleurs, et la mémoire Arduino était presque pleine. Grâce aux performances supérieures de l'ESP32, la résolution et la jouabilité sont plus élevées. De plus, il y a encore beaucoup de mémoire disponible, donc l'ajout de nouveaux jeux à l'avenir sera simple.

Je montrerai également comment connecter un simple joystick via un câble RS232. J'utilise le même brochage que celui du Commodore 64.

Ce projet est rendu possible grâce à l'impressionnante bibliothèque ESP32 VGA écrite par Fabrizio Di Vittorio. Voir ici pour plus de détails.

Étape 1: cartes ESP32, installation IDE Arduino et configuration de la bibliothèque VGA

Cartes ESP32, installation Arduino IDE et configuration de la bibliothèque VGA
Cartes ESP32, installation Arduino IDE et configuration de la bibliothèque VGA
Cartes ESP32, installation Arduino IDE et configuration de la bibliothèque VGA
Cartes ESP32, installation Arduino IDE et configuration de la bibliothèque VGA
Cartes ESP32, installation Arduino IDE et configuration de la bibliothèque VGA
Cartes ESP32, installation Arduino IDE et configuration de la bibliothèque VGA

Tout d'abord, vous devez acheter un ESP32 révision 1 ou supérieure. Il existe de nombreuses versions disponibles, mais je recommande d'en choisir une avec de nombreuses broches, de préférence un modèle comme celui de cette photo, avec 38 broches. J'utilise cette version, mais je pense que beaucoup d'autres vont bien aussi. Sur ebay, vous pouvez trouver ce modèle pour moins de 7 euros, livraison comprise.

Une fois que vous obtenez le tableau, vous devez procéder aux trois sous-étapes suivantes:

  1. Installer le dernier IDE Arduino
  2. Configurez l'ESP32 dans l'IDE et
  3. Téléchargez et installez la bibliothèque VGA

Sous-étape 1. Il existe différentes méthodes pour programmer l'ESP32, mais ici, vous devez utiliser l'IDE Arduino (j'utilise la version 1.8.9, soit dit en passant). Pour l'installer, vous pouvez vous rendre sur la page Arduino IDE et suivre les instructions.

Sous-étape 2. Une fois l'opération précédente effectuée, vous devez configurer votre ESP32 au sein de l'IDE Arduino. Ce n'est pas anodin, puisque l'ESP32 n'est pas (encore ?) native dedans. Vous pouvez suivre ce tutoriel ou les étapes suivantes.

1) ouvrez l'IDE Arduino

2) ouvrez la fenêtre des préférences, Fichier/Préférence, ou appuyez sur "Ctrl+virgule"

3) allez dans les « URL supplémentaires du gestionnaire de cartes », copiez et collez le texte suivant:

https://dl.espressif.com/dl/package_esp32_index.js…

et cliquez sur le bouton OK.

4) Ouvrez le gestionnaire de tableaux. Allez dans Outils/Carte/Gestionnaire de cartes…

5) Recherchez ESP32 et appuyez sur le bouton d'installation de « ESP32 by Espressif Systems »:

6) À ce stade, lorsque vous connectez pour la première fois votre ESP32, vous devez choisir le bon modèle dans la longue liste de cartes ESP32 disponibles (voir l'image dans cette étape). En cas de doute sur le modèle, il suffit de choisir le générique, c'est-à-dire le premier. Ça marche pour moi.

7) le système doit également choisir le bon port USB (COM) et la vitesse de téléchargement (normalement 921600). À ce stade, la connexion entre votre PC et la carte ESP32 doit être établie.

Sous-étape 3. Enfin, vous devez installer la bibliothèque FabGL VGA. Cliquez ici pour télécharger le fichier compressé complet. Décompressez-le et copiez le dossier résultant (FabGL-master) dans le dossier des bibliothèques Arduino IDE, qui ressemble à:

"…\arduino-1.8.12\bibliothèques".

Étape 2: Téléchargement de « ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0 »

Téléchargez ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip au bas de cette étape. Décompressez-le et ouvrez-le avec l'IDE Arduino, puis téléchargez-le sur votre ESP32. Si vous n'avez aucun message d'erreur, le code devrait déjà être en cours d'exécution et il vous suffit de connecter le port VGA et les boutons (ou joystick).

Étape 3: connexion du port VGA

Connexion du port VGA
Connexion du port VGA

Vous avez besoin des pièces suivantes:

  • un connecteur DSUB15, c'est-à-dire un connecteur VGA femelle ou un câble VGA à couper.
  • trois résistances de 270 Ohm.

Connectez les broches ESP32 GPIO 2, 15 et 21 aux VGA Rouge, Vert et Bleu respectivement, via les résistances de 270 Ohm.

Connectez le VGA Hsync et le Vsync aux broches ESP32 GPIO 17 et 4 respectivement.

Connectez les broches 5, 6, 7, 8 et 10 des connecteurs DSUB15 à ESP32 GND.

Pour la définition des broches du connecteur VGA DSUB15, voir l'image de cette étape. Attention, il s'agit du côté soudure du connecteur femelle.

Étape 4: connectez les quatre boutons

Connectez les quatre boutons
Connectez les quatre boutons
Connectez les quatre boutons
Connectez les quatre boutons
Connectez les quatre boutons
Connectez les quatre boutons

Si vous n'avez pas de joystick C64, vous pouvez connecter quatre boutons en suivant cette étape. Si vous avez le joystick, vous pouvez sauter cette étape et passer à la suivante, mais vous pouvez quand même connecter à la fois les boutons et le joystick (ils sont de toute façon "en parallèle").

Le schéma de cette étape montre comment connecter un seul bouton (normalement ouvert) de +5V à la broche ESP32 donnée.

Notez que vous devez également connecter la broche ESP donnée à GND via une résistance de 1 à 5 kOhm. De cette façon, lorsque le bouton est relâché (ouvert), la broche ESP est exactement à zéro volt. Plus précisément, vous devez connecter quatre boutons dans l'ordre suivant:

  • Broche 12 au bouton droit
  • Broche 25 au bouton Haut
  • Broche 14 au bouton Gauche
  • Broche 35 au bouton Bas

Étape 5: connectez le joystick

Connectez le joystick
Connectez le joystick
Connectez le joystick
Connectez le joystick
Connectez le joystick
Connectez le joystick

Un joystick C64 a le brochage indiqué dans la première image de cette étape. Pour le connecter à l'ESP32, vous avez besoin d'un connecteur mâle DSUB à 9 broches (c'est-à-dire une prise), comme indiqué sur la deuxième image. J'en ai retiré un avec les broches exposées d'une vieille carte électronique. Vous pouvez utiliser un pistolet thermique pour l'enlever (mais faites-le à l'extérieur !).

Vous devez connecter les broches en suivant l'ordre numérique dans ces images. A noter que le schéma fait référence au côté joystick, il représente donc la connexion de sa prise femelle. La prise (mâle) à connecter à l'ESP32 possède les broches avec une disposition "miroir". En cas de doute, n'oubliez pas que le numéro de broche est toujours reporté sur les connecteurs mâle et femelle, comme indiqué sur la troisième photo.

Si vous souhaitez contrôler les jeux avec le joystick uniquement, connectez sa broche commune (9) à ESP32 +5V, et les broches du joystick 1, 2, 3, 4 et 6 aux broches ESP données en suivant la liste suivante.

  • ESP broche 12 au bouton droit (RS232 broche 4)
  • ESP broche 14 au bouton gauche (RS232 broche 3)
  • ESP broche 35 au bouton Bas (RS232 broche 2)
  • ESP broche 25 au bouton Up (RS232 broches 1 et 6, c'est-à-dire joystick fire)

NB les broches ESP 12, 14, 25 et 35 doivent également être connectées à GND via une résistance de 1 à 5 kOhm. De cette façon, lorsque le bouton est relâché (ouvert), la broche ESP est exactement à zéro volt.

La position UP du joystick NB2 et le bouton de tir sont connectés ensemble à la broche ESP 25-

J'ai connecté quatre boutons sur la carte PC, de cette façon je n'ai pas besoin du joystick pour jouer (bien qu'avec le joystick c'est beaucoup plus drôle). Encore une fois, la broche RS232 9 doit être connectée au +5 V et les broches du joystick sont juste en parallèle aux boutons.

Étape 6: Conclusion et remerciements

Conclusion et remerciements
Conclusion et remerciements

Si tout fonctionne correctement, connectez simplement le moniteur VGA et vous devriez pouvoir profiter d'un jeu à l'ancienne !

Vous pouvez également dessiner un jeu de Mandelbrot avec une résolution de 640 x 350 pixels, juste pour tester les capacités de la bibliothèque VGA.

Notez que le code est écrit de manière à ce que d'autres jeux puissent être facilement ajoutés à l'avenir (l'ESP32 a beaucoup d'espace !). Si ce projet suscite suffisamment d'intérêt, je peux le faire…

Enfin, je souhaite exprimer mes remerciements à Fabrizio Di Vittorio pour son impressionnante bibliothèque ESP32 VGA. Pour plus de détails, d'exemples, et… Space Invaders, visitez son site.

Conseillé: