blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução à gravação e reprodução de áudio com ISD1820
  • Aspectos de Hardware
  • Aspectos de Software
  • Considerações finais
  • Referências:
  • Sobre o Autor
Componentes Eletronicos

Gravação e reprodução de audio com módulo ISD1820

Eletrogate 1 de novembro de 2017Atualizado em: 16 maio 202211 min

Introdução à gravação e reprodução de áudio com ISD1820

Hoje vamos aprender a usar o módulo de reprodução e gravação de áudio ISD 1820. O módulo pode ser usado sozinho, por meio de seus push buttons, ou com um MCU de interface(controle via GPIO).

Conheça um pouco mais sobre o módulo e aprenda a incorporá-lo nas suas aplicações.

O módulo de gravação e reprodução de voz é baseada no CI ISD 1820. O módulo oferece capacidade de playback entre 8 e 20 segundos e é facilmente controlado tanto por push-buttons como por um microcontrolador. Isso significa que não necessariamente você precisa ter o Arduino fazendo interface com ele, basta montar o circuito e usar os push-buttons integrados do módulo.

Nesse artigo vamos usar o Arduino, pois o mesmo oferece flexibilidade e a possibilidade de integrar a gravação e reprodução de áudio em um projeto de automação, por exemplo.

O coração do módulo é o CI ISD 1820. Ele é o responsável pelo processo de aquisição de voz e reprodução dos dados gravados na memória. Além do CI, uma rápida inspeção no módulo permite identificar um microfone de eletreto, o terminal de alimentação, os botões de controle, com as funções REC, PLAYE e PLAYL, e também as saídas para o auto-falante, que é o conector branco na extremidade do módulo.

Veja na figura abaixo a localização do microfone, dos terminais de alimentação e do CI ISD 1820:

 

Módulo ISD 1820

Módulo ISD 1820

Para selecionar o tempo de gravação, é necessário ajustar/trocar um resistor externo. A frequência de amostragem também é alterada por meio desse resistor. O tempo de gravação vai de 8 a 20 segundos, e a frequência de amostragem vai de 4 a 12kHz. O resistor default é de 100k. Como você pode conferir na tabela abaixo, isso significa que, por padrão, o módulo reproduz 10 segundos de áudio e possui frequência de amostragem de 6,4kHz.

Resistência ExternaDuração(segundos)Sample Rate(Hz)Bandwidht(Hz)
80883,4
100106,42,6
120125,32,3
1601641,7
200203,21,3

Descrição da placa e pinagem

Os pinos do módulo ISD 1820 são os seguintes:

  • VCC: 3.3V;
  • GND: Referência da alimentação;
  • REC: É uma entrada ativo-alta para gravação de sinais. O módulo começa a gravar sempre que essa entrada é ativada. Importante notar que o pino deve permanecer em nível alto durante todo o tempo de gravação. Ou seja, não vale apenas enviar um pulso achando que a gravação vai começar e terminar. O pino de REC tem precedência sobre os outros dois(PLAL e PLAYE), assim, se você deu um comando com PLAYL e depois com REC, o comando com REC é executado;
  • PLAYE: Comando de reprodução por pulso positivo. Quando esse pino é ativado(transição de nível baixo para nível alto identificada), o módulo começa a reproduzir a gravação até que a memória termina ou um End-of-Message seja encontrado na gravação;
  • PLAYL: Comando de reprodução controlado por nível lógico. Quando esse pino vai de nível baixo para alto, um ciclo de playback é iniciado e toca enquanto o pino se mantiver ativado;
  • SP+ e SP-: São as saídas para o auto-falante. Pode ser ligado em speakers com impedâncias de até 8 ohms;
  • MIC: É a entrada do microfone, cujo sinal é aplicado ao pré-amplificador on-chip;
  • FT – Feed Through: Acionando esse modo, o microfone ativa os auto-falantes diretamente;
  • P-E: Modo no qual as gravações são tocadas sucessivamente;

Vale ressaltar a tensão de alimentação do módulo, que é de 3.3V, e não 5V. Portanto, fique atento para não alimentar o módulo com uma tensão maior do que 3.3V, sob risco de danificá-lo.

O procedimento de gravação/Reprodução manual consiste em 2 passos:

  1. Aperte/Acione o botão REC(repare no LED que irá acender) e mantenha-o em nível alto até o fim da gravação;
  2. Selecione o modo de Playback.
    1.  PlAYE: requer ativação somente uma vez e irá tocar toda a gravação;
    2. O PLAYL inicia a reprodução e para terminar é necessário desativá-lo;
    3. P-E: Quando esse jumper está ligado, a gravação é tocada repetidamente até que o jumper seja desligado;
    4. FT: Quando esse jumper está ligado, tudo que o microfone captar será reproduzido diretamente no auto-falante;

Descrição do projeto

Neste artigo vamos implementar um exemplo para controlar o módulo por meio do arduino. O projeto será o seguinte:

Sempre que um objeto for detectado por um sensor de presença TCRT5000, vamos reproduzir um comando de voz previamente gravado. 

Assim, nosso teste consiste em duas etapas: Acionar o botão de REC via Arduino para gravar o comando de voz desejado, e depois entrar num modo de identificação de objetos, no qual sempre que o sensor identificar a presença de um objeto, o módulo ISD 1820 irá reproduzir a gravação.


Aspectos de Hardware

No módulo, você vai ver uma barra de pinos com 12 pinos, 6 do lado direito e seis do lado esquerdo. A configuração default é deixar os dois jumpers interconectando todos os 4 pinos do meio do lado interno. O significado de cada pino e configuração é mostrado na imagem abaixo:

Detalhe do conector ISD 1820

Detalhe do conector ISD 1820

Quando os jampers estão conectados como em A(configuração P-E), a gravação é reproduzida de forma contínua. Quando está um jumper está conectado em B, não há alterações pois os dois pinos do meio não possuem funções. Quando um jumper está conectando os dois pinos em C, o modo F-T é habilitado.

O circuito junto com o TCRT5000 é mostrado abaixo. Nas ligações do módulo, por conveniência, mostramos apenas os pinos usados por nosso software.

Montagem TCRT5000, Arduino e ISD 1820

Montagem TCRT5000, Arduino e ISD 1820

Para entender como montar o sensor TCRT5000, acesse esse outro post no qual o seu funcionamento é explicado e é feito um exemplo de aplicação.


Aspectos de Software

O software usado é o seguinte:

#define saidaSensor 5
#define led 13
#define ativaPlayL 3
#define ativaREC 4
#define tempoReproducao 10000

int leituraSensor = 0;  
   
void setup()  
{  
  pinMode(saidaSensor,INPUT);
  pinMode(ativaPlayL,OUTPUT);
  pinMode(ativaREC,OUTPUT);
  pinMode(led,OUTPUT);//Pino para ativar o led
  pinMode(saidaSensor,INPUT);//Pino ler o sinal no coletor do fototransistor  
  Serial.begin(9600);//inicializa a porta serial com baud rate de 9600
  MainMenu();
}  
   
void loop()  
{ 
  leituraSensor = digitalRead(saidaSensor); 
  
  if (leituraSensor == 0 ) 
  {  
    digitalWrite(led,HIGH);
    digitalWrite(ativaPlayL,HIGH);
    delay(tempoReproducao);
    digitalWrite(ativaPlayL,LOW);
  }
  else 
    digitalWrite(led,LOW);
  
    
  delay(1000);
} 

void MainMenu()
{
  
  int controlLoop = true;
  char byteRead;
  Serial.println("Digita a para gravar ou b para rodar a reproducao");
  
  while(controlLoop)
  {
   
      if (Serial.available())  //verifica se tem dados diponível para leitura
      {
        byteRead = Serial.read(); //le bytwe mais recente no buffer da serial
        Serial.write(byteRead);   //reenvia para o computador o dado recebido
      }
      
      if( byteRead == 'a') 
      { 
        Serial.println("Gravação começa no 3");
        contador(3);
        digitalWrite(ativaREC,HIGH);
        Serial.println("Gravando por 10 segundos!");    
        contador(10);      
        digitalWrite(ativaREC,LOW);
        Serial.print("Pronto!");
        Serial.println("Digite b para comecar a reproducao");
        byteRead = ' ';
      }
      
      if(byteRead == 'b' )
      { 
        controlLoop = false;
        byteRead = ' ';
      }
  }
 }

void contador(int quantasVezes)
{
  for(int i=0; i<quantasVezes; i++)
  {
    Serial.print(i+1);
    Serial.println("...");
    delay(1000);
  }
}

 

No programa, foram criadas duas funções auxiliares:

  • MainMenu(): Essa função é um menu rápido para que o usuário possa fazer gravações antes de o sistema entrar na função void loop();
  • contador(): Uma função simples apenas para mostrar no terminal serial o tempo de duração da gravação do áudio;

Ao energizar o arduino e com o terminal serial aberto, você verá as mensagens pedindo para gravar um novo áudio ou proceder para a reprodução. Se escolher gravar, você poderá gravar um novo áudio por 10 segundos(tempo padrão). Se escolher proceder para as reproduções, o firmware vai para a função void Loop(). Nesta função o sensor TCRT5000 é lido constantemente. Sempre que um objeto entra no raio de leitura, a saída do sensor muda de estado e é acionado o pino PLAYL do módulo ISD 1820 por 10 segundos.

Dependendo da sua aplicação, você pode fazer pequenos ajustes no código para reproduzir o áudio por um tempo menor ou utilizar outras funcionalidades do módulo ISD 1820.


Considerações finais

Lembre-se de conferir o post sobre o sensor reflexivo TCRT5000 e recomendamos também a leitura das referências abaixo, principalmente a número 3, que é um guia do usuário sobre o ISD 1820. No mais, faça as adaptações no código para ajustar às suas necessidades e compartilhe suas dúvidas conosco.

Quer saber mais sobre Arduino ?

Placas Arduino | Arduino | Case Arduino | Kit Arduino | Sensores Arduino


Referências:

  1. Arduino Forum Oficial;
  2. How to use ISD1820 voice recorder and player;
  3. ISD1820 Voice Recorder Module User Guide;

Sobre o Autor


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.


Eletrogate

1 de novembro de 2017 Atualizado em: 16 maio 2022

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.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2022 - Todos os direitos reservados. Termos de uso e Política de privacidade.