Músicas para Arduino

Um dos posts mais populares no Dragão é o post com a marcha imperial, música tema de Darth Vader, em estilo 8 bits  para Arduino. Esse é um projeto bem simples e só precisa de um buzzer piezo. É difícil encontrar algumas músicas para Arduino, então resolvi uma coleção de músicas para Arduino em uma mesmo lugar.

Recentemente tenho me interessado bastante em música, e por isso comecei a aprender a ler partituras. Portanto, pensei que seria um bom exercício adaptar algumas partituras para Arduino. Escrevi os códigos com alguns detalhes em mente.

  • Códigos compatíveis com todas ou quase todas as placas Arduino;
  • Sem necessidade de instalação de bibliotecas;
  • De fácil modificação e entendimento.

Para isso utilizei apenas a função tone(), que faz parte da linguagem.  A função tone() é capaz de gerar apenas um tom em apenas um pino por vez. Bibliotecas como a Tone library permitem gerar mais formas de ondas, mas utilizam timers específicos de alguns microcontroladores, o que causa incompatibilidade com muitas placas. Isso implica que os códigos aqui são monofônicos, isto é, apenas uma nota pode ser tocada de cada vez.

Músicas

No momento estão presentes no repositório as seguintes músicas:

Filmes

Jogos

Clássicas

Outras

O repositório com todas as músicas pode ser encontrado no github.

Exemplo

Como exemplo vamos utilizar a música do jogo Tetris. O código pode ser encontrado junto com todos os outros no repositório.

Basta copiar o código na IDE do Arduino e conectar um buzzer ao pino 11 da sua placa arduino, ou então conectar em qualquer pino e editar o valor da variável buzzer de acordo.

Estando o piezo conectado a placa, basta adicionar o código com a música desejada na IDE e gravar no Arduino. A variável tempo pode ser mudada para fazer a música tocar mais rápido ou mais devagar, enquanto a variável buzzer contém o número do pino a qual o piezo é conectado. O vetor melody contém cada nota da música seguida da duração da mesma.

Depois de gravado o sketch, o arduino irá tocar a musica. O código do setup() pode ser tranferido para o loop() caso queira-se que a música se repita.

Por enquanto é isso. Tenho em mente de fazer um post sobre o processo que uso para “converter” as músicas da partitura para o arduino, mas isso fica para depois :)

Obrigado pela leitura e até o próximo post o/

Robson Couto

Enegenheiro Eletricista. Gosto de dedicar meu tempo a aprender sobre computadores, eletrônica, programação e engenharia reversa. Documento meus projetos no Dragão quando possível.

3 thoughts to “Músicas para Arduino”

Leave a Reply

Your email address will not be published. Required fields are marked *