» Eletrônicos »Console de jogos em miniatura com o jogo Pong

Consola de jogos em miniatura com jogo Pong

Saudações os habitantes do nosso site!
Hoje temos um projeto com um micro console de jogos, que qualquer um pode repetir.


Materiais e componentes necessários:








Este manual foi retirado do canal do AlexGyver no YouTube. O microcontrolador para este projeto precisa do seguinte:


Este é o Attiny85 no pacote DIP, será o suficiente para nós. Para não a soldar, usamos o soquete.

Também precisamos de uma tela com Aliexpress, OLED com uma resolução de 128 por 32 pixels.


Os pinos também são úteis.

Os botões que usaremos aqui são:

Claro, você pode usar teclados, mas eles terão que ser finalizados, mas eu realmente não quero cortar e soldar. O compartimento da bateria é deste tipo:

E montaremos nosso console de jogos com uma tábua de pão (se desejar, você mesmo pode fazer uma tábua). Iremos piscar o programador USBasp, mas qualquer AVR funcionará.

Diagrama de fiação Os componentes serão os seguintes:

O monitor se conecta aos pinos do barramento I2C do microcontrolador. Conectamos botões a outros pinos gratuitos. Adicione também um interruptor para ligar / desligar o sistema. E basicamente isso é tudo, resta conectar o poder.
O firmware é carregado no microcontrolador pelo programador de acordo com o seguinte esquema:
Consola de jogos em miniatura com jogo Pong

Agora vamos começar a montagem e organizar todos os elementos na tábua de pão. Vamos tentar montar e ver como tudo fica.


Acabou sendo bastante ascético. Nada mal. A parte em excesso da tábua de pão pode ser serrada.


Agora, consertamos todos os componentes apenas soldando as pernas.



Agora você precisa conectar as conclusões de acordo com o esquema. Para esse fim, o autor recomenda o uso de um fino fio de montagem chinês.

E por conveniência, você pode usar este diagrama de conexão espelhado.

Esses fios têm um isolamento tão fino que você pode soldá-los diretamente. O isolamento em si derreterá e o fio será soldado.

Depois, feche o compartimento da bateria e o interruptor. O compartimento também deve ser fixado adicionalmente com uma pistola de cola quente.


Bem, isso é tudo, o sistema está montado, resta fazer o download do firmware. Vamos piscar a "pedra" separadamente, conectando-a ao programador na placa de ensaio.


O firmware, como em todos os projetos do autor, é de domínio público e pode ser baixado em. Também na página do projeto, você encontrará um diagrama e todas as outras informações necessárias sobre esse projeto.

Não vamos nos aprofundar no download em detalhes; se algo não estiver claro, você poderá sempre ler as instruções detalhadas para o autor.
Para firmware, basta instalar Arduino ide, instale o kernel para trabalhar com os microcontroladores da série Attiny, selecione uma placa, escolha um programador.


Depois, selecionamos a frequência de 8 ou 16 MHz, abrimos a aba “Ferramentas”, localizamos e selecionamos “Record Loader”.

Não há carregador lá, mas o microcontrolador será sintonizado na frequência necessária. Em seguida, selecione a guia "Esboço" - "download via programador". E esperamos até o esboço ser carregado no microcontrolador.

Agora pegamos a "pedra" e a inserimos no coração do nosso mini console de jogos.


Como você pode ver, funciona! E agora vamos dar uma olhada no que temos no firmware. ATtiny85 é um microcontrolador com 512 bytes de RAM, que é muito pequeno. 99% das bibliotecas para trabalhar com esse monitor usam um buffer na lateral do microcontrolador para redesenhar corretamente a imagem, porque esse monitor não pode ler dados de seu próprio buffer e existe a propósito.

O buffer para essa exibição de 128 * 32 pixels terá 512 bytes, se quisermos lembrar o estado de cada bit, ou seja, um pixel.
Além do buffer, também precisamos armazenar outros dados; portanto, essa opção certamente não cabe na memória desse tamanho.

Portanto, decidiu-se diminuir a resolução da tela para 64 * 16 pixels armazenando em buffer quadrados de 4 pixels.

O autor trabalhou diretamente com essa tela e conseguiu implementar sua ideia com sucesso. Um esboço pode ser útil para quem deseja trabalhar com essa tela usando o Attiny.


Agora, com relação ao jogo em si. Funciona simplesmente. Uma bola se move em um cronômetro separado, o movimento consiste em excluir um ponto com as mesmas coordenadas e adicionar um novo ponto nas novas coordenadas.

O cálculo de coordenadas é simplesmente a adição de valores de velocidade às coordenadas no sistema de exibição.
Quando a bola ultrapassa as paredes horizontais, simplesmente as rebate, mudando o componente vertical da velocidade para o oposto, ou seja, com um sinal de menos (-).

Além disso, o programa verifica os limites verticais do campo de jogo, se a bola bate na raquete (bem, ou como você a chama corretamente), então ela salta e o ângulo de salto é aleatório.
Se a bola quebra a parede atrás da raquete, o jogador perde a rodada atual e o oponente recebe um ponto.

O movimento da raquete do jogador é implementado da mesma maneira que o movimento da bola, ou seja, a raquete antiga é apagada e uma nova é desenhada, já com novas coordenadas. As coordenadas mudam quando você clica no botão.
Portanto, é muito mais rápido do que limpar a tela inteira e renderizar todos os elementos novamente.


Agora, para a raquete do oponente. É controlado pela IA (inteligência artificial).

Bem, a inteligência artificial é dita em voz alta, é claro, mas, no entanto, essa inteligência faz uma coisa muito simples, a saber, faz a raquete se mover na direção em que a bola está agora, enquanto tenta alinhar seu centro ao longo do eixo vertical com a coordenada vertical da bola. Para realmente vencer esse oponente, o autor o fez lento, ou seja, ele calcula seu próximo lance novamente pelo cronômetro e, portanto, pode não ter tempo para pegar a bola e, assim, repelir.

Também no jogo implementou mecânicas de crescente complexidade. A cada 10 pontos a favor do jogador, a velocidade da bola aumenta. Junto com isso, a velocidade de reação da IA ​​(oponente) também está aumentando.

Como resultado, aqui está um pequeno Pong tão simples. Não é à toa que este videogame foi desenvolvido primeiro, porque até um programador iniciante pode escrevê-lo. Mas, apesar da aparente simplicidade do projeto, a confusão com a exibição chinesa levou cerca de 20 horas de tempo puro do autor. Ao mesmo tempo, ele não levou em consideração o tempo gasto escrevendo o código do jogo em si e outros fluxos de trabalho relacionados à depuração e configuração do circuito.



Nesse aspecto, o burburinho em si é o processo de montagem, não o aplicativo.O desenvolvimento de jogos, mesmo os mais simples, pode ser realmente bastante interessante. Especialmente quando você tenta empurrá-los para um microcontrolador muito pequeno. E quando a tela chinesa espera por você ao virar da esquina ...

Só isso. Obrigado pela atenção. Até breve!

Vídeo do autor:
6.5
5.5
5.5

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
1 comentário
ketchup
em vez de plagiar, seria melhor criar sua própria

Aconselhamos que você leia:

Entregue-o para o smartphone ...