Índice:
- Etapa 1: reunindo todas as peças
- Etapa 2: Conectando o display OLED
- Etapa 3: conectando a campainha
- Etapa 4: todas as conexões de hardware concluídas
- Etapa 5: Incluindo a Biblioteca e Inicializando os Protocolos de Exibição
- Etapa 6: a melodia da música tema
- Etapa 7: Tocando a música durante a inicialização
- Etapa 8: convertendo as imagens em bitmaps
- Etapa 9: Ajustar a resolução de acordo com sua tela
- Etapa 10: Gerando a matriz de bitmap
- Etapa 11: Exibir as imagens como sequência
- Etapa 12: O código inteiro:
- Etapa 13: Os resultados:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Olá e seja bem-vindo a esta diversão instrutível! Espero que todos estejam bem e saudáveis. Este projeto pequeno, mas incrível, é sobre tocar a música-tema do PUBG e até mesmo criar algumas animações de jogo usando o arduino.
Os componentes usados estão facilmente disponíveis e muito fáceis de montar em um pedaço de placa de ensaio. Estarei compartilhando todo o processo de construção e codificação neste instrutível, fique por aqui até o fim!
Eu sugiro que você assista ao vídeo para ter uma ideia do projeto:) Se você gostou, dê um like e compartilhe o vídeo. Considere se inscrever no meu canal se você gostou da minha construção. Obrigado!
Então, sem mais delongas, vamos começar!
Etapa 1: reunindo todas as peças
A construção consiste principalmente em um Arduino Nano, que é o núcleo principal para este projeto. Você pode usar qualquer outra variante do Arduino como o popular Arduino Uno, Arduino Pro Mini, Arduino Mega etc. Para exibir as animações e as imagens, decidi usar um display OLED de 0,96 polegadas com resolução de 128 por 64 pixels. Este display pode ser interface com o arduino com o protocolo I2C que requer apenas dois fios para dados e clock, reduzindo assim o número de conexões e tornando o projeto mais compacto. Para tocar a melodia do tema PUBG, usei uma campainha de 5V da qual conectei o pino positivo com o pino digital 6 do Arduino e o aterramento vai para o aterramento do Arduino.
Esta é a lista de peças necessárias para o projeto:
- Arduino Nano (ou qualquer outra placa arduino de sua escolha)
- Módulo de exibição OLED de 0,96 polegadas
- Campainha 5V
- Fios de ligação
- Tábua de pão
- Cabo de programação Arduino
Etapa 2: Conectando o display OLED
Um total de 4 conexões são necessárias para o display OLED ser conectado a partir do Arduino:
Vcc 5V do Arduino
Gnd Gnd do Arduino
SDA A4 de Arduino
SCK A5 do Arduino
Os pinos A4 e A5 do arduino atendem a várias finalidades de entradas analógicas, bem como pinos para comunicação I2C. Aqui, utilizamos os pinos do protocolo I2C para fazer a interface com o módulo de exibição.
O link para a biblioteca Adafruit usada neste projeto:
Etapa 3: conectando a campainha
A campainha de 5 V possui um terminal de alimentação positivo e negativo.
Pino positivo D6 do Arduino (pino digital 6) (você pode usar qualquer pino digital do arduino)
Pin negativo Gnd do Arduino
Vamos criar o tom desejado no pino digital D6 para o qual a campainha tocará a melodia.
Etapa 4: todas as conexões de hardware concluídas
Todas as conexões necessárias do display OLED e da campainha estão concluídas. Agora, vamos prosseguir para entender o aspecto de programação do projeto.
Etapa 5: Incluindo a Biblioteca e Inicializando os Protocolos de Exibição
Todo o programa foi segregado em 3 componentes:
- O programa principal consiste na inicialização e nas sequências de exibição de imagens e melodia
- Arquivo "pitches.h" que consiste na lista de notas musicais e a frequência associada
- Arquivo "pictures.h" que consiste em bitmaps das imagens a serem exibidas.
O processo de como converter uma imagem em uma matriz de bitmap para exibição OLED é discutido nas próximas etapas.
Também irei anexar o código inteiro junto com este instrutível para você usar:)
Etapa 6: a melodia da música tema
Pesquisei na internet as notas básicas que compõem a música-tema do PUBG e as adicionei ao conjunto de melodias.
Gastando uma quantidade considerável de tempo tocando e repetindo a sequência da melodia, criei a matriz de duração de tempo que se preocupa com o tempo que cada nota precisa ser tocada. A combinação da matriz de melodia e da matriz de duração compreende as informações completas para reproduzir a música.
Etapa 7: Tocando a música durante a inicialização
Há um total de 63 notas que usei para compor a sequência da melodia. Usando um loop for e iterando através das notas e da matriz de duração com uma pausa predeterminada entre cada nota, a sequência inteira é tocada uma vez, já que este trecho de código está na configuração vazia (). Curiosamente, nenhum código para este projeto utiliza o void loop () do código do arduino, pois pretendo reproduzir e exibir imagens apenas uma vez. Obviamente, se você quiser uma sequência repetitiva, ela deve ser colocada na função void loop ().
Etapa 8: convertendo as imagens em bitmaps
Agora, a parte interessante do projeto é o processo de conversão de uma imagem em um array de bitmap para o display OLED de acordo com sua densidade de pixels. Para isso encontrei a ferramenta online perfeita que nos permite gerar os bitmaps personalizados.
O link para este aplicativo online é:
Graças aos incríveis criadores deste aplicativo, isso torna meu trabalho muito mais fácil.
Ao acessar o link, você primeiro deve fazer o upload da imagem da qual deseja criar o bitmap. Uma coisa a notar aqui é que você deve tentar selecionar imagens que não tenham muito contraste de cor, tente manter imagens com poucas cores sólidas, sem gradientes para obter melhores resultados
Etapa 9: Ajustar a resolução de acordo com sua tela
Na próxima etapa, temos que redimensionar a imagem de acordo com a resolução de exibição. Para nosso display OLED, ele tem 28 pixels de largura e 64 pixels de altura, que ajustei conforme mostrado na imagem. Ajuste o limite de brilho para se certificar de que a imagem está consideravelmente clara (é aqui que a vantagem de usar imagens com cores sólidas entra em jogo, quanto mais gradientes de cor, a qualidade da imagem em exibição monocromática irá degradar, pois bagunça com o limite de brilho)
O próximo passo é ajustar a imagem na tela mantendo as proporções intactas e ajustando a simetria para as quais as opções já estão lá. Você pode explorar essas opções para obter a saída de imagem desejada. Para referência, você também obtém a incrível opção de visualização!
Etapa 10: Gerando a matriz de bitmap
Após ajustar os parâmetros da imagem, na próxima etapa apenas selecione o código do Arduino como formato de saída e clique em gerar para obter a matriz de bitmap desejada!
Lá! você converteu com sucesso sua imagem para a matriz de bitmap desejada. Eu fiz este processo para um total de 7 imagens e as salvei.
Etapa 11: Exibir as imagens como sequência
Para exibir as imagens, usei a função Arduino millis () para chamar a função draw (), que é basicamente um conjunto de comandos para limpar a tela, plotar a matriz de bitmap no OLED e inicializar a tela. A lógica principal é que a cada 3,5 segundos, a imagem é alterada e a próxima imagem é exibida. Bem, 3,5 segundos não é um número único, eu apenas descobri que se eu dividir a duração da melodia inteira por 7 imagens, eu tenho cerca de 3,5 segundos para cada exibição. Você pode adicionar mais imagens a isso e reduzir o tempo de exibição de cada imagem, se desejar.
Os fragmentos de código explicam como as funções são chamadas com base na função millis ().
Todas as matrizes de bitmap das imagens são armazenadas no arquivo "pictures.h"
Etapa 12: O código inteiro:
Aqui estou compartilhando o código inteiro para todos vocês experimentarem e experimentarem!
Assim que tudo parecer bem, é hora de enviá-lo para o quadro:)
Etapa 13: Os resultados:
Como você pode ver as imagens ficaram ótimas! E a melodia também! Espero que você tenha assistido ao vídeo em que toda a demonstração está presente.
Espero que esta versão do PUBG do Arduino seja um projeto empolgante para todos os entusiastas de jogos e eletrônicos.
Sinta-se à vontade para compartilhar seus comentários nos comentários e quaisquer sugestões. Além disso, considere inscrever-se em meu canal para obter mais conteúdo desse tipo, pois isso faz parte da série OLED na qual estou trabalhando. Deixe-me saber se você construir este projeto divertido:)
Até a próxima vez.