Como recriar o jogo Pong clássico usando Arduino

Pong foi o primeiro videogame que chegou ao mercado de massa. Pela primeira vez na história, o conceito de videogame foi trazido para a casa da família, graças ao Atari 2600 - então é justo que nós paguemos uma pequena homenagem a essa joia histórica.

Pong foi o primeiro videogame que chegou ao mercado de massa.  Pela primeira vez na história, o conceito de videogame foi trazido para a casa da família, graças ao Atari 2600 - então é justo que nós paguemos uma pequena homenagem a essa joia histórica.
Propaganda

arduino pong Pong foi o primeiro videogame que chegou ao mercado de massa. Pela primeira vez na história, o conceito de “videogame” foi trazido para a casa da família, graças ao Atari 2600 - então é justo que nós paguemos uma pequena homenagem a essa joia histórica. Agora, você pode reviver isso (admitidamente um jogo entediante) usando um Arduino e alguns componentes comuns.

Eu não vou mentir - é improvável que sua filha esteja desistindo de seu Nintendo DS, e isso não vai proporcionar horas de diversão para toda a família - mas é um projeto incrível e fácil de melhorar sua codificação Arduino. E se você está apenas começando, não se esqueça de verificar o guia do Arduino para iniciantes.

Nós vamos fazer dois controladores básicos, e o vídeo será enviado para a sua TV através de um cabo de vídeo composto padrão.

Requisitos para o Arduino Pong

  • Resistor de 470 ohms x1
  • Resistor de 1k ohm x1
  • Potenciômetro de 10k ohm ( resistor variável variável) x2
  • Arduino x1 (qualquer versão)
  • Plugue RCA x1 (se você tiver mais de um, você pode ligar o som também. Um para o vídeo é um mínimo)
  • Interruptor de botão de pressão x1
  • Resistor de 10k ohm x1

arduino pong

Você também baixará a biblioteca TV Out Arduino daqui - obtenha o TVoutBeta1.zip, a última versão. Coloque as pastas resultantes em seu diretório / arduino / libraries e reinicie o Arduino IDE se ele já estiver aberto.

Testando a saída de TV

Pegue o seu plugue RCA e retire a camada externa. Reúna a blindagem, torça e ponha de lado. Este é o seu terreno. No centro deve haver outro cabo com blindagem de plástico - novamente, retire-o para que você tenha sua linha de sinal.

jogo de arduino pong

Solde os resistores de 470 ohm e 1k ohm na linha de sinal central do seu plugue RCA - isso fornece um sinal de sincronismo e o sinal de vídeo real, combinados para produzir a entrada de vídeo analógica. O resistor de 470 ohms deve encaixar no pino digital IO D07, enquanto o resistor de 1k ohm vai para o pino D09.

Esses pinos são definidos pela biblioteca que importamos, portanto você não pode alterá-los. Um dos seus pinos Arduino GND deve ir para a blindagem (fora) da RCA.

jogo de arduino pong

Agora você pode ir em frente e carregar em um exemplo; Embora PAL e NTSC sejam fornecidos, não deveria importar com as modernas TVs digitais - a demo NTSC funcionou bem para mim, apesar de estar no Reino Unido. Conecte-se à sua TV e obtenha um lindo cubo 3D retrô. Oooooh sim - você está animado ainda? Eu sou.

jogo de arduino pong

Teste de entradas de potenciômetro analógico

Ok, nós temos a saída de TV funcionando, agora vamos ter os controladores. A fiação dos “potes” não é tão crítica - cada um deve ter 3 pinos, e o central quase sempre produz o sinal de saída. Ligue isso para A0 e A1 (um para cada pote). Em um dos pinos laterais - não importa qual - ligue + 5V. O outro pino do outro lado deve ir para o chão.

Aqui eu coloquei os dois de frente para cada um em uma única tábua de pão, porque eu só tenho fios curtos. Para um produto polido, você vai querer usar algum cabo de rede antigo para lhe dar um pouco de distância (para que você possa realmente sentar no sofá para jogar).

projeto arduino pong

Em seguida, carregue um dos esboços de exemplo básicos que vêm com o Arduino - o de entrada analógica. Esta demonstração irá piscar o LED onboard mais rápido ou mais lento, dependendo da entrada em A0.

Ele não testa o outro pote A1, mas se você tiver o A0 conectado, não dá para ver como você cometeria um erro no A1, então vamos supor que está tudo bem e seguir em frente.

Adicionar um interruptor de partida

Por fim, adicionaremos um interruptor de início no D02. Consulte o diagrama de fiação aqui para saber como fazer isso. Esta opção será usada para iniciar o jogo quando estiver no menu.

projeto arduino pong

O Código Pong

Estamos usando algum código originalmente escrito por Lamonica, modificado pelo duboisvb para dois jogadores e atualizado por mim mesmo para usar a versão beta mais recente da biblioteca de TV. Você pode ver e baixar o código deste pastebin.

É um código bastante longo, mas simples, que não deveria exigir nenhuma explicação minha. Como a maioria dos jogos, ele depende de um estado de jogo (menu, no jogo, game over), e lê os valores de entrada de ambos os controladores e troca cada iteração do loop. Além disso, estão os métodos para desenhar a tela, a bola, as pás e a lógica do jogo.

projeto arduino pong

Observe que o código também inclui saída de áudio : não consegui encontrar mais plugues RCA para testar isso, mas se você tiver alguns, conecte o pino de sinal diretamente ao D11 e obtenha alguns tons retrô agradáveis.

arduino pong

Para ser honesto, eu não sabia que o Arduino poderia até mesmo fazer a TV sem alguma codificação imensamente complexa; a biblioteca de TV torna isso realmente fácil. Mesmo que você não goste de jogos retrô, usar essa saída de TV básica é uma ótima maneira de utilizar o equipamento existente como um dispositivo de monitor barato. Você pode, claro, produzir cores também.

Você acha que vai participar do Arduino Pong, ou talvez fazer o seu próprio remake de videogame retrô? Diga-nos nos comentários se você tiver!

In this article