Í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-13 06:58
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.