Table des matières:
- Étape 1: cartes ESP32, installation IDE Arduino et configuration de la bibliothèque VGA
- Étape 2: Téléchargement de « ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0 »
- Étape 3: connexion du port VGA
- Étape 4: connectez les quatre boutons
- Étape 5: connectez le joystick
- Étape 6: Conclusion et remerciements
Vidéo: Jeux d'arcade ESP32 VGA et joystick : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
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
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:
- Installer le dernier IDE Arduino
- Configurez l'ESP32 dans l'IDE et
- 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
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
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
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
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é:
Jeux Arduino avec écran LED en ligne : 7 étapes (avec photos)
Jeux Arduino à affichage LED en ligne : alias système de jeu à affichage à échelle LED. Un Attiny-85 équipé de matériel et de logiciels pour lire des "vidéos" bourrés d'action jeux, sur un affichage LED en ligne. Il dispose d'un affichage en échelle multiplexé à 12 LED et prend en charge jusqu'à 6 entrées de bouton et un opti
Comment télécharger des jeux sur Arduboy et 500 jeux sur Flash-cart : 8 étapes
Comment télécharger des jeux sur Arduboy et 500 jeux sur Flash-cart : J'ai fait un Arduboy maison avec une mémoire Flash série qui peut stocker jusqu'à 500 jeux pour jouer sur la route. J'espère partager comment y charger des jeux, y compris comment stocker des jeux dans la mémoire flash série et créer votre propre package de jeu consolidé
Mini console de jeux Ardubaby avec 500 jeux : 10 étapes
Mini console de jeu Ardubaby avec 500 jeux : Crédits au créateur (Kevin Bates), l'Arduboy est une console de jeu 8 bits très réussie. Il y avait des milliers de jeux écrits par l'amateur qui les a partagés librement sur le forum communautaire d'Arduboy afin que plus de gens puissent apprendre à coder. Le hardw
Console Arduino VGA avec cinq jeux : 4 étapes
Console Arduino VGA avec cinq jeux : Dans mes précédents Instructables, j'ai reproduit des versions simplifiées de certains des jeux d'arcade classiques les plus populaires, au moyen d'un Arduino nu et de quelques autres composants. Plus tard, j'ai réuni cinq d'entre eux dans un seul croquis. Ici, je vais montrer
20 heures 20 $ de table d'arcade avec des centaines de jeux intégrés. : 7 étapes (avec photos)
20 heures 20 $ Table Top Arcade Build avec des centaines de jeux intégrés.: Je voulais faire quelque chose comme ça depuis un moment, mais je n'étais pas pressé avec beaucoup d'autres projets toujours à faire. Comme je n'étais pas pressé, j'ai juste attendu d'avoir accumulé tous les composants nécessaires à la construction à des prix abordables. Voici