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 Áudio com Módulo ISD1820

Eletrogate 1 de novembro de 2017Atualizado em: 09 set 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 Externa Duração(segundos) Sample Rate(Hz) Bandwidht(Hz)
80 8 8 3,4
100 10 6,4 2,6
120 12 5,3 2,3
160 16 4 1,7
200 20 3,2 1,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.

Materiais necessários para o projeto Gravação e Reprodução de Áudio com Módulo ISD1820

  • 1x Uno R3 + Cabo Usb para Arduino
  • 1x Protoboard 400 Pontos
  • 1x Jumpers – Macho/Macho – 20 Unidades de 20cm
  • 1x Sensor Óptico Reflexivo Tcrt5000
  • 1x Resistor 330R 1/4W (10 Unidades)
  • 1x Resistor 10kK 1/4W (10 Unidades)
  • 1x Módulo Gravador de Voz e Player ISD1820 com Alto-Falante

cta_cart

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.

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


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: 09 set 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.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Projetos

Controlando o Braço Robótico em MDF via Bluetooth

Eletrogate29 de agosto de 2023 Atualizado em: 01 set 2023

Que tal montar um braço robótico e controlá-lo pelo celular? Entre para dicas de montagem e aprender a controlar servos e conectar sua placa.

Projetos

Controlando o Braço Robótico em MDF via Bluetooth

Eletrogate29 de agosto de 2023 Atualizado em: 01 set 2023

Que tal montar um braço robótico e controlá-lo pelo celular? Entre para dicas de montagem e aprender a controlar servos e conectar sua placa.

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

[email protected]


Seg a Sex - das 8h às 17h

Institucional

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

Nos acompanhe

Facebook Instagram Youtube

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