Vários projetos requerem reprodução de som para adicionar algum tipo de funcionalidade. Dentre esses projetos, destacamos: acessibilidade para deficientes visuais, tocadores de música MP3 Arduino e execução de sons de voz por robôs, por exemplo. Hoje o Projeto será “Dfplayer Mini Arduino: Projeto Construa seu MP3 Exclusivo!”
Em todos esses sistemas, precisamos de um dispositivo de reprodução de som MP3 para conectar ao Arduino.
Visto isso, o objetivo deste tutorial é demonstrar o uso desse módulo com o Arduino, usando 3 push buttons para instruir a plaquinha a enviar comandos seriais para o módulo e controlar o MP3:
- O primeiro botão servirá como “anterior” que nos permitirá tocar a anterior música;
- O segundo botão servirá como “próximo” que nos permitirá tocar a próxima música;
- O terceiro botão será usado para “reproduzir / pausar” o arquivo que está sendo reproduzido;
E com um detalhe: o projeto possui um Display LCD 16×2 interativo para lhe informar o estágio que a música se encontra e informar qual arquivo MP3 Arduino está tocando atualmente!
Incrível, não concorda?!
Você deve estar pensando que o reprodutor de MP3 Arduino pareça um tanto quanto desatualizado. De certa forma, smartphones possuem uma aplicabilidade bem maior!
Mas, ao analisarmos o módulo Dfplayer Mini Arduino, ele se mostra um módulo bastante completo com todos os seus recursos de áudio.
De controle de volume, amplificador de 3W, equalizador e muito mais.
Sendo assim, esse tutorial irá abordar muitos recursos deste módulo e colocá-los em bom uso em um único dispositivo.
Portanto, com ele você irá construir de vez sua própria estação de música com o Arduino!
Componentes utilizados no Projeto Dfplayer Mini Arduino
Utilizaremos os seguintes componentes para a construção deste projeto:
- 1 x Arduino Uno;
- 1 x Protoboard grande;
- 1 X Protoboard pequena;
- 3 x Botões Push Button;
- 2 x Mini alto-falantes;
- 1x Resistor de 330Ohms;
- 1 x Display LCD 16×2;
- 1 x Amplificador PAM8403 (opcional);
- 1x Módulo MP3 DFPlayer Mini;
- 1x Cartão Micro SD;
Projeto Dfplayer Mini Arduino
Como de costume, cada um desses componentes pode ser adquirido através do link anexado a eles na lista acima.
Ademais, como já foi dito na introdução, o DFplayer é um módulo MP3 Arduino pequeno e barato com uma saída simplificada que pode ser conectada diretamente a um alto-falante sem um amplificador.
Como dito na introdução, temos outros recursos do DFplayer utilizado no nosso MP3 Arduino que são:
- Suporte para taxa de amostragem de 8KHz, 11,025KHz, 12KHz, 16KHz, 22,05KHz, até 48KHz;
- Saída DAC de 24 bits, suporte de faixa dinâmica 90dB, SNR suporta 85dB;
- Suporta FAT16, sistema de arquivos FAT32, suporte máximo para cartão TF de 32GB;
- Uma variedade de modos de controle, modo serial, modo de controle de chave AD;
- O recurso de spots de idioma de transmissão, você pode pausar a música de fundo que está sendo reproduzida;
- Amplificador embutido de 3 W;
- Os dados de áudio são classificados por pasta; suporta até 100 pastas, cada pasta pode ser atribuída a cerca de 1000 músicas;
- 30 níveis de volume ajustáveis, 10 níveis de EQ ajustáveis.
Circuito do Dfplayer Mini MP3
O módulo pode ser usado como um módulo autônomo com bateria conectada, alto-falante e botões ou usado em combinação com um microcontrolador ou placa de desenvolvimento que no nosso caso é o Arduino, habilitado para comunicação RX / TX (Serial).
Sendo assim, para nosso MP3 Arduino, a montagem dos componentes deve ficar da seguinte maneira:
Montagem dos componentes do projeto
Montagem do esquema elétrico do projeto
Como visto acima, a conexão entre o Arduino e o DFPlayer Mini é muito simples, pois só precisamos conectar dois pinos no Arduino além do VCC e do GND.
Além disso, deve-se observar que o resistor de 330Ohms inserido entre o pino Rx do módulo e o Arduino foi adicionado para reduzir o ruído, mas não é necessário se a configuração do módulo não for acompanhada de ruído na linha Rx.
Já, as conexões com o módulo MP3 Arduino e o amplificador, estão melhor descritas abaixo:
DFplayer Mini – MP3 Arduino:
- Rx – D10;
- Tx – D9;
- VCC – 5v;
- Gnd – Gnd;
- L – L do amplificador PAM8403;
- R – R do amplificador PAM8403;
Já as conexões do LCD utilizado aqui segue o seguinte padrão:
- RS – D12;
- E – 11;
- D4 – 5;
- D5 – 4;
- D6 – 3;
- D7 – 2;
Veja a seguinte ilustração de utilização do Display LCD:
Pinout do Display LCD 16×2 utilizado no projeto
Sendo assim, para melhor compreensão, reuni em uma tabela as conexões dos componentes com a placa:
Tabela – Conexões dos componentes com o Arduino:
Pinos Arduino | Display LCD | MiniDFPlayer | BOTÕES |
D2 | D7 | – | – |
D3 | D6 | – | – |
D4 | D5 | – | – |
D5 | D4 | – | – |
D6 | – | – | Switch 1 |
D7 | – | – | Switch 2 |
D8 | – | – | Switch 3 |
D9 | – | TX | – |
D10 | – | RX | – |
D11 | E | – | – |
D12 | RS | – | – |
Uma outra montagem para caso você opte em não utilizar o amplificador de áudio PAM8403 está representada abaixo:
Montagem dos componentes sem o amplificador
Montagem do esquema elétrico sem o amplificador
Nesse sentido, você deve utilizar os pinos SPK1 e SPK2 da seguinte forma:
- SPK1 – positivo (+) dos autofalantes;
- SPK2 – negativo (-) dos autofalantes;
- Rx – D10;
- Tx – D9;
- VCC – 5v;
- Gnd – Gnd..
Revise as conexões mais uma vez para garantir que tudo está como deveria estar.
Já, nossos push buttons são conectados intencionalmente sem resistores pull up (ou down) porque vamos habilitar os resistores pull up internos do microcontrolador durante a programação na IDE do Arduino. Ademais, caso ainda não possui facilidade com a linguagem C/C++ ou com a placa microcontroladora, acesse o artigo o que é Arduino para finalmente se familiarizar com a programação de sistemas embarcados.
Caso gostaria de conhecer melhor a aplicação da plataforma em outros projetos, acesse aqui nosso artigo com 10 projetos com Arduino para criar ainda este ano.
O Código do Projeto Dfplayer Mini MP3
Para enviar comandos do Arduino para o mini DFplayer, a partir do botão pressionado, usaremos a biblioteca serial do software Arduino.
Embora pudéssemos ter usado o serial do hardware para enviar comandos do Arduino para o MiniDFplayer, os pinos seriais do hardware do Arduino (0 e 1) são os mesmos pinos usados pelo Arduino para se comunicar com o computador e podem impedir que o código seja carregado sem problemas se conectado para qualquer outro dispositivo.
Portanto, para nos comunicarmos sem estresse, usaremos a biblioteca serial do software com os pinos 9 e 10.
O código para este tutorial é simples, enquanto o MiniDFPlayer possui uma biblioteca que contém diferentes funções para controlar o MP3 Arduino Player, iremos escrever nossas próprias funções para nos divertir e ajudar a mostrar como o módulo realmente funciona.
A primeira coisa que fazemos no código, como de costume, é incluir as bibliotecas usadas: biblio do LCD, Arduino.h, SoftwareSerial.h e a biblio do nosso módulo DFPlayer e também, não devemos nos esquecer de criar um objeto da biblioteca ao declarar os pinos Rx e Tx (10 e 9 respectivamente) do módulo.
Veja só:
[crayon-67425afd94a06518674824/]
Para instalar as bibliotecas utilizadas siga o passo a passo:
Vá em Incluir Biblioteca > Gerenciar Bibliotecas…
Após, digite DFRobotDFPlayerMini e instale-a na sua IDE Padrão
Em seguida, defina os pinos do Arduino que estão conectados ao Display LCD da seguinte forma:
[crayon-67425afd94a0b106045394/]
Feito isso, é hora de definir as variáveis utilizadas no nosso código que serão: variáveis para os Switches/Botões e variáveis para armazenar o tempo exibido no Display:
[crayon-67425afd94a0c663239624/]
Dentro do void setup (), você irá:
- iniciar a comunicação com a serial do Arduino e a comunicação com o LCD;
- definir as variáveis dos botões como INPUT (lembrando de habilitar os resistores PULLUP internos do Arduino), e;
- escrever um algoritmo para identificar se houver algum erro de leitura do módulo.
Veja só:
[crayon-67425afd94a0d184810133/]
Já no void loop (), você irá escrever toda a lógica de programação prevista para:
- pausar as músicas;
- mudar a equalização das mesmas, e;
- avançar/retroceder as faixas.
Veja o código abaixo completo e comentado para que você entenda a lógica construída dentro do loop de forma que você possa replicá-la em seu projeto:
Código Completo Utilizado
[crayon-67425afd94a0e322715169/]
O código não se altera se você optou por não utilizar o amplificador de som.
Falando nisso, se você optar por não o utilizar esse componente, deverá alterar o volume manualmente dentro do código indo até o void setup () e alterando a seguinte linha:
[crayon-67425afd94a0f172644589/]
Separei algumas funções que são utilizadas com o MiniDFPlayer, além das funções presentes no código, para que você possa implementar no seu projeto, tais como:
[crayon-67425afd94a13809872169/]
Conclusão
Carregue um cartão SD somente com músicas e insira no Mini DFPlayer, depois carregue o código no seu Arduino e conecte os fios do alto-falante aos pinos do alto-falante do Mini DFPlayer.
Você deverá ouvir as músicas começarem a ser transmitidas pelo alto-falante conectado.
Então, se você aplicou todas as etapas apresentadas, você foi capaz de aprender:
- Circuito operacional básico do DFMini Player MP3;
- Organização e configuração de arquivos de som no cartão de memória;
- Controle musical com Arduino;
- Integração Arduino – LCD/MP3 Player.
A partir deste código, você é capaz de desenvolver outros projetos que precisam usar som como funcionalidade do sistema com alguns exemplos citados abaixo onde espero que isso lhe dê inspiração para construir algo realmente legal.
Projetos úteis:
- Comandos de voz de alarme de incêndio;
- Avisos de voz para postos de pedágio;
- Eletricidade, comunicações, avisos de voz em cômodos;
- Alarme por voz multicanal ou guia de operação do equipamento de voz.
Se você é um amante do mundo do Arduino, aposto que esses projetos foram feitos para você:
- Projeto sensor de umidade do solo arduino com alerta por sms
- Display 7 segmentos arduino: tutorial para projetos
- Projeto arduino vu meter com leds endereçados
- Projeto arduino matriz de led 8×8: construindo um letreiro luminoso
É isso aí pessoal, obrigado por acompanhar até aqui e se você ficar preso em algum lugar deste projeto, sinta-se à vontade para enviar suas perguntas através da seção de comentários.
Até a próxima!