Na WJ Componentes, seu próximo projeto ganha vida! Garanta já seus componentes!
31/01/2025

Como Criar um Jogo Tetris com Arduino e Display OLED

O Tetris é um dos jogos mais icônicos da história dos videogames. Que tal criar sua própria versão usando um Arduino e um display OLED? Este projeto permite que você desenvolva uma interface gráfica interativa e controle as peças do jogo com botões, proporcionando uma experiência divertida e educativa ao trabalhar com eletrônica e programação embarcada.

Se você é um entusiasta da eletrônica ou está começando no mundo dos microcontroladores, este projeto é ideal para aprimorar seus conhecimentos em hardware e software. Vamos ao passo a passo!


Materiais Necessários

  • Arduino UNO

  • Protoboard

  • Display OLED 128x64 (I2C)

  • Resistor de 330 Ohm (4 unidades)

  • Pushbutton (4 unidades)

  • Jumpers macho-macho (14 unidades)


Sobre o Display OLED 128x64

O display OLED 128x64 é uma tela gráfica compacta e eficiente, amplamente usada em projetos embarcados. Com tecnologia OLED, ele emite luz própria em cada pixel, garantindo alto contraste e baixo consumo de energia. Ele pode se comunicar com microcontroladores via I2C ou SPI, sendo compatível com Arduino e ESP32. Sua alta legibilidade e baixo consumo fazem dele a escolha ideal para jogos simples, interfaces gráficas e dispositivos portáteis.


Esquema de Ligação

A conexão entre os componentes segue a seguinte configuração:

Conexões do Display OLED

Pino do Display Conexão no Arduino
VCC 5V
GND GND
SDA A4
SCL A5

Conexões dos Botões

Cada botão é conectado a um pino do Arduino e ao GND através de um resistor de 330 Ohm:

Botão Pino do Arduino
Esquerda D2
Direita D3
Girar Peça D4
Acelerar Queda D5

Implementação do Código

O código é escrito em C++ e utiliza as bibliotecas da Adafruit para controle do display OLED. Aqui estão algumas partes essenciais:

Inicialização do Display OLED

#include 
#include 
#include 

#define largura 64
#define altura 128

Adafruit_SSD1306 display(altura, largura, &Wire, -1);

Aqui, importamos as bibliotecas necessárias e criamos um objeto para o display OLED.

Configuração dos Botões e Inicialização do Jogo

#define esquerda 2
#define direita 3
#define rotacao 4
#define tempo 5

void setup() {
  Serial.begin(9600);
  pinMode(esquerda, INPUT_PULLUP);
  pinMode(direita, INPUT_PULLUP);
  pinMode(rotacao, INPUT_PULLUP);
  pinMode(tempo, INPUT_PULLUP);

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("Falha ao inicializar o SSD1306"));
    for (;;);
  }

  display.setRotation(1);
  display.clearDisplay();
  delay(2000);
  display.clearDisplay();
}

Aqui, definimos os pinos dos botões e inicializamos o display OLED.

Movimento das Peças

void loop() {
  if (!digitalRead(esquerda)) {
    // Move a peça para a esquerda
  }
  if (!digitalRead(direita)) {
    // Move a peça para a direita
  }
  if (!digitalRead(rotacao)) {
    // Rotaciona a peça
  }
  if (!digitalRead(tempo)) {
    // Acelera a queda da peça
  }
}

Essa lógica permite que o jogador controle as peças do Tetris.


Funcionamento do Circuito

O jogo funciona com base em uma matriz 10x18 representando a área de jogo. As peças se movem conforme os comandos recebidos pelos botões. Quando uma linha é completada, ela é eliminada e as linhas acima descem, seguindo a mecânica clássica do Tetris.

Para otimizar o desempenho, utilizamos variáveis booleanas para verificar colisões e atualizar a posição das peças de forma eficiente.


Melhorias e Possibilidades

Este projeto pode ser expandido com algumas melhorias:

  • Aprimoramento do código: otimização da lógica de colisão e movimentação.

  • Uso de um buzzer: adicionar sons para tornar o jogo mais imersivo.

  • Salvar pontuações: implementar armazenamento de recordes em EEPROM.

  • Adicionar níveis de dificuldade: acelerar as peças conforme o jogo avança.


Conclusão

Criar um jogo Tetris com Arduino é um excelente projeto para quem deseja aprender mais sobre eletrônica e programação embarcada. Além de ser um desafio técnico, o resultado final é um jogo clássico e divertido.

Se você gostou deste tutorial, compartilhe com outros entusiastas da eletrônica e deixe um comentário contando sua experiência! Caso tenha feito alguma modificação ou melhoria, compartilhe suas ideias nos comentários!

Ao usar esta loja virtual, você; aceita automaticamente o uso de cookies. Acessar nossa Política de Privacidade

Meu Carrinho

Continuar Comprando