14 agosto 2014

Conectando módulo gravador de voz e player ISD1820 ao Arduino

Grave até 10 segundos de som com o Módulo gravador de voz e player ISD1820. A gravação é feita por meio do microfone embutido na placa, e a reprodução utiliza um alto-falante comum de 8 ohms. Dependendo do seu projeto esse módulo pode até ser ligado à um amplificador. O som é armazenado na memória EEPROM interna do ISD1820.

Módulo gravador de voz e player ISD1820

Existem vários módulos baseados no CI ISD1820, mas todos funcionam da mesma maneira, o que muda geralmente é o hardware para selecionar algum tipo de configuração do módulo, disposição dos botões, etc. 

Esse que eu tenho possui 3 botôes para controle e um conector de 12 pinos que serve para ligação ao microcontrolador e também executar algumas funções específicas. Vamos olhar os detalhes desse módulo :

Módulo gravador de voz ISD1820 - Detalhes

  1. Botão REC :  Mantenha o botão pressionado para gravar até 10 segundos de som
  2. Botão PLAYE : Reproduz todo o conteúdo da gravação presente na memória EEPROM
  3. Botão PLAYL : Reproduz a gravação enquanto o botão estiver sendo pressionado
  4. ISD1820 : chip controlador de gravação e reprodução (datasheet)
  5. Led : Acende quando o módulo está no modo de gravação, e pisca rapidamente ao final da reprodução
  6. Microfone
  7. Conector de 12 pinos : Controle, alimentação e funções REP (repetição) e FT
  8. Conector para o alto-falante

O conector de 12 pinos é dividido em duas partes. No lado direito, os pinos REC, P-E e P-L tem as mesmas funções dos botões REC, PLAYE e PLAYL, respectivamente, e são ativados em nível alto (HIGH).  O pino FT (Feed Through) faz com que o som detectado pelo microfone seja reproduzido diretamente no alto-falante. GND e VCC correspondem à alimentação do módulo (3 à 5v).

Módulo gravador de voz ISD1820 - Conector


No lado esquerdo, um jumper nos dois pinos superiores (REP), reproduz de forma contínua a gravação contida na memória, até que o jumper seja retirado. Nos dois pinos inferiores (FT), um jumper realiza a mesma função do pino FT explicado anteriormente : ele envia o som detectado pelo microfone diretamente para o alto-falante. Esses dois jumpers podem ser substituídos por botões, assim fica mais fácil para ligar e desligar as funções. Ainda no lado esquerdo, os dois pinos centrais (NC), não são utilizados.

Testar esse módulo é muito fácil, já que você pode simplesmente alimentá-lo com uma tensão de 3 à 5v, e usar os botões para gravação e reprodução, conforme explicado acima. 

Para testar o módulo com o Arduino, siga o esquema de conexão abaixo :

Circuito Arduino - Gravador de voz ISD1820
Depois carregue este programa no Arduino. Ele aciona o pino de gravação (REC) 5 segundos após o carregamento do programa, mantendo o pino ativo por 10 segundos. Nesse tempo o led do módulo irá acender, indicando que os sons estão sendo armazenados na memória. O programa então faz uma pausa de 5 segundos, e em seguida reproduz os sons que foram gravados.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Programa : Gravador de voz e player ISD1820
// Autor : Arduino e Cia

// Pino ligado ao REC do modulo
int pino_rec = 5;
// Pino ligado ao P-E (PLAYE) do modulo
int pino_playe = 7;

void setup()
{ 
  pinMode(pino_rec, OUTPUT);
  pinMode(pino_playe, OUTPUT);
}

void loop()
{
  delay(5000);
  // Inicia a gravacao
  digitalWrite(pino_rec, HIGH);
  delay(10000);
  // Para a gravacao
  digitalWrite(pino_rec, LOW);
  // Aguarda 5 segundos
  delay(5000);
  // Inicial a reproducao
  digitalWrite(pino_playe, HIGH);
  delay(100);
  digitalWrite(pino_playe, LOW);
  // Aguarda 20 segundos e reinicia o processo
  delay(20000);
}  

Você pode utilizar esse módulo não só com o Arduino, mas também com outras placas e controladores, como por exemplo o Raspberry Pi e o PIC, bastando seguir o mesmo esquema de ativação dos pinos de controle.

27 comentários:

  1. Respostas
    1. Obrigado Delta ! Agradeço por acompanhar o Arduino e Cia. :-)

      Abraço.

      Excluir
  2. Tem como você me ajudar a minha duvida se tem como programar o sensor ultrasônico hc-sr04 quando chegar a determinada distancia o modulo de voz fala a frase gravada?

    ResponderExcluir
    Respostas
    1. Boa tarde João,

      Tem sim. Dê uma olhadinha nesse artigo aqui, em que eu uso o HC-SR04 como um sensor de ré/estacionamento :

      http://www.arduinoecia.com.br/2014/04/sensor-de-estacionamento-re-com-arduino.html

      Você pode usar o mesmo princípio para acionar o gravador de voz quando chegar a determinada distância.

      Abraço !

      Excluir
  3. Olá, Tem como mandar a gravação por Wireless para ser reproduzida em outro arduino?

    ResponderExcluir
    Respostas
    1. Boa tarde Raí,

      Muito interessante a sua pergunta. Talvez com dois módulos wireless interligando as placas.... Vou estudar isso mas creio que seja possível.

      Abraço !

      Excluir
    2. Obrigado, se conseguir me avisa por favor.
      abraço.

      Excluir
  4. Bom dia. Posso ligar o módulo em fonte de energia, como pilhas por ex, e usá-lo sem o arduíno ?
    Grato pela atenção

    ResponderExcluir
    Respostas
    1. Boa tarde Edilson,

      Pode sim, sem problemas. Use o Vcc e GND para a fonte, e controle as funções do módulo pelos botões da placa.

      Abraço !

      Excluir
    2. tem como usar as funções sem utilizar os botões? preciso usa-lo sem arduino? Preciso que ele atue como um auto falante.

      Excluir
  5. Tem como acionar a gravação a partir de um controle ps3 ou celular?

    ResponderExcluir
    Respostas
    1. Bom dia,

      Tem sim, vc pode incluir um módulo bluetooth no circuito, se quiser acionar por celular, ou então usar o controle para controlar uma das saídas do Arduino para acionar a gravação.

      Abraço !

      Excluir
  6. Boa tarde!
    Se eu jogar 5vdc no pino P-E ele reproduz a gravação?

    ResponderExcluir
  7. Boa tarde amigo,

    Gostaria de saber se posso alterar o local de armazenamento do audio gravado , para um cartão SD por exemplo ?

    Espero sua resposta

    silvio_henrique1@hotmail.com

    ResponderExcluir
    Respostas
    1. Bom dia,

      Não sei se é possível fazer isso com esse módulo, creio que vc vai precisar de uma placa específica para captura de som.

      Abraço!

      Excluir
  8. Boa tarde,

    os módulos de voz para arduino existentes no mercado são sempre limitados quanto à quantidade de frases ou palavras emitidas? Eu gostaria de saber se existe algum componente capaz de aumentar a capacidade de fala do robô falante.

    Aguardo sua resposta.

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Depende do seu projeto, mas uma opção é vc utilizar um módulo MP3 como o WTV020-SD:

      http://www.arduinoecia.com.br/2015/06/modulo-mp3-wtv020-sd-arduino.html

      Abraço!

      Excluir
  9. boa tarde, Procuro um componente semelhante a este, para colocar em um boneco ao ser pressionado ele emite um som, depois de apertado novamente ele desliga o som, seria este componente mesmo que está divulgando ou algum especifico? sabe onde posso encontrar? grato

    ResponderExcluir
    Respostas
    1. Boa tarde,

      você pode usar esse mesmo, talvez com alguma alteração na parte dos botões. Você pode encontrar na FILIPEFLOP:

      http://www.filipeflop.com/pd-e67e8-modulo-gravador-de-voz-e-player-isd1820-com-alto-falante.html

      Abraço!

      Excluir
  10. Hello, i can't find a ISD180 module in fritzing. Where did you find yours ? Thx .

    ResponderExcluir
    Respostas
    1. Hi Stéphane,

      I didnt find, so I draw it for myself... :/

      Regards! :)

      Adilson

      Excluir
  11. Olá, como eu posso melhorar a qualidade de saída do falante

    ResponderExcluir
    Respostas
    1. Boa noite,

      Que tal um módulo amplificador como esse? http://www.arduinoecia.com.br/2015/09/som-modulo-amplificador-audio-max98306-adafruit.html

      Abraço!

      Excluir
  12. tem módulo de gravação de 5 a 10 minutos???

    ResponderExcluir
  13. Bom dia como faço pra acionar um rele com o audio lampada ligado?

    ResponderExcluir