Índice:

ESP32 VGA Tetris: 3 etapas
ESP32 VGA Tetris: 3 etapas

Vídeo: ESP32 VGA Tetris: 3 etapas

Vídeo: ESP32 VGA Tetris: 3 etapas
Vídeo: ESP32 VGA four games & joystick 2024, Novembro
Anonim
ESP32 VGA Tetris
ESP32 VGA Tetris

Nesses Instructables irei mostrar como construir um clone do clássico jogo Tetris, usando um ESP32 e gerando a saída para um monitor VGA. Este jogo é possível graças à incrível biblioteca ESP32Lib Arduino feita pela bitluni.

Você precisará do suporte da placa ESP32 instalado no IDE do Arduino (estou usando a última versão disponível agora, ou seja, o IDE 1.8.9). Você pode encontrá-lo no Library Manager procurando por “bitluni”. Como a última versão foi publicada há apenas algumas semanas, ela ainda está em andamento, mas já fornece alguns exemplos simples.

Em comparação com meus projetos anteriores, onde escrevi clones de jogos vintage semelhantes para o Arduino ou ESP8266, o ESP32 é extremamente mais poderoso, a saída VGA com várias resoluções (320x200, 320x240, 360x400, 460x480) e cores de até 14 bits. Além disso, você tem ordens de magnitude mais memória.

Neste clone do Tetris, estou usando apenas uma resolução de 320x200 com 8 cores. O código é uma "conversão" rápida de uma versão anterior para o Arduino VGA, portanto, é mal projetado e não otimizado. Por outro lado, as potencialidades do ESP32 VGA são muito maiores, dando a possibilidade de escrever jogos cada vez mais sofisticados comparáveis, eu acho, aos da era DOS. Eu gostaria que este projeto fosse útil para outros fabricantes escreverem muitos outros jogos no futuro.

Etapa 1: Placas ESP32, instalação e configuração do IDE do Arduino

Placas ESP32, instalação e configuração do IDE do Arduino
Placas ESP32, instalação e configuração do IDE do Arduino

Em primeiro lugar, você precisa adquirir um ESP32. Existem muitas versões disponíveis, mas recomendo escolher uma com muitos pinos. Comprei esta versão, mas você encontra três outras versões na descrição deste vídeo.

Existem diferentes métodos para programar o ESP32, mas aqui você precisa usar o IDE do Arduino mais recente. Para instalá-lo e fazer o upload da biblioteca bitluni ESP32lib VGA, você pode seguir este tutorial fácil. Ele também mostra como configurar sua placa ESP32 específica no IDE do Arduino.

Neste ponto você pode começar a carregar o primeiro exemplo: vá para Arquivo / Exemplos / bitluni ESP32Lib / VGA2DFeatures, conforme mostrado na imagem no início desta etapa. Se o upload funcionar sem problemas, você precisa conectar a porta VGA conforme mostrado na próxima etapa.

Etapa 2: VGA e conexão de botões

Conexão VGA e botões
Conexão VGA e botões

Para conectar o monitor VGA ao ESP32, você pode usar um conector fêmea DSUB15 (ou seja, um VGA padrão de 15 pinos) ou apenas cortar um cabo VGA.

Para Tetris e os exemplos de biblioteca de 8 cores, você não precisa de nenhum resistor, apenas conecte os pinos da seguinte forma:

  • VGA vermelho para ESP32 ping G2
  • VGA verde para ESP32 ping G15
  • VGA azul para ESP32 ping G21
  • VGA Hsync para ESP32 ping G32
  • VGA Vsync para ESP32 ping G33
  • VGA GND para ESP32 GND

Neste ponto, você deve ser capaz de ver o exemplo de VGA2DFeatures em seu monitor VGA.

Para jogar Tetris, você precisa de quatro botões e quatro resistores de cerca de 1 a 2 kOhm.

Conecte os quatro resistores de GND aos pinos ESP32 G25, G26, G34 e G35.

Conecte um lado do botão ao ESP32 3,3 Volt e o outro lado da seguinte forma:

  • botão direito para G26
  • botão esquerdo para G34
  • botão girar para G25
  • botão para baixo para G35

Última etapa: baixe ESP32_VGA_Tetris_V1.0.ino no final desta página, e copie-o para uma pasta com o mesmo nome.

Faça o upload para o microcontrolador ESP32 e você pode começar a jogar Tetris imediatamente!

Etapa 3: Conclusão e Agradecimentos

Sou muito grato a bitluni, o autor da biblioteca VGA ESP32 e os tutoriais e exemplos para usá-la e explorá-la.

Visite seu site e vídeo para ver mais detalhes e todas as suas potencialidades.

Finalmente, se você gostou deste Instructable, considere votar nele no concurso Arduino e microcontroladores!

Recomendado: