Módulo MP3 WTV020-SD – Incorporando elementos de audio com arduino

Modulo WTV020-SD

Modulo WTV020-SD

Neste post vamos aprender a usar o módulo MP3 WTV020-SD. Com ele é possível incorporar elementos de audio em seus projetos com arduino, como comandos de voz, músicas, alarmes customizados e muitos outros. Com essa breve introdução, você será capaz de utilizar o módulo MP3 de forma fácil e prática em seus projetos.

Introdução

O módulo MP3 WTV020-SD é um circuito microcontrolado para gravação de voz. Possui um slot para cartão SD com capacidade de até  com 1GB de armazenamento, o que dá uma grande flexbilidade para trabalhar com arquivos de audio em projetos com Arduino.

Com o módulo é possível usar arquivos nos formatos WAV e AD4 que estejam de acordo com a formatação FAT. Arquivos no formato WAV podem ter de 6KHz a 16Hz de taxa de amostragem. Já os arquivos em formato AD4 possuem frequêcia de amostragem de 6KHz a 36KHz. Para mais informações sobre o formato AD4, acesse este artigo. O formato WAV é amplamente conhecido e utilizado, mas caso queira conhecer um pouco mais sobre ele, leia este artigo.

A imagem abaixo mostra o módulo.

O módulo possui alguns modos de funcionamento. São eles:

  • Modo de Controle MP3: Funções Play/Stop, Próximo, Volume+, Volume-;
  • Modo de Controle One-To-One: A chave correspondente aciona a voz que dispara as 3 vozes e ajusta a subtração do volume;
  • Mode de Controle Power-Loop: Quando ligado, não precisa acionar nenhuma entrada ou saída, a gravação é toda direcionada ao cartão SD;
  • Modo de Controle Second-Line: Livre para tocar arquivo de qualquer endereço. Combinação de reprodução pode ser usada neste modo;

A tensão nominal do módulo é 2.5V a 3.5V, portanto podemos usar o canal de 3.3V disponível no Arduino para alimentá-lo. O conversor ADC usado pelo módulo é de 16bits.

Conectando ao microcontrolador(Arduino) diretamente ao módulo, podemos utilizar 4 pinos para comunicação e controle das funções de reprodução  de áudio. Este é o modo Controle Second-Line.

No Modo MP3, push-buttons são usados para acionar os pinos do módulo e executar as mesmas funções de reprodução de música mencionadas acima. Os outros dois modos são os menos usados, pois dizem respeito a situações menos comuns. Para saber mais sobre eles, recomendamos a leitura do datasheet, que pode ser encontrado aqui.

 

Aplicações

 

O Módulo MP3 pode ser usado em diversas aplicações, como:

  • Alarmes para automóveis;
  • Comando de voz;
  • Leitor de músicas;
  • Sensor de estacionamento;
  • Casa inteligente e instrumentos médicos.

Qualquer projeto em que a incorporação de elementos de áudio seja importante são fortes candidatos ao módulo MP3 WTV020-SD.

 

Descrição do Projeto

 

O projeto de exemplo consiste no seguinte:

 

Preparar e salvar dois arquivos no cartão SD do módulo WTV020-SD, um no formato WAV e outro no Ad4, . Exibir um menu na interface serial para escolher qual arquivo tocar e por quanto tempo.

 

Aspectos de Hardware

A lista de componentes para este projeto é a seguinte:

Uma lista bem enxuta e com componentes disponíveis no mercado.

A pinagem do módulo MP3 WTV020-SD pode ser vista na tabela abaixo, retirada do datasheet original. Para este projeto, vamos usar os pinos de alimentação(3.3V e GND) e outros quatro pinos de comunicação.

Pinagem wtv020-SD

Pinagem wtv020-SD. Fonte: Datasheet.

Em nossa montagem, vamos utilizar a seguinte ligação:

Pino Módulo WTV020-SD Pino Arduino UNO
RST(pino 1) Digital 2
P06(pino 15/BUSY) Digital 5
P04(pino 7/Clock) Digital 3
P05(pino 10/Din) Digital 4

Monte o circuito conforme o diagrama abaixo:

Aspectos de Software

 

Para controlar o módulo vamos utilizar a biblioteca WTV020sd. A biblioteca foi  disponibilizada na comunidade Arduino (link original). A versão utilizada neste exemplo pode ser baixada aqui. Antes de gravar o programa e rodar seus arquivos de áudio, é necessário formatar o cartão SD com o sistema de arquivos FAT e também salvar um arquivo no formato AD4 e umno formato Wav.

Para converter para WAV existem vários aplicativos online(ex1). Para converer para AD4, recomendamos esse artigo que apresenta vários métodos(em inglês). O link original para a publicação da biblioteca possui um exemplo sobre como usar as várias funções do módulo. Nosso programa ficou da seguinte maneira:

//Exemplo: Modulo WTV020-SD com Arduino
//Visite: http://blog.eletrogate.com/

//Inclui biblioteca
#include <Wtv020sd16p.h>

#define DIN_PIN 4   //Pino DI
#define BUSY_PIN 5  //Pino busy
#define RST_PIN 2  //Pino Reset
#define CLK_Pin 3  //Pino clock

 
//Buffer de armazenamento
char bufferRead;

//Inicializa biblioteca com os pinos utilizados na montagem
Wtv020sd16p wtv020sd16p(RST_PIN,CLK_Pin,DIN_PIN,BUSY_PIN);
 
void setup()
{
  //Inicializa a porta serial serial
  Serial.begin(9600);
  //Inicializa o modulo WTV020
  wtv020sd16p.reset();
}
 
void loop()
{
  Serial.println("Para reproduzir o arquivo ad4.ad4 digite a");
  Serial.println("Para reproduzir o arquivo mps.mp3 digite b");
  Serial.println();
  
  //Aguarda receber algum byte na porta serial
  do
  {
    delay(1000);
      if(Serial.available())
      {
        bufferRead = Serial.read();
        
        if (bufferRead == 'a')
        {
          TocaAudio(1);
          break;
        }
          
         
        //Caso seja recebido o numero 2, reproduz o arquivo 0002.ad4
        if (bufferRead == 'b')
        {
          TocaAudio(2);
          break;
        }
      }
  }while(1);
  
}

void TocaAudio(int i)
{
  Serial.println("tocando: ");
  Serial.print(i);
  wtv020sd16p.playVoice(2);
  wtv020sd16p.asyncPlayVoice(i);
  delay(5000); 
  wtv020sd16p.stopVoice();
  delay(1000); 
}


Basicamente, temos um loop no qual damos a opção para o usuário escolher um dos dois arquivos ad4 deve tocar. Criamos a função TocaAudio que executa os comandos para tocar o audio selecionado por 5 segundos. Duas observações importantes que temos são as seguintes:

  • Em diversos fóruns e sites de projetos, há uma grande quantidade de relatos de problemas por conta do cartão SD. Mesmo com a montagem e o programa correto, algumas pessoas só conseguem colocar para funcionar com alguns cartões SD específicos. A maioria dos relatos de sucesso envolveram cartões de 512MB, 1GB e 2GB. Recomendamos ter atenção redobrada para verificar se o cartão foi formatado corretamente e se os áudios foram convertidos corretamente para ad4. Em alguns relatos, foi destacado que alguns arquivos convertidos com certos programas não funcionaram, enquanto conversões com outros programas funcionaram;
  • Outra questão é nomeclatura dos audios. O datasheet específica de forma muito clara que os arquivos devem estar nomeados segundo uma lógica 0001.ad4, 0002.ad4, 0003.ad4 e assim por diante;
  • É recomendado usar um amplificador de sinal para poder escutar o áudio com mais clareza. No nosso exemplo, como a potência de saída do WTV020-SD é bem baixa, é preciso estar num ambiente silencioso para escutar o auto-falante tocar;
  • Por fim, um pequeno detalhe de hardware. O módulo possui 3 pontos de solda, localizados na parte superior e com duas marcações, uma escrito 5V e outra 3.3V. Álguns módulos já vem com esses pontos soldados, mas pode ser que você tem que soldá-los, ligando o ponto do meio ao ponto de 3.3V, como na figura abaixo:
wtv020

wtv020

Considerações finais

Agora você está pronto para usar o WTV020-SD em seus projeos eletrônicos. Caso queira descobrir outras maneiras e exemplos de como utilizar o módulo que acabamos de estudar, outras boas referências são:

Se tiver alguma dúvida, deixe nos comentários e compartilhe suas ideias também!

Faça sua avaliação.
Por favor, aguarde...
Vitor Vidal
Vitor Vidal
Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.