O módulo ligado a um Arduino para acionamento comandado por um sensor ultrassônico |
O ISD1820 é um integrado capaz de gravar uma mensagem de voz de até 20 segundos na sua memória interna e reproduzi-la. Ele requer poucos componentes externos (resistores e capacitores) para conectar um microfone e um alto-falante. O módulo que vamos ver se baseia no circuito exemplo contido no datasheet (não achei o datasheet específico do ISD1820, mas tudo indica que é um exemplar da série ISD1800, descrita neste documento, com memória para até 20 segundos).
Por falar nestes "até 20 segundos"... O tempo máximo de gravação depende da taxa de amostragem, que é controlada por um resistor (R2 no módulo). O módulo vem com um resistor de 100K, o que limita o tempo em 10 segundos:
Vamos examinar primeiro a operação do módulo isolado. Para isto basta colocar uma alimentação de 3,0 a 5,0V entre os pinos VCC e GND do conector de pinos. A operação é feita através de 3 botões:
- REC: a gravação começa quando você aperta este botão e dura até você soltar o botão ou acabar a memória.
- PLAYE: aperte e solte este botão para reproduzir a mensagem gravada. O "E" é de "edge" (borda): a reprodução é disparada pela mudança de nível baixo para alto em um pino do ISD1820.
- PLAYL: aperte e mantenha pressionado para reproduzir a mensagem gravada. O "L" é de "level" (nível): a reprodução é feita enquanto é mantido o nível alto em um pino do ISD1820.
Um LED fica aceso enquanto está sendo feita a gravação e pisca rapidamente quando a reprodução é concluída.
Ao lado do conector de pinos tem dois jumpers:
- FT: fixa o sinal FT (transformando o gravador em um amplificador do microfone)
- P-E: conecta o sinal P-E ao sinal do LED, fazendo com que a gravação seja reproduzida continuamente.
Vamos fazer uma brincadeira simples com um Arduino, ligado ao módulo ISD1920 e um sensor ultrassônico HC-SR04:
O programa abaixo dispara uma gravação de 5 segundos quando o Arduino é ressetado; depois disso a mensagem será tocada quando o sensor ultrassônico detectar que tem um obstáculo a menos de 0,5 metro.
/* * Exemplo de uso do Módulo Gravador de Voz com ISD1820 */ // Conexões const int pinPlay = 2; const int pinRec = 3; const int pinTrigger = 4; const int pinEcho = 5; // Iniciação void setup() { // Inicia o sentido dos pinos pinMode (pinPlay, OUTPUT); pinMode (pinRec, OUTPUT); pinMode (pinTrigger, OUTPUT); pinMode (pinEcho, INPUT); // Inicia o estado dos pinos digitalWrite (pinPlay, LOW); digitalWrite (pinRec, LOW); digitalWrite (pinTrigger, LOW); // Faz uma gravação de 5 segundos digitalWrite (pinRec, HIGH); delay (5000); digitalWrite (pinRec, LOW); } // Loop principal void loop() { // Verifica se tem algo próximo digitalWrite (pinTrigger, HIGH); delayMicroseconds (20); digitalWrite (pinTrigger, LOW); long tEcho = pulseIn (pinEcho, HIGH, 38000L); if (tEcho < 2900L) { // Toca a gravação digitalWrite (pinPlay, HIGH); delay (10); digitalWrite (pinPlay, LOW); // Aguarda acabar delay(5000); } // Dar um tempo entre as leituras delay (500); }Embora interessante, este módulo não é muito versátil. O uso típico com microcontolador seria para emitir uma mensagem pré gravada quando um certa condição por detectada. Uma alternativa mais versátil (mas mais cara e sem capacidade de gravação) é usar um módulo MP3 (como este ou este).
Nenhum comentário:
Postar um comentário