sábado, 31 de enero de 2009

El Sensor de Sonido

El sensor de sonido incluido en el kit de Lego Mindstorms NXT es bastante interesante y tiene varias aplicaciones muy padres.


El sensor solo detecta la "cantidad" de sonido y no ningún tipo de tono o modulación, pero aun así hay muchas aplicaciones ingeniosas que se le pueden dar.

Este sensor lee el sonido ambiental y nos regresa una medida de 0 a 100%. Podemos configurarlo para que lea Decibeles o Decibeles Ajustados. En terminos muy simples los decibeles ajustados solo incluye sonidos que el oido humano puede escuchar, al contrario de los decibeles normales que podria incluir frecuencias que no podemos escuchar pero que el sensor de sonido capta.

Poner el sensor de sonido en modo dBA es mas complicado de lo que debería hacer. Lo que tenemos que hacer es conectar una variable lógica puesta en TRUE al conector dBA del bloque del sensor de sonido como se ve en esta pantalla (click para agrandar).


Ambos bloques se sacan de la paleta la "Complete Palette" uno de "Sensor" y el otro de "Data".

Los decibeles se miden en una escala logarítmica medio complicada, por lo cual este sensor por defecto nos regresa, como ya dije, valores entre 0 y 100%. Estos valores corresponden mas o menos a:

  • 4-5% Una casa silenciosa.
  • 5-10% Alguien hablando lejos.
  • 10-30% Es una conversación cerca del sensor o música en un volumen normal.
  • 30-100% Gente gritando o música a volumen alto.

Lo mas fácil para probar que lectura nos da este sensor es conectarlo a algun puerto de nuestro bloque programable y seleccionar la opción de "View" y dentro ya sea "Sound Sensor dB" o "Sound Sensor dBA" esto nos indicara la lectura continua que esta teniendo el sensor.



Calibración

Una cosa importante es calibrar nuestro sensor para que no le afecte mucho el ruido del ambiente. Esto se puede hacer desde el software incluido en el kit (NXT-G) desde el menú de "Tools" hay una opcion de "Calibration" con la cual podemos programar el sonido mínimo y máximo que queremos que nuestro sensor detecte.

Aplicaciones

La aplicación mas sencilla es una que ya viene precargada en el bloque es que los motores conectados al puerto B y C (como en el Tribot) se muevan en linea recta a una velocidad de acuerdo a la cantidad de sonido que escuche. Este programa ya viene precargado en el menu "Try Me" y luego "Try Sound".

Otra idea muy común es hacer que el robot reaccione a comandos de voz cuando escuche sonidos fuertes. Para esto se puede usar el bloque de Wait-> Sound Sensor.

Cosas mas avanzadas incluyen un contador de aplausos y robots que pueden detectar la direccion del sonido usando dos o mas sensores (calculando a cual de los dos sensores le llega primero el sonido).

Una cosa a tener en cuenta y que me di cuenta al estar construyendo un robot que sigue el sonido usando un solo sensor (que se mueve de un lado para otro) es que los motores del kit hacen mucho ruido y muchas veces pueden saturar al sensor, por lo cual es recomendable montar el sensor lo mas alejado de los motores que se pueda.

Otros reportes en internet es que aveces si el sensor no esta en modo dBA el sensor ultrasónico puede interferir con el sensor de sonido así que es algo mas a considerar.


6 comentarios:

  1. muy buena informacion! sobretodo la del dBA

    ResponderEliminar
  2. Una Pregunta que es el dBA?

    ResponderEliminar
  3. como hago para que el robot se mueva hacia una fuente de sonido???

    desde ya muchas gracias

    ResponderEliminar
  4. ¿puede un robot reaccionar ante diferentes comandos de voz con esto?

    ResponderEliminar
  5. me gusta esta información.... esta interesante =)

    ResponderEliminar