
Afinal de contas, o que é o Super-Pong?
O Super-Pong é um videogame Arduino que possui uma versão melhorada do clássico jogo PONG da Atari, que fez tanto sucesso no mundo inteiro.
Este videogame possui um menu inicial que permite escolher o nível de dificuldade e o modo de jogo:
O nível de dificuldade irá atuar de forma diferente dependendo do modo de jogo que você escolher.
Os níveis de dificuldade disponíveis são:
Normal
Difícil
Desafio
Os modos de jogo disponíveis são:
Treinamento
Player vs Player 2
Player vs Computador
O grande diferencial do videogame Super-Pong é que, além de possuir um modo treinamento e um modo de 2 jogadores, ele também te permite jogar contra um raciocínio artificial que simula o comportamento de um jogador oponente, ou seja, é uma partida que você joga contra o computador mas tem a sensação de estar jogando contra uma outra pessoa.
Aqui no curso você vai aprender a construir este videogame com instruções passo a passo de uma forma bem simples, direta e sem enrrolação.
Software Arduino IDE
A instalação do Arduino IDE é muito importante para o nosso projeto.
Vamos precisar dele para abrir o programa do jogo, compilar e subir este código compilado para dentro da placa Arduino.
Biblioteca TVout + TVoutFonts
Esta biblioteca é necessária para que o Arduino IDE consiga compilar o jogo.
O código do Super-Pong utiliza esta biblioteca no processo de geração de som e imagem para a TV.
Componentes Necessários:
Para construir este videogame você vai precisar apenas de um Arduino e alguns componentes eletrônicos básicos:
1 x Arduino UNO
2 x Potenciômetro de 10KΩ
2 x Capacitor Eletrolítico de 10uF / 16V
2 x Conector RCA simples (um para o sinal de vídeo e outro para o sinal de áudio)
1 x Cabo de Áudio e Vídeo RCA para conectar à TV
1 x Botão (chave táctil de 2 ou 4 terminais)
1 x Protoboard de 170 pontos
1 x Resistor de 470Ω (amarelo, violeta, marrom)
1 x Resistor de 1KΩ (marrom, preto, vermelho)
1 x Resistor de 10KΩ (marrom, preto, laranja)
- - -
Jumpers de conexão macho-fêmea (para conectar os potenciômetros ao circuito)
Jumpers de conexão macho-macho (para conectar a protoboard à placa Arduino)
Nesta parte iremos montar os componentes eletrônicos na protoboard e também veremos como conectar este circuito da protoboard na placa Arduino.
Nesta aula você vai aprender a conectar o potenciômetro para que ele funcione como o controle do Jogador 1.
Na aula seguinte você vai aprender a conectar o controle do jogador 2, mas isso só será necessário se você quiser jogar no modo Jogador 1 vs Jogador 2, caso contrário não será necessário.
A maior parte das opções de jogo do Super-Pong funciona com apenas 1 jogador.
Mas se você quiser acessar a opção de Jogador 1 vs Jogador 2 você realmente vai precisar conectar um segundo potenciômetro na placa Arduino.
Cada um dos dois potenciômetros vão precisar de uma alimentação de 5V, como temos apenas uma porta de conexão de 5V no Arduino Uno então vamos precisar fazer uma leve modificação em nosso circuito para que ele possa comportar dois potenciômetros alimentados por uma mesma tensão de 5V.
Filtrando o Sinal Analógico
Conectando os potenciômetros no Arduino seguindo o passo a passo das aulas anteriores você já vai conseguir jogar o seu jogo sem nenhum problema, mas se você reparar bem, em determinados momentos, o jogador pode começar a tremer um pouco verticalmente (uma pequena variação de 1 a 2 pixels).
Esta variação é normal de ocorrer quando conectamos um potenciômetro na entrada analógica e o seu sinal passa por uma conversão analógica/digital.
Uma das soluções possíveis é modificar o código e fazer uma média dos últimos valores recebidos pela entrada analógica, mas esta solução exige um acréscimo de código e gasto de memória, exigindo um pouco mais de memória FLASH e memória SRAM.
Uma outra solução, rápida de se implementar, para evitar que estas pequenas variações ocorram é o uso de um capacitor:
Basta utilizar um capacitor eletrolítico de 10uF/16V e conectar o fio positivo do capacitor no pino do meio do potenciômetro (conectado em A0 ou A1) e conectar o fio negativo do capacitor no pino da direita do potenciômetro (conectado no GND).
Devido ao uso do Capacitor a variação de posição do jogador vai ocorrer de uma forma um mais suave, e não de uma forma imediata como estava ocorrendo anteriormente.
A velocidade com que o jogador irá se mover para a posição indicada está relacionado ao valor do capacitor. Você pode usar valores maiores ou menores do que 10uF, quanto menor for o valor mais rápido o jogador irá se mover para a nova posição, e quanto maior for o valor o jogador irá se mover para a posição correta mas com uma velocidade um pouco lenta.
Fiz o teste com 10uF e com 47uF e dá para notar a diferença na velocidade de resposta.
A minha sugestão é que utilize um capacitor de 10uf.
Só lembrando que este processo de filtragem do sinal analógico através do capacitor é apenas uma etapa opcional. você pode conectar o capacitor no potenciômetro e experimente jogar o Super-Pong, se sentir que o controle ficou melhor aí sim você pode terminar de fixar o capacitor soldando os seus fios diretamente nos seus respectivos pinos do potenciômetro para que o sinal fique perfeito.
Se você chegou até aqui, parabéns!
Esta é a parte final e também a mais fácil do curso. Você só vai precisar seguir os passos abaixo:
- Conectar sua placa Arduino no computador,
- Fazer o download do arquivo do jogo Super-Pong,
- Abrir o código do jogo no Arduino IDE,
- Compilar e enviar o código do jogo para a placa Arduino
- - - -
Version Log:
versão 1.2
Inclusão de sons no menu e durante o jogo.
versão 1.1
Menu inicial permitindo jogar os três modos de jogo e também selecionar o nível de dificuldade.
versão 1.0
Jogo Super-Pong padrão, com três modos de jogo disponíveis, e nível de dificuldade normal.
E aí pessoal, tudo bem com vocês?
Para quem não me conhece eu me chamo Etienne Gomide. Eu sempre tive como hobby a eletrônica, programação, pixel-arte e a criação de protótipos de jogos.
Em 2018 eu voltei a estudar eletrônica e também comecei a estudar o Arduino. A partir de 2020 passei a estudar também outras placas de desenvolvimento e com isso eu pude unir estes meus conhecimentos e experiências em novos projetos.
Sejam muito bem-vindos ao meu curso Construindo um Videogame Super-Pong,
Neste curso eu vou mostrar como construir um videogame bem simples utilizando uma placa Arduino UNO e alguns poucos componentes eletrônicos. O videogame que vamos construir aqui neste curso vai ser um videogame no estilo PONG.
Não importa se você é iniciante ou experiente, você vai conseguir fazer o curso sem nenhum problema, pois eu explico tudo passo a passo da forma mais simples possível e sem nenhuma enrolação.
Em pouco tempo você terá um videogame Arduino simples, divertido e desafiador funcionando em sua TV para poder jogar com seus filhos, seus pais, seus amigos ou até mesmo jogar sozinho contra o computador.
Neste videogame Super-Pong você vai poder escolher jogar de três formas diferentes:
- Modo Treinamento: Você joga sozinho treinando rebater a bola contra um paredão,
- Player 1 x Player 2: Você joga contra um amigo, cada um com um controlando um jogador,
- Player x Computador: Você joga uma partida contra o próprio videogame.
Componentes Necessários:
Para construir este videogame você vai precisar apenas de um Arduino e alguns componentes eletrônicos básicos, que são baratos e fáceis de encontrar na internet ou em qualquer loja de peças eletrônicas.
1 x Arduino UNO (ou Arduino NANO)
2 x Potenciômetro de 10KΩ
2 x Capacitor Eletrolítico de 10uF / 16V (opcional, mas recomendado)
2 x Conector RCA simples
1 x Cabo de Áudio e Vídeo RCA
1 x Botão (chave táctil)
1 x Protoboard de 170 furos (ou de 400 furos, se for montar a versão com Arduino NANO)
1 x Resistor de 470Ω
1 x Resistor de 1KΩ
1 x Resistor de 10KΩ
- - -
Jumpers de conexão macho-fêmea
Jumpers de conexão macho-macho
*Bônus
Aula exclusiva ensinando a construir o videogame em uma protoboard de 400 furos, utilizando o Arduino NANO ao invés do Arduino UNO, para uma versão compacta do videogame.
*AVISO IMPORTANTE:
Neste curso vou ensinar apenas sobre a montagem e funcionamento da parte eletrônica do videogame.
O curso não ensina como construir e montar uma carcaça arcade para este conjunto eletrônico.