O Snake Game tem sido muito popular desde o início dos telefones móveis. Inicialmente, ele veio em telefones celulares preto e branco, e logo se tornou muito famoso. Então, com o avanço dos celulares, este jogo também mudou muito, e agora muitas versões gráficas e coloridas estão disponíveis.
O jogo Snake também se tornou um projeto DIY muito popular para entusiastas e estudantes de eletrônica. Então, hoje vamos demonstrar, o jogo Arduino Snake, com todas as suas funcionalidades básicas, mas ao mesmo tempo mantendo a simplicidade.
Componentes usados:
- Arduino UNO
- 8x8 LED Dot Matrix Display
- Registro de deslocamento 74HC595
- LCD 16x2
- POT 1K
- Apertar botões
- Fios de conexão
- Tábua de pão
- Fonte de energia
Explicação de trabalho:
Este é um jogo um pouco complicado de construir. Mas neste tutorial, tornamos isso simples para você. Para fazer este projeto, usamos um display de matriz de pontos 8x8 vermelho para exibir a cobra e seu ponto de comida, um LCD para exibir os pontos ou pontuação, 5 botões para dar instruções e iniciar o jogo e finalmente um Arduino UNO para controlar todo o processo. O diagrama de pinos de 8x8 LED Dot Matrix Display com sua imagem original foi dado abaixo:
Quando ligamos o circuito, primeiro mostramos uma mensagem de boas-vindas e, em seguida, uma dica “Pressione Iniciar para Jogar” no LCD. Depois disso, o LCD mostra a pontuação como zero e o display de matriz de pontos mostra dois pontos como cobra e um único ponto como alimento.
Agora o usuário precisa pressionar o botão do meio para iniciar o jogo e o snake começa a se mover para cima por padrão. Em seguida, o usuário precisa orientar a cobra pressionando as 'teclas de direção' ao redor do botão do meio. Aqui, usamos cinco teclas (botões de pressão), a saber, tecla esquerda, tecla direita, tecla para cima, tecla para baixo e tecla de início. Sempre que a cobra alcança o ponto de comida ou come a comida, a pontuação aumenta 5 pontos a cada vez e o comprimento da cobra é aumentado em um ponto (LED) a cada vez, e a velocidade da cobra fica mais rápida do que antes. E sempre que a cobra atingir qualquer parede ou alcançar o final da matriz de LED, o jogo será encerrado (“Game Over”). Em seguida, o usuário precisa iniciar o jogo novamente pressionando a tecla start.
Explicação do circuito:
O circuito deste Projeto do Jogo da Cobra é pouco complexo. Aqui, conectamos o display de matriz de pontos usando o Shift Register 74HC595. Aqui, dois registradores de deslocamento são usados, um para direcionar as colunas e o segundo para direcionar as linhas. Pinos de controle de ambos os registros, registro de deslocamento de coluna e registro de deslocamento de linha (SH, ST),estão diretamente conectados ao pino número 14 e 16 do Arduino, respectivamente. E o pino DS do registrador de deslocamento de coluna e o registrador de deslocamento de linha são conectados diretamente aos pinos 15 e 17 do Arduino. O botão Iniciar para iniciar o jogo está conectado no pino número 3, botão de direção esquerdo no pino 4, botão de direção direito no pino 6, botão de direção para cima no pino 2 e botão de direção para baixo no pino 5. Um LCD também está conectado em nosso hardware para mostrar pontuação. Os pinos RS e EN são conectados diretamente nos pinos 13 e 12. O pino RW é diretamente aterrado. E os pinos de dados d4-d7 são conectados nos pinos 11, 10, 9, 8 do Arduino. O resto da conexão é mostrado no diagrama do circuito.
Explicação de programação:
Para escrever este código do jogo Arduino snake, primeiro incluímos arquivos de cabeçalho e definimos pinos para LCD. E então defina alguns pinos para botões de direção e pinos de dados para registradores de deslocamento.
#incluir
Em seguida, inicializamos todas as coisas que usamos no programa. Na função de configuração inicializamos o LCD, dando direção aos pinos de saída de entrada, puxando os bits e mostrando a mensagem de boas-vindas no LCD.
configuração vazia () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (iniciar, INPUT);……………
E então começamos o jogo na função de loop .
void show_snake (int temp) {for (int n = 0; n
Aqui, usamos a função abaixo para ler a direção de entrada do botão.
void read_button () {if (! digitalRead (esquerda)) {move_r = 0; move_c! = - 1? move_c = -1: move_c = 1; while (! digitalRead (esquerda));……………
Verifique o jogo C Code of Snake completo abaixo.