
Índice:
- Etapa 1: Preparação de Hardware
- Etapa 2: Preparação do software
- Etapa 3: Impressão 3D
- Etapa 4: Suporte para LCD
- Etapa 5: preparar a placa PETG
- Etapa 6: consertar placa de desenvolvimento ESP32
- Etapa 7: consertar a bateria Lipo
- Etapa 8: conectar a bateria e a placa de desenvolvimento
- Etapa 9: Prepare os pinos de exibição
- Etapa 10: conectar os pinos GND
- Etapa 11: conectar os pinos Vcc
- Etapa 12: Conecte o LCD e o suporte da placa de desenvolvimento
- Etapa 13: Conecte os pinos SPI
- Etapa 14: Programa Flash
- Etapa 15: Conector I2C
- Etapa 16: Montagem Parte 1
- Etapa 17: Gamepad protótipo I2C
- Etapa 18: Construir Gamepad I2C
- Etapa 19: Montagem Parte 2
- Etapa 20: Opcional: Pinos de quebra de áudio
- Etapa 21: o que vem a seguir?
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03



Estes instructables mostram como usar um ESP32 e ATtiny861 para construir um console de jogo emulador NES.
Etapa 1: Preparação de Hardware


ESP32 Dev Board
Desta vez, estou usando uma placa de desenvolvimento TTGO T8 ESP32. Esta placa tem carregamento Lipo embutido e circuito regulador, pode ajudar a reduzir os componentes extras.
Exibição
Desta vez, estou usando um LCD IPS de 2,4 . O controlador do driver é ST7789V e a resolução é 320 x 240. Esta resolução é mais adequada para a resolução 252 x 224 do emulador NES.
Bateria
Desta vez, estou usando uma bateria Lipo 454261. 4,5 mm é a espessura da placa de desenvolvimento ESP32 e 61 mm é a largura da placa.
Pin Header
Um cabeçalho de pino redondo macho de 4 pinos e um cabeçalho de pino redondo fêmea de 4 pinos para conectar o gamepad I2C.
Placa PETG
Uma pequena placa PET / PETG para suportar a placa de desenvolvimento e a bateria Lipo, você pode encontrá-la facilmente na embalagem do produto.
PCB de uso múltiplo
Requer 2 PCB, 1 de 0,4 mm de espessura para suportar a tela, 1 de 1,2 mm de espessura para um gamepad I2C.
Botões
Um botão de 5 direções, 2 botões pequenos para Selecionar e Iniciar e 2 para o botão A e B.
I2C Gamepad Controller
Desta vez, eu uso um microcontrolador ATtiny861 como controlador de gamepad I2C.
Outros
1 resistor SMD de 12 Ohms, um programador ISP (por exemplo, TinyISP)
Etapa 2: Preparação do software



IDE Arduino
Baixe e instale o Arduino IDE, se ainda não:
Suporte ATTinyCore
Siga as etapas de instalação para adicionar suporte ATTinyCore, se ainda não:
ESP-IDF
Siga o guia de introdução do ESP-IDF para configurar o ambiente de desenvolvimento, se ainda não:
Etapa 3: Impressão 3D

Baixe e imprima o caso:
Etapa 4: Suporte para LCD


Corte um PCB de 24 x 27 orifícios de 0,4 mm para suporte de LCD. Lembre-se de reservar algum espaço para dobrar o LCD FPC. Em seguida, use um pouco de fita adesiva dupla-face para fixar o LCD no PCB.
Etapa 5: preparar a placa PETG


Corte uma placa PETG de 62 mm x 69 mm para placa de desenvolvimento e suporte de bateria Lipo.
Etapa 6: consertar placa de desenvolvimento ESP32

Use fita adesiva dupla-face para fixar a placa de desenvolvimento na placa PETG.
Etapa 7: consertar a bateria Lipo

Use fita adesiva dupla-face para fixar a bateria Lipo ao lado da placa de desenvolvimento.
Etapa 8: conectar a bateria e a placa de desenvolvimento

Etapa 9: Prepare os pinos de exibição

O display LCD tem muitas variações de diferentes fornecedores. Obtenha a folha de dados correta e leia-a antes de qualquer patch e conexão.
Alguns pinos são reservados para painel de toque. Uma vez que este LCD não tem painel de toque, simplesmente corte esses pinos para reduzir a perturbação.
Etapa 10: conectar os pinos GND


Na maioria dos casos, há poucos pinos que precisam ser conectados ao GND. Para reduzir o esforço de soldagem, cortei um formato de fita de cobre para alcançar todos os pinos GND e, em seguida, soldei completamente.
Etapa 11: conectar os pinos Vcc

Existem 2 pinos necessários para conectar ao Vcc, alimentação do LCD e alimentação do LED. De acordo com a folha de dados, a energia do LCD pode se conectar diretamente ao pino de 3,3 V da placa de desenvolvimento, mas a energia do LED opera um pouco abaixo de 3,3 V. Portanto, é melhor adicionar um resistor SMD no meio, por exemplo, Resistor de 12 ohms.
Etapa 12: Conecte o LCD e o suporte da placa de desenvolvimento

use fita conecte o suporte do LCD e o suporte da placa de desenvolvimento juntos. Ambos os suportes devem reservar cerca de 5 mm de folga para dobrar.
Etapa 13: Conecte os pinos SPI

Aqui está o resumo da conexão:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> não conectado Vcc -> 3,3 V LED + -> 12 Ohm resistor -> 3,3 V LED - -> GND
Etapa 14: Programa Flash




- Baixe o código-fonte no GitHub:
- Na pasta do código-fonte, execute "make menuconfig"
- Selecione "Nofrendo ESP32-specific configuration"
- Selecione "Hardware para executar" -> "Hardware personalizado"
- Selecione "Tipo de LCD" -> "ST7789V LCD"
- Configurações de pino de preenchimento: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Luz de fundo -> -1, IPS -> Y
- Sair e salvar
- Execute "make -j5 flash"
- Execute "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Etapa 15: Conector I2C



Separe os pinos I2C, os pinos I2C padrão do ESP32 são:
Pino 1 (SCL) -> GPIO 22
Pino 2 (SDA) -> GPIO 21 Pino 3 (Vcc) -> 3,3 V (sem alimentação de 5 V enquanto alimentado por bateria Lipo) Pino 4 (GND) -> GND
Etapa 16: Montagem Parte 1


Siga as etapas do vídeo para dobrar e apertar todas as peças no estojo.
Etapa 17: Gamepad protótipo I2C


O programa para o Gamepad I2C é muito simples, apenas 15 linhas de código. Mas é um pouco difícil reprogramar o ATtiny861 após a soldagem, então é melhor testá-lo primeiro na placa de ensaio.
Baixe, compile e atualize o programa no GitHub:
Etapa 18: Construir Gamepad I2C



Aqui está o resumo da conexão:
Botão ATtiny861
GND -> Todos os botões um pino Pino 20 (PA0) -> botão Acima Pino 19 (PA1) -> Botão Abaixo Pino 18 (PA2) -> Botão Esquerdo Pino 17 (PA3) -> Botão Direito Pino 14 (PA4) -> Botão de seleção Pino 13 (PA5) -> botão Iniciar Pino 12 (PA6) -> botão A Pino 11 (PA7) -> botão B Pino 6 (GND) -> I2C pino macho cabeçalho pino 4 Pino 5 (Vcc) -> I2C pino macho do conector pino 3 Pino 3 (SCL) -> I2C pino macho cabeçalho pino 1 Pino 1 (SDA) -> I2C pino macho conector pino 2
Etapa 19: Montagem Parte 2



Siga as etapas do vídeo para instalar a tampa e o gamepad I2C no corpo principal.
Etapa 20: Opcional: Pinos de quebra de áudio



Os pinos 25 e 26 da placa de dev ESP32 estão emitindo o sinal de áudio analógico, é muito fácil separar esses 2 pinos e também os pinos de alimentação (3,3 V e GND) na parte superior. Em seguida, você pode patchear um fone de ouvido para conectá-lo. Ou até mesmo você pode adicionar um módulo de amplificador de áudio com alto-falante para reproduzi-lo alto.
Etapa 21: o que vem a seguir?

O emulador NES não é a única coisa interessante que você pode fazer com o ESP32. Por exemplo. você pode construir um console micro Python com ele. O único componente que você precisa alterar é do gamepad I2C para o teclado I2C. Acho que não é tão difícil fazer isso com um controlador ATtiny88. Você pode seguir meu twitter para ver o status.
Recomendado:
MutantC V3 - PC HandHeld modular e poderoso: 9 etapas (com imagens)

MutantC V3 - PC HandHeld modular e poderoso: uma plataforma portátil Raspberry-pi com um teclado físico, display e cabeçalho de expansão para placas personalizadas (como o Arduino Shield) .mutantC_V3 é o sucessor de mutantC_V1 e V2. Verifique mutantC_V1 e mutantC_V2.https: //mutantc.gitlab.io/https: // gitla
MutantC_v2 - um Raspberry Pi Handheld / UMPC fácil de construir: 8 etapas (com imagens)

MutantC_v2 - um Raspberry Pi Handheld / UMPC fácil de construir: uma plataforma portátil Raspberry-pi com um teclado físico, display e cabeçalho de expansão para placas personalizadas (como o Arduino Shield) .mutantC_V2 é o sucessor de mutantC_V1. Verifique mutantC_V1 aqui.https: //mutantc.gitlab.io/https: //gitlab.com/mutant
1963 Pi Tourer Game Console: 9 etapas (com imagens)

Console de jogo 1963 Pi Tourer: Este é um rádio de carro Sky Tourer 1963 que eu converti em um prático console de jogo retro. Ele tem um Raspberry Pi 3 integrado, com 6 botões de arcade e um joystick que controla os sprites RetroPie antigos por meio de uma placa controladora Picade. O
Arduino Pocket Game Console + A-Maze - Maze Game: 6 etapas (com imagens)

Arduino Pocket Game Console + A-Maze - Maze Game: Bem-vindo ao meu primeiro instructable! O projeto que quero compartilhar com vocês hoje é o Arduino maze game, que se tornou um console de bolso tão capaz quanto Arduboy e consoles semelhantes baseados em Arduino. Ele pode ser exibido com meus (ou seus) jogos futuros graças à expo
Handheld 6 Note Music Box / Instrument (fácil de fazer e melhorar!): 5 etapas (com imagens)

Handheld 6 Note Music Box / Instrument (Fácil de fazer e melhorar!): Hi there! Inspirado por Martin Molin, membro de uma banda sueca chamada Wintergatan, recentemente me apaixonei por caixas de música e tudo sobre elas. Pessoas que fazem músicas para caixas de música ainda estão usando a maneira antiga de perfurar a música, não