Neste post vamos aprender a usar o módulo de áudio WTV020-SD. Com ele é possível incorporar elementos de áudio em seus projetos com arduino, como mensagens de voz, músicas, alarmes customizados e muitos outros. Com essa breve introdução, você será capaz de utilizar o módulo WTV020-SD de forma fácil e prática em seus projetos.
O módulo 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 flexibilidade para trabalhar com arquivos de áudio em projetos com Arduino.
Com o módulo é possível usar arquivos nos formatos WAV e AD4 (áudio compactado) 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ência 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 outro artigo.
A imagem abaixo mostra o módulo.
O módulo possui alguns modos de funcionamento. São eles:
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 Audio, 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.
O Módulo WTV020-SD pode ser usado em diversas aplicações, como:
Qualquer projeto em que a incorporação de elementos de áudio seja importante são fortes candidatos ao módulo WTV020-SD.
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.
Materiais necessários para o projeto com Arduino Uno e Módulo MP3 WTV020
A pinagem do módulo 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. 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:

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 um no formato Wav.
Para converter para WAV existem vários aplicativos online(ex1). Para converter 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: https://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:

wtv020
Agora você está pronto para usar o WTV020-SD em seus projetos 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!
Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!