Este sketch utiliza o Wave Shield V3.0 para reproduzir sons
no formato ad4 armazenados em um cartão de memória de 2G. O sketch geral foi disponibilizado
pela empresa que produz o shield – a Elechouse (www.elechouse.com). Também no site da empresa tem
disponibilizado o manual de utilização e o link para baixar o conversor para arquivos de som no formato ad4. Após a conversão dos arquivos, eles deverão ser gravados no cartão de memória com nomes em hexadecimal (ver sketch).
No sketch aqui apresentado foram feitas modificações na
parte dos arquivos, nos delays, que correspondem à duração de cada música, e na apresentação dos títulos na porta
serial. Também foi comentada as linhas que alteram o volume, o que deixa o
volume de saída como máximo. Caso se queira um volume mais baixo é só efetivar
a linha para o volume igual a quatro.
O sketch ainda não está com todo o potencial do shield
explorado e, apesar de se ter o título na porta serial quando em reprodução
normal, se apertar a tecla para o som anterior ou posterior o título não
aparece devido ao delay do som que estava tocando. No entanto, como se tem
muito pouco material elucidativo sobre este shield o que aqui é apresentado
pode facilitar o aprimoramento de sketchs sobre o Wave 3.0, além de facilitar o
entendimento dos alunos do projeto de robótica da escola Doutor Pedro Velho.
Abaixo a imagem da montagem feita com o Wave 3.0 utilizando um alto-falante (pode ser também um fone de ouvido na entrada correspondente), módulo amplificador com fonte própria (opcional), Wave 3.0 com cartão de memória de 2 giga e uma placa Arduino UNO. Na sequência o sketch
com as modificações já declaradas acima, complementando o módulo dos sketchs
com som do projeto ROBÓTICA NA ESCOLA.
/*
*************************************************
PROJETO ROBÓTICA NA ESCOLA 2017
USANDO O WAVE SHIELD V3.0
PARA REPRODUZIR SOM
EE DR PEDRO VELHO – RN/BR
*************************************************
*/
// Baseado no sketch divulgado no site da elechouse.com
int CLK = 8; //pinos usados pelo shield
int DAT = 9;
void setup()
{
Serial.begin(9600);
pinMode(CLK, OUTPUT);
pinMode(DAT, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
//Controle de músicas pelos botões
digitalWrite(11, LOW); //toca música anterior
delay(100);
digitalWrite(11, HIGH);
digitalWrite(12, LOW); //pausar e tocar música
delay(100);
digitalWrite(12, HIGH);
digitalWrite(13, LOW); //tocar próxima música
delay(100);
digitalWrite(13, HIGH);
//arquivos de músicas enviados para a função send do shield
Serial.println("**************************");
Serial.println(" LISTA DE MUSICAS ");
Serial.println("**************************");
Serial.println(" ");
Serial.println("1. Mensagem Robotica");
send(0x0000);
delay(21000);
Serial.println("2. Words - Bee Gees");
send(0x0001);
delay(243000);
Serial.println("3. Passaro de Fogo - Paula Fernandes ");
send(0x0002);
delay(231000);
Serial.println("4. Mensagem Robotica");
send(0x0003);
delay(21000);
Serial.println("5. Fala So de Amor - Edson Gomes");
send(0x0004);
delay(317000);
Serial.println("6. Dando Trabalho Pros Anjos - DJ Jamaica");
send(0x0005);
delay(352000);
Serial.println("7. Admiravel Gado Novo - Ze Ramalho");
send(0x0006);
delay(315000);
Serial.println("8. Mensagem Robotica");
send(0x0007);
delay(21000);
Serial.println("9. Pra Ser Sincero - Engenheiros do Hawaii");
send(0x0008);
delay(223000);
Serial.println("10. Geracao Coca-cola - Legiao Urbana");
send(0x0009);
delay(142000);
Serial.println("11. Que Pais E Esse - Legiao Urbana");
send(0x0010);
delay(500);
}
//Função para reproduzir os arquivos
void send(int data)
{
digitalWrite(CLK, LOW);
delay(2);
for (int i=15; i>=0; i--)
{
delayMicroseconds(50);
if((data>>i)&0x0010>0) // Colocar o último arquivo do cartão (0x0010 neste caso).
{
digitalWrite(DAT, HIGH);
}
else
{
digitalWrite(DAT, LOW);
}
delayMicroseconds(50);
digitalWrite(CLK, HIGH);
delayMicroseconds(50);
if(i>0)
digitalWrite(DAT, LOW);
else
digitalWrite(DAT, HIGH);
delayMicroseconds(50);
if(i>0)
digitalWrite(CLK, LOW);
else
digitalWrite(CLK, HIGH);
}
delay(20);
}
Nenhum comentário:
Postar um comentário