Table des matières:
- Étape 1: Préparation du matériel
- Étape 2: Préparation du logiciel
- Étape 3: Impression 3D
- Étape 4: Prise en charge de l'écran LCD
- Étape 5: préparer la plaque PETG
- Étape 6: Correction de la carte de développement ESP32
- Étape 7: Réparer la batterie Lipo
- Étape 8: Connectez la batterie et la carte de développement
- Étape 9: préparer les broches d'affichage
- Étape 10: Connectez les broches GND
- Étape 11: connectez les broches Vcc
- Étape 12: Connectez le support LCD et Dev Board
- Étape 13: connectez les broches SPI
- Étape 14: Programme Flash
- Étape 15: Connecteur I2C
- Étape 16: Assemblage Partie 1
- Étape 17: Prototype de manette de jeu I2C
- Étape 18: Construisez la manette de jeu I2C
- Étape 19: Assemblage Partie 2
- Étape 20: Facultatif: Broches de dérivation audio
- Étape 21: Quelle est la prochaine étape ?
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Ces instructables montrent comment utiliser un ESP32 et un ATtiny861 pour construire une console de jeu émulateur NES.
Étape 1: Préparation du matériel
Carte de développement ESP32
Cette fois, j'utilise une carte de développement TTGO T8 ESP32. Cette carte a un circuit de charge et de régulation Lipo intégré, elle peut aider à réduire les composants supplémentaires.
Affichage
Cette fois, j'utilise un écran LCD IPS de 2,4 . Le contrôleur de pilote est ST7789V et la résolution est de 320 x 240. Cette résolution convient mieux à la résolution 252 x 224 de l'émulateur NES.
Batterie
Cette fois, j'utilise une batterie Lipo 454261. 4,5 mm est l'épaisseur de la carte de développement ESP32 et 61 mm est la largeur de la carte.
En-tête de broche
Un en-tête à broche ronde mâle à 4 broches et un en-tête à broche ronde femelle à 4 broches pour connecter la manette de jeu I2C.
Plaque PETG
Une petite plaque PET/PETG pour supporter la carte de développement et la batterie Lipo, vous pouvez la trouver facilement dans l'emballage du produit.
PCB à usages multiples
2 PCB requis, 1 0,4 mm d'épaisseur pour supporter l'écran, 1 1,2 mm d'épaisseur pour une manette de jeu I2C.
Boutons
Un bouton 5 directions, 2 petits boutons pour Select et Start et 2 pour le bouton A et B.
Contrôleur de manette de jeu I2C
Cette fois, j'utilise un microcontrôleur ATtiny861 comme contrôleur de manette de jeu I2C.
Autres
1 résistance SMD 12 Ohm, un programmeur ISP (par exemple TinyISP)
Étape 2: Préparation du logiciel
IDE Arduino
Téléchargez et installez Arduino IDE si ce n'est pas encore fait:
Assistance ATTinyCore
Suivez les étapes d'installation pour ajouter le support ATTinyCore si ce n'est pas encore fait:
ESP-IDF
Suivez le guide de démarrage ESP-IDF pour configurer l'environnement de développement si ce n'est pas encore fait:
Étape 3: Impression 3D
Téléchargez et imprimez le boîtier:
Étape 4: Prise en charge de l'écran LCD
Découpez un PCB 24 x 27 trous 0,4 mm pour support LCD. N'oubliez pas de réserver un peu d'espace pour le pliage du FPC LCD. Ensuite, utilisez du ruban adhésif double face pour fixer l'écran LCD sur le PCB.
Étape 5: préparer la plaque PETG
Découpez une plaque PETG de 62 mm x 69 mm pour la carte de développement et le support de batterie Lipo.
Étape 6: Correction de la carte de développement ESP32
Utilisez du ruban adhésif double face pour fixer la carte de développement sur la plaque PETG.
Étape 7: Réparer la batterie Lipo
Utilisez du ruban adhésif double face pour fixer la batterie Lipo en plus de la carte de développement.
Étape 8: Connectez la batterie et la carte de développement
Étape 9: préparer les broches d'affichage
Les écrans LCD ont de nombreuses variantes de différents fournisseurs. Veuillez obtenir la fiche technique correcte et la lire avant tout patch et connexion.
Certaines broches sont réservées à l'écran tactile. Étant donné que cet écran LCD n'a pas d'écran tactile, il suffit de découper ces broches pour réduire les perturbations.
Étape 10: Connectez les broches GND
Dans la plupart des cas, il y a peu de broches à connecter à GND. Pour réduire l'effort de soudure, j'ai coupé une forme de ruban de cuivre pour atteindre toutes les broches GND, puis j'ai soudé complètement.
Étape 11: connectez les broches Vcc
Il y a 2 broches requises pour se connecter à Vcc, à l'alimentation LCD et à l'alimentation LED. Selon la fiche technique, l'alimentation LCD peut se connecter directement à la broche 3,3 V de la carte de développement, mais l'alimentation LED fonctionne un peu en dessous de 3,3 V. Il est donc préférable d'ajouter une résistance SMD au milieu, par ex. Résistance de 12 Ohms.
Étape 12: Connectez le support LCD et Dev Board
utilisez ensemble le support LCD et le support de la carte de développement pour connecter la bande. Les deux supports doivent réserver un espace d'environ 5 mm pour le pliage.
Étape 13: connectez les broches SPI
Voici le résumé de la connexion:
ACL ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> non connecté Vcc -> 3.3 V LED+ -> résistance 12 Ohm -> 3.3 V LED - -> TERRE
Étape 14: Programme Flash
- Téléchargez le code source sur GitHub:
- Sous le dossier du code source, exécutez "make menuconfig"
- Sélectionnez "Configuration spécifique à Nofrendo ESP32"
- Sélectionnez "Matériel sur lequel s'exécuter" -> "Matériel personnalisé"
- Sélectionnez "Type d'écran LCD" -> "LCD ST7789V"
- Paramètres de broche de remplissage: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Rétroéclairage -> -1, IPS -> Y
- Quitter et enregistrer
- Exécutez "make -j5 flash"
- Exécutez "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Étape 15: Connecteur I2C
Découpez les broches I2C, les broches I2C par défaut de l'ESP32 sont:
Broche 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (pas d'alimentation 5 V lorsqu'il est alimenté par la batterie Lipo) Pin 4 (GND) -> GND
Étape 16: Assemblage Partie 1
Suivez les étapes de la vidéo pour plier et presser toutes les pièces dans le boîtier.
Étape 17: Prototype de manette de jeu I2C
Le programme de la manette de jeu I2C est très simple, seulement 15 lignes de code. Mais il est un peu difficile de reprogrammer l'ATtiny861 après la soudure, il est donc préférable de le tester d'abord sur la maquette.
Téléchargez, compilez et flashez le programme depuis GitHub:
Étape 18: Construisez la manette de jeu I2C
Voici le résumé de la connexion:
Bouton ATtiny861
GND -> Tous les boutons une broche Pin 20 (PA0) -> Bouton Haut Pin 19 (PA1) -> Bouton Bas Pin 18 (PA2) -> Bouton Gauche Pin 17 (PA3) -> Bouton Droit Pin 14 (PA4) -> Bouton de sélection Broche 13 (PA5) -> Bouton de démarrage Broche 12 (PA6) -> Bouton A Broche 11 (PA7) -> Bouton B Broche 6 (GND) -> I2C mâle broche en-tête broche 4 Broche 5 (Vcc) -> I2C broche mâle en-tête broche 3 broche 3 (SCL) -> I2C broche mâle en-tête broche 1 broche 1 (SDA) -> I2C broche en-tête mâle broche 2
Étape 19: Assemblage Partie 2
Suivez les étapes de la vidéo pour installer le couvercle et la manette de jeu I2C sur le corps principal.
Étape 20: Facultatif: Broches de dérivation audio
Carte de développement ESP32 Les broches 25 et 26 produisent le signal audio analogique, il est très facile de casser ces 2 broches ainsi que les broches d'alimentation (3,3 V et GND) sur le dessus. Ensuite, vous pouvez patcher un écouteur pour le brancher. Ou même vous pouvez ajouter un module amplificateur audio avec haut-parleur pour le jouer fort.
Étape 21: Quelle est la prochaine étape ?
L'émulateur NES n'est pas la seule chose intéressante que vous puissiez faire avec ESP32. Par exemple. vous pouvez créer une console micro python avec. Le seul composant que vous devez changer est de passer de la manette de jeu I2C au clavier I2C. Je pense qu'il n'est pas si difficile de le faire avec un contrôleur ATtiny88. Vous pouvez suivre mon twitter pour voir le statut.