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.
Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!