Índice:
- Etapa 1: Peças
- Etapa 2: Fiação
- Etapa 3: Fiação Alternativa
- Etapa 4: Código + Explicação
- Etapa 5: Obrigado pela leitura
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Este projeto é destinado a iniciantes e experientes experientes. Em um nível básico isso pode ser feito com uma placa de ensaio, fios de jumper e preso a um pedaço de material (usei madeira) com Blu-Tack e sem solda. No entanto, em um nível mais avançado, ele pode ser soldado a uma placa de desempenho ou a um PCB personalizado.
Como este foi um projeto de bloqueio, não tive acesso a muitas ferramentas ou materiais, por isso está preso a um pedaço de madeira que é um pouco pequeno demais com o Blu-Tack; no entanto, apesar disso, é um projeto divertido que vem junto rapidamente e é composto de peças comumente disponíveis que podem ser encontradas on-line de maneira econômica.
Etapa 1: Peças
Para fazer o Jogo Pong você precisa;
- 1x um Arduino (qualquer tipo funcionará)
- 4 matrizes de LED MAX7219 8x8
- 2x joysticks
- 1 campainha piezoelétrica (opcional)
- 15 fios de ligação fêmea-fêmea (3x grupos de 5)
- 15 fios de jumper macho-fêmea (3x grupos de 5)
- Fios de jumper 18x Macho-Macho
- 1x breadboard
- 1x resistor 220Ω
Em vez de uma placa Arduino Uno ou Nano, você pode usar um Arduino baseado em breadboard;
- 1x ATmega328p 28 pinos IC
- 1x oscilador de cristal de 16kHz
- 2x capacitores de cerâmica 22pF
- 1x conversor USB FTDI UART
- 1x capacitor eletrolítico 100uF
- 1x Micro USB Breakout (opcional)
Ferramentas;
- PC com Arduino IDE (e biblioteca LedControl)
- Cabo USB relevante para o seu Arduino
- Banco de energia para alimentar o jogo longe de seu computador
Etapa 2: Fiação
A fiação é muito simples, pois tudo o que você precisa são fios de jumper para conectar os conectores das Matrizes e Joysticks ao Arduino. A única complicação é a alimentação, pois o Arduino Uno possui apenas 3 conexões GND e uma conexão de 5v. É aqui que a placa de ensaio entra e atua como um trilho de distribuição de energia para todos os componentes. Se você estiver usando um NANO, a placa de ensaio terá a mesma finalidade, além de permitir que você conecte tudo.
Para a fiação, siga estas conexões.
- Joystick esquerdo - GND e 5v para seus respectivos trilhos de alimentação. SW - pino 9, VRx - A0, VRy - A1.
- Joystick direito - GND e 5v para seus respectivos trilhos de alimentação. SW - pino 8, VRx - A2, VRy - A3.
- Matriz de LED mais à direita - GND e 5v para seus respectivos trilhos de alimentação. DIN - 13, CS - 11, CLK - 12. (De acordo com a linha 25)
- Todas as outras matrizes de LED podem ser encadeadas na saída da primeira, indo da direita para a esquerda para que o código funcione corretamente.
- Campainha opcional - Ânodo (+) através do resistor limitador de corrente de 220Ω para o pino 10, Cátodo (-) - GND.
Etapa 3: Fiação Alternativa
Depois de conectá-lo a um Arduino UNO para economizar espaço, decidi colocar o Arduino IC do UNO na placa de ensaio com um oscilador de cristal de 16Mhz e um par de capacitores de 22pF de cada lado ao aterramento. Acho que esta foi uma modificação que valeu a pena, pois faz com que o projeto pareça mais organizado e mais acabado, mas você precisa usar um programador USB FTDI para atualizar o programa.
Etapa 4: Código + Explicação
Para fazer o upload do código para o Arduino, baixe a biblioteca LedControl do GitHub aqui, github.com/wayoda/LedControl e adicione o arquivo Zip ou adicione-o por meio do Library Manager no IDE. Depois disso, abra o esboço em anexo, selecione seu Arduino nas configurações de placa e porta em ferramentas e faça o upload para o arduino.
Explicação
Linha 1: adiciona a biblioteca
Linha 5-23: Configura todas as variáveis, constantes e números de pinos.
Linha 25: configura o LED Martix e configura os pinos de controle e quantos visores.
Linha 27: configura a função de reinicialização.
Linha 30-35: Função de desligamento para ligar / desligar todos os visores juntos.
Linha 38-43: função SetIntensity para definir o brilho de todos os monitores juntos.
Linha 46-51: função ClearAll para limpar todos os visores juntos.
Linha 53-64: joystick Função para obter a posição dos joysticks, mapeá-los para as 7 posições possíveis do bastão para acertar a bola e então mover o bastão para a nova posição.
Linha 67-435: Função que move a bola para o jogador esquerdo na altura e velocidade especificadas, verifica se o jogador bateu nela e continua e define o status de acidente como verdadeiro ou rebate a bola de volta, adiciona 1 ao placar e aumenta a velocidade.
Linha 438-811: Função que move a bola para o jogador certo na altura e velocidade especificadas, verifica se o jogador bateu nela e continua e define o status de acidente como verdadeiro ou devolve a bola, adiciona 1 ao placar e aumenta a velocidade.
Linha 813-823: Função para exibir um rosto sorridente, tique, cruz ou ponto de interrogação no visor especificado (0 à direita a 3 à esquerda).
Linha 861-979: Função para exibir os números 0-9 no display especificado.
Linha 981-1047: Função para exibir a pontuação de cada lado da tela do jogador.
Linha 1049-1064: Função para verificar se o player está pronto.
Linha 1066-1076: Seção de configuração do código que é executado uma vez quando o programa é iniciado.
Linha 1078-1136: Seção do loop principal para lógica do jogo onde todas as funções são usadas e onde quem ganha é decidido e então reinicia o programa após 5 segundos de mostrar a pontuação.
Etapa 5: Obrigado pela leitura
Obrigado por ler este Instructable, foi um projeto divertido de bloqueio que surgiu ao longo de alguns dias enquanto eu aprendia mais sobre a programação do Arduino. Se você gostou, sinta-se à vontade para votar no concurso do Arduino.
Recomendado:
Luz do relógio com tela de matriz de tira LED controlada por Wi-Fi: 3 etapas (com imagens)
Luz de relógio com tela de matriz de tira de LED controlada por WiFi: Tiras de LED programáveis, por ex. com base no WS2812, são fascinantes. As aplicações são múltiplas e você pode obter resultados impressionantes rapidamente. E de alguma forma construir relógios parece ser outro domínio no qual penso muito. Começando com alguma experiência em
Como construir a matriz 8x8 BIG LED (MAX7219 LED 10mm): 9 etapas (com imagens)
Como construir uma matriz LED 8x8 BIG (MAX7219 LED 10mm): Você trabalhou com uma matriz LED 8x8 pronta como monitores? Eles vêm em vários tamanhos e são bastante interessantes para trabalhar. Um grande tamanho prontamente disponível é cerca de 60 mm x 60 mm. No entanto, se você estiver procurando por uma matriz de LED pré-fabricada muito maior
Tela de matriz de LED de rolagem de 48 x 8 usando Arduino e registros de deslocamento: 6 etapas (com imagens)
Visor de matriz de LED de rolagem 48 x 8 usando Arduino e registradores de deslocamento .: Olá a todos! Este é meu primeiro instrutível e trata-se de fazer uma matriz de LED de rolagem programável 48 x 8 usando um Arduino Uno e registradores de deslocamento 74HC595. Este foi meu primeiro projeto com uma placa de desenvolvimento Arduino. Foi um desafio dado a m
Controlando Matriz de LEDs com Arduino Uno (Face do Robô com Arduino): 4 etapas (com imagens)
Controlando a matriz de LEDs com Arduino Uno (face do robô com Arduino): Este instrutível mostra como controlar uma matriz de 8x8 matrizes de LEDs usando um Arduino Uno. Este guia pode ser usado para criar uma tela simples (e relativamente barata) para seus próprios projetos. Desta forma, você pode exibir letras, números ou animati
VISOR MATRIZ 8x8 LED - ARDUINO - CONTROLE DE BLUETOOTH: 7 etapas (com imagens)
VISOR MATRIZ 8x8 LED | ARDUINO | CONTROLE DE BLUETOOTH: Neste tutorial eu mostro como construir uma matriz de 8 x 8 LED usando um Arduino. COMENTE O QUE VOCÊ ACHA SOBRE ESTE INSTRUÍVEL, PARA QUE EU POSSA APRIMORAR EM MEUS INSTRUTIVOS ADICIONAIS dê uma olhada no tutorial em vídeo para uma melhor compreensão do a totalidade