Jogo Dot Jump (sem usar Arduino): 6 etapas
Jogo Dot Jump (sem usar Arduino): 6 etapas
Anonim
Jogo Dot Jump (sem usar Arduino)
Jogo Dot Jump (sem usar Arduino)

Visão geral

Olá! Eu sou Shivansh, um estudante do IIIT-Hyderabad. Estou aqui com meu primeiro instructable, que é um jogo inspirado no jogo Dinosaur Jump do Google Chrome. O jogo é simples: pule sobre os obstáculos que se aproximam para marcar um ponto. Se você colidir, você perde e a pontuação é zerada.

O destaque deste projeto é que não há uso de Arduino ou qualquer outro microcontrolador. É puramente derivado de componentes elétricos básicos e envolve a implementação de Máquinas de Estados Finitos (FSMs) com a ajuda de diagramas lógicos, etc.

Interessado? Vamos começar.

Pré-requisitos:

  • Conhecimento básico sobre componentes elétricos como Resistores, Capacitores, Circuitos Integrados (ICs).
  • Conhecimento básico de portas lógicas (AND, OR, NOT, etc.)
  • Conhecimento sobre como trabalhar com Flip-Flop, Counter, Multiplexer, etc.

NOTA: Os pré-requisitos listados acima são para a compreensão de todo o funcionamento do projeto. Quem não tem conhecimento profundo do mesmo também pode construir o projeto seguindo as etapas do instrutível.

Etapa 1: desenvolvendo o modelo de trabalho

Desenvolvendo o Modelo de Trabalho
Desenvolvendo o Modelo de Trabalho
Desenvolvendo o Modelo de Trabalho
Desenvolvendo o Modelo de Trabalho

A primeira tarefa é criar um modelo de trabalho para o projeto. Só então podemos decidir os materiais necessários para o projeto. Todo o projeto pode ser dividido em três partes.

Parte 1: Geração de obstáculo

Em primeiro lugar, precisamos gerar obstáculos aleatórios para o ponto saltar. Os obstáculos também terão a forma de um pulso de ponto que se move de uma extremidade da matriz de LED para a outra.

Para a geração de obstáculos, utilizamos dois Circuitos Timer (diagramas de circuitos anexos), um com Alta Freqüência (HF Timer) e outro com Baixa Freqüência (LF Timer). A parte de 'aleatoriedade' é tratada pelo HF Timer, cuja saída é vista em cada borda de subida do LF timer (que é considerado como entrada CLK). A Instrução de Geração de Obstáculo é o estado do HF Timer em cada borda de subida do LF Timer (1 -> Gerar Obstáculo | 0 -> Não Gerar Obstáculo). O HF Timer é RESET a cada 'JUMP' para garantir a geração aleatória de obstáculos. A saída do HF Timer é fornecida como a entrada D para um D Flip Flop (para armazenar instruções para o próximo ciclo) com a entrada CLK como Saída do LF Timer.

Uma vez que a instrução binária para geração de obstáculo é eliminada, precisamos gerar o ‘pulso de obstáculo’ na matriz de LED. Fazemos isso com a ajuda de um Contador de 4 bits cuja saída é dada a um desmultiplexador 4x16 (DeMUX). A saída do DeMUX faria os 16 respectivos LEDs brilharem.

Parte 2: O SALTO

Para a ação JUMP, consideraremos a entrada do botão de pressão como a instrução. Uma vez que a instrução é dada, o LED do objeto em linha para de brilhar e outro LED acima dele acende, significando um salto.

Parte 3: Resultado

O resultado será como: Se o objeto travar, REINICIE o jogo; caso contrário, aumente a pontuação.

A colisão pode ser expressa como ANDing de ambos, o sinal do obstáculo e o sinal do objeto para a posição do obstáculo no solo. Se uma colisão não ocorrer, o contador de pontos é incrementado, o qual é exibido em um par de visores de 7 segmentos.

Etapa 2: reunir componentes

Os componentes necessários são os seguintes:

  • PCB x 1, placa de ensaio x 3
  • LEDs: Verde (31), Vermelho (1), BiColor: Vermelho + Verde (1)
  • Botão de pressão x 2
  • Display de 7 segmentos x 2
  • IC 555 x 3 [para circuitos de temporizador]
  • IC 7474 x 1 (D FlipFlop)
  • IC 7490 x 2 (contador de décadas) [para exibir a pontuação]
  • IC 7447 x 2 (BCD para decodificador de 7 segmentos) [para exibição de pontuação]
  • IC 4029 x 1 (Contador de 4 bits) [para exibição de obstáculo]
  • IC 74154 x 1 (DeMUX) [para exibição de obstáculo]
  • IC 7400 x 3 (NÃO porta)
  • IC 7404 x 1 (porta NAND)
  • IC 7408 x 1 (porta E)
  • Soquetes IC
  • Fonte de Tensão (5V)

Ferramentas necessárias:

  • Ferro de solda
  • Cortador de fio

Etapa 3: Geração de obstáculo: Parte A

Geração de Obstáculo: Parte A
Geração de Obstáculo: Parte A
Geração de Obstáculos: Parte A
Geração de Obstáculos: Parte A

Primeiro, precisamos configurar os circuitos do temporizador para gerar o Sinal de Geração de Obstáculo (HIGH / LOW).

O circuito será configurado de acordo com a teoria discutida anteriormente. O diagrama de circuito para o mesmo está anexado acima. O circuito é implementado em uma placa de ensaio (embora também possa ser implementado em um PCB) da seguinte forma:

  • Coloque os dois 555 ICs e D Flip Flop (IC 7474) através da divisória da placa de ensaio com algum espaço vazio (4-5 colunas) entre eles.
  • Conecte a linha superior da placa de ensaio com o terminal positivo da fonte de tensão e a linha inferior com o terminal negativo.
  • Faça outras conexões seguindo o diagrama do circuito. Após as conexões necessárias, o circuito ficaria semelhante à imagem anexada acima.

NOTA: Os valores das resistências R1 e R2 e capacitância C são calculados usando as seguintes equações:

T = 0,694 x (R1 + 2 * R2) * C

onde T é o período de tempo obrigatório.

D = 0,694 x [(R1 + R2) / T] * 100

onde D é o Ciclo de Trabalho, ou seja, a relação entre o Tempo LIGADO e o Tempo Total.

Neste projeto, para o temporizador de alta frequência, T = 0,5 seg e para o temporizador de baixa frequência, T = 2 seg.

Etapa 4: Geração de obstáculo: Parte B

Geração de Obstáculo: Parte B
Geração de Obstáculo: Parte B
Geração de Obstáculo: Parte B
Geração de Obstáculo: Parte B
Geração de Obstáculo: Parte B
Geração de Obstáculo: Parte B

Agora que sabemos quando gerar o obstáculo, precisamos exibi-lo. Usaremos um contador de 4 bits, um Demultiplexador, um temporizador e uma matriz de 16 LEDs. Por que 16? Isso porque estaremos mapeando a saída de 4 bits do contador para os 16 LEDs usando o demultiplexador. Isso significa que o contador estará contando de 0 a 15 e o demultiplexador estará ligando o LED com aquele índice.

A função do temporizador é regular a velocidade da contagem, ou seja, a velocidade do movimento do obstáculo. O obstáculo mudará uma posição em um período de tempo do cronômetro. Você pode brincar com diferentes valores de R1, R2 e C usando as equações da etapa anterior para obter velocidades diferentes.

Para a matriz de LEDs, solde 16 LEDs de maneira linear com um terreno comum. O terminal positivo de cada LED será conectado ao DeMUX (após a inversão usando a porta NOT, já que o DeMUX fornece uma saída BAIXA).

O diagrama de circuito para o mesmo está anexado acima.

Etapa 5: O SALTO e o RESULTADO

O SALTO e o RESULTADO
O SALTO e o RESULTADO
O SALTO e o RESULTADO
O SALTO e o RESULTADO
O SALTO e o RESULTADO
O SALTO e o RESULTADO

A próxima coisa é a ação de salto. Para exibir um salto, basta colocar um LED de cor diferente acima da matriz, aterrá-lo e anexar seu terminal + ve a um botão. Conecte a outra extremidade do botão de pressão à fonte de tensão.

Além disso, pegue outro botão, colocado ao lado do anterior e conecte um de seus terminais a + 5V. O outro terminal vai para uma porta NAND (IC 7404) com a outra entrada da porta NAND como a entrada para o LED logo abaixo do LED JUMP (ou seja, o LED de objeto). A saída do NAND Gate vai para RESET (PIN 2 e 3 de ambos os contadores BCD) do contador de pontuação. Com isso, o que fazemos é zerar a pontuação se o sinal OBJECT LED (na posição de base) e o sinal OBSTACLE forem dados ao mesmo tempo, ou seja, o objeto e o obstáculo colidiram.

Faça alguns arranjos para garantir que ambos os botões sejam pressionados juntos. Você pode usar uma moeda e colar os dois botões nela.

Para configurar o contador de pontuação, siga o diagrama de circuito anexo acima (fonte da foto: www.iamtechnical.com).

NOTA: Conecte os pinos 2 e 3 na saída do NAND Gate para zerar a pontuação em caso de colisão com o obstáculo

Etapa 6: Jogue bem

Bom jogo!
Bom jogo!
Bom jogo!
Bom jogo!
Bom jogo!
Bom jogo!

É isso. Você concluiu o seu projeto. Você pode adicionar algum acabamento para que fique bem. O descanso está bem.

APROVEITAR..!!

Recomendado: