Sonidos de Robot

 

Proyecto: Agregando voz y sonido a un robot

Autor: Todorobot

 

Introducción:

El propósito de este proyecto fue encontrar una forma simple y económica de hacer hablar a un robot, y a la vez poder agregarle efectos de sonido.

Investigando un poco en la Web (a decir verdad varias horas) pude llegar finalmente a la página de ISD (www.isd.com) en donde encontré unos interesantes dispositivos que permiten grabar hasta varios minutos de audio en un simple chip con una calidad razonable.

Por razones de costo y disponibilidad me decidí a usar el ISD1420, el cual brinda 20 segundos de grabación con la interesante posibilidad de paginar la grabación en 160 direcciones, cada una de ellas con una duración de 0.125 segundos. Obviamente se pueden usar varias páginas juntas para obtener la duración deseada en cada segmento de dirección.

 

Teoría de funcionamiento

Grabando sonidos:

En la Web de ISD (www.isd.com) se puede encontrar un software y circuitos para ser utilizados con los chips ISD que nos permite grabar un sonido previamente generado con algún software específico que se consiguen fácilmente. Además se pueden encontrar todas las hojas de datos en formato PDF.

Para trabajar con los sonidos a grabar, se puede usar un software llamado CoolEdit que ellos mismos recomiendan y que he utilizado con resultados muy buenos. En la siguiente dirección de Web www.syntrillium.com podrán bajar una demo funcional (aunque con limitaciones) de este editor de audio.

Una vez que hemos generado los sonidos a grabar, el siguiente paso es grabarlos en nuestro ISD1420. Para ello podemos usar el software QVPRO que se obtiene en la dirección www.quadravox.com .

El único inconveniente es que este software fue diseñado para ser usado con la serie ISD4000 que son de mayor capacidad y precio que los ISD1420 (entre 2 y 4 minutos de grabación).

En un principio este problema y el hecho de no contar con suficiente información a cerca del funcionamiento de este software me desanimaron, pero luego al ver que realmente era muy útil por el hecho de poder manejar automáticamente la reproducción de un sonido (normalmente del tipo wav) y a su vez enviar señales de control vía el puerto paralelo cuando este sonido comienza y termina era una ventaja muy interesante para aprovechar.

Es por eso que me decidí a iniciar una serie de pruebas orientadas a entender que es lo que este software hacía cada vez que se le pedía que grabe un sonido. Una vez entendido su funcionamiento solo fue cuestión de diseñar una interfaz entre el puerto paralelo y mi ISD1420. El único detalle que no pude solucionar fue el hecho de utilizar el control de las direcciones directamente desde el software, por lo que lo solucioné instalando un dip-switch en mi interfaz (algo es algo).

 

Teoría de funcionamiento de la interfaz de grabación:

El circuito de la interfaz es el que se ve en la siguiente figura:

 

 

El Jack Mono (CN2) se conecta al canal izquierdo de la tarjeta de sonido. El DB25 macho (CN1) se conecta al puerto paralelo (LPT1 o LPT2). El preset R4 se utiliza para ajustar el nivel del sonido a ser grabado y evitar los defectos por saturación.

Mediante el dip-switch (SW1) se establece la dirección en la cual se desea grabar el sonido. Es importante tener en cuenta que se deben calcular bien las direcciones con el fin de dejar suficiente espacio para el sonido a ser grabado, ya que de lo contrario estos se solaparán y al reproducirlos se corre el riesgo que varios sonidos en direcciones adyacentes se ejecuten como uno solo. Por otro lado también es recomendable dejar la dirección 00h libre y borrada, empezando a grabar unos milisegundos adelante (por ejemplo en la dirección 04h) para que en caso que se autodispare (muy frecuente en un robot debido al ruido producido por los motores) no se ejecute sonido alguno y este defecto pase desapercibido.

IMPORTANTE:  Si el parlante a ser usado es de 8 ohms se debe agregar una resistencia de 10 ohms en serie.

 

Como usar el QVPRO con la interfaz anterior:

Al instalar el software QVPRO, este creará un grupo de programa llamado QVPRO y dentro de él QV300S que podemos ver en la siguiente figura:

 

 

 En QV System debemos dejar siempre "QV300" y en Port podemos seleccionar LPT1 o LPT2 (378 para LPT1 y 278 para LPT2 generalmente). Con el botón Add Files iremos cargando los archivos de sonido WAV que luego grabaremos en nuestro ISD1420. Obviamente Remove Files nos permitirá eliminar alguno no deseado. Además de esos botones, los únicos que utilizaremos son Record Selected File(s) para iniciar la grabación y STOP! en caso de tener que interrumpirla debido a algún error. Todos los botones restantes no los aprovecharemos debido a lo explicado anteriormente.

Una vez que hemos cargado en QVPRO el sonido/s a ser grabado/s, solo es necesario seleccionar el que grabaremos en la dirección determinada por el dip-switch y paso siguiente hacer click en Record Selected File(s). La grabación comenzará y finalizará automáticamente.

Es importante aclarar que cualquier sonido grabado encima de uno preexistente borrará automáticamente el anterior.

IMPORTANTE: Los archivos de sonido WAV a ser grabados deben tener el formato 16 bit linear mono con un frecuencia de muestreo (sampled) de 8000, 10.000, 11.025, 22.050 o 44.100 Hz . Es para este detalle en donde el CoolEdit (www.syntrillium.com) resulta muy útil, ya que permite convertir cualquier archivo de sonido a uno de estos formatos.

 

Reproduciendo sonidos:

Reproducir los sonidos grabados es aún mas simple que el proceso de grabación de los mismos. El ISD1420 es un chip muy sencillo y solo requiere de unos pocos componentes externos para su utilización. Esto lo podemos apreciar en el siguiente circuito de ejemplo:

 

 

Cabe aclarar que existen dos formas de ejecutar un sonido, por flanco o por nivel (PLAYE y PLAYL respectivamente). En el primer caso, cada vez que es presionado el pulsador, se reproduce el sonido almacenado hasta que el mismo finalice. En el segundo caso (no implementado en el circuito) el sonido se ejecuta al presionar el pulsador y continuará ejecutándose siempre y cuando el pulsador siga presionado o bien se alcance el final del sonido.

El funcionamiento de este circuito es muy sencillo, solo se debe indicar con el dip-switch la dirección del sonido a ejecutar y luego se presiona el pulsador. El sonido almacenado se ejecutará hasta que el mismo finalice.

Si bien el circuito es muy básico, es mas que suficiente para comprender el funcionamiento del ISD1420.

 

 

..