Transductores usados en el robot: Ultrasonidos

Esquema
Módulos del robot

En esta entrada vamos a explicar los transductores (sensores) ultrasónicos que hemos utilizado en el robot.

Transductores Ultrasónicos

Un transductor ultrasónico es un detector de proximidad de objetos, con distancias que van desde pocos centímetros hasta varios metros. El transductor emite un ultrasonido, es decir, una onda acústica con frecuencia por encima del límite perceptible del ser humano (20 KHz),  que rebotará sobre el objeto más cercano en esa dirección. Estos transductores sólo trabajan en el aire, y pueden detectar objetos con diferentes formas, colores, superficies y materiales. Los materiales pueden ser sólidos, líquidos o polvorientos, sin embargo han de ser deflectores de sonido.

Imagen 38
Generación Onda Ultrasónica

Funcionamiento:

El funcionamiento básico de los transductores de ultrasonidos para la medición de distancia se muestra en el siguiente esquema, donde se tiene un receptor que emite un pulso de ultrasonido que rebota sobre un determinado objeto y la reflexión de ese pulso es detectada por un receptor de ultrasonidos, tal como se muestra en la figura.

Imagen 39
medida de distancia por ultrasonidos

El transmisor genera ráfagas de impulsos de una frecuencia y duración concretas, y al detectar la onda reflejada se genera una interrupción la cual detiene un timer.

Midiendo el tiempo que el eco tarda en regresar desde que se emitió el pulso, puede saberse a que distancia estaba el objeto que produce la reflexión de la onda.

La siguiente fórmula calcula la distancia  según el tiempo de recepción del eco en el transductor ultrasónico.

formula

Donde V es la velocidad del sonido en el aire, (unos 340 m/s) y t es el tiempo transcurrido entre la emisión y recepción del pulso medido en segundos.

Cosas a tener en cuenta:

Los transductores ultrasónicos presentan  una zona ciega, que depende de la frecuencia del transductor. Los objetos ubicados dentro de la zona ciega no se pueden detectar de manera fiable.
Aun no estando un objeto dentro de la zona ciega, y aunque el funcionamiento de estos transductores es sencillo, hay que saber que las mediciones pueden ser erróneas en ciertas circunstancias puesto que las ondas de ultrasonido obedecen a las leyes de reflexión de las ondas, por lo que tienen el mismo ángulo de incidencia y reflexión respecto a la normal a la superficie. Esto puede generar diversos errores:

  • Si la orientación relativa de la superficie reflectora con respecto al eje del transductor de ultrasonido es mayor que un cierto umbral, el transductor nunca reciba el pulso de sonido que emitió.

Otro factor de error muy común es el conocido como falsos ecos. Estos falsos ecos se pueden producir por razones diferentes:

  • Puede darse el caso en que la onda emitida por el transductor se refleje varias veces en diversas superficies antes de que vuelva a incidir en el transductor (si es que incide). Este fenómeno, conocido como reflexiones múltiples, implica que la lectura del transductor evidencia la presencia de un obstáculo a una distancia proporcional al tiempo transcurrido en el viaje de la onda; es decir, una distancia mucho mayor que a la que está en realidad el obstáculo más cercano, que pudo producir la primera reflexión de la onda.
Imagen 43
Reflexión de la onda en dos superficies
  • Otra fuente más común de falsos ecos, se produce cuando se emplean varios transductores ultrasónicos simultáneamente. En este caso ocurre con frecuencia que un transductor emita un pulso y este es recibido por otro transductor que estuviese esperando el eco del pulso que él había enviado con anterioridad.
Imagen 44
Recepción de una onda generada por otro ultrasónico.

Como transductores ultrasónicos se ha utilizado el srf08 y el sfr10:

SRF08:

SRF08
SRF08

SRF10:

SRF10
SRF10

Ambos transductores ultrasónicos son de la misma familia, SRF, con un alcance que va desde los 3cm hasta los 6m en ambos, por lo que son usados para detector de objetos, o medición de largas distancias. Además otra de las ventajas que presentan es que es muy fácil comunicarse con ellos mediante I2C, pudiendo conectarse todos ellos al mismo bus.

Todos ellos tienen una alimentación de 5V, y un consumo de 15 mA en funcionamiento, viéndose reducido hasta los 3mA en reposo. Lo que supone una gran ventaja en este caso, puesto que al alimentar al robot por pilas, hay que tener muy en cuenta el consumo.

Margen de detección:

Imagen 47

Sus dimensiones son 43 x 20 x 17 mm para el SRF08 y de 32 x 15 x 10 mm para el SRF10

Otra de las diferencias entre ambos transductores es que el SRF08 presenta un transductor de luz que no presenta el otro, pero que en este caso no es relevante, puesto que con que uno de ellos proporcione la información de la luz que hay en el entorno es suficiente.

Por simetría, puesto que tenemos dos transductores SRF10 y un SRF08, y por utilidad, se decidió poner el SFR08 delante, para que la información de la luz se reciba desde la parte frontal del robot, que también es donde va ubicada la cámara. Mientras que a cado lado se tiene un SRF10.

Conexión del transductor:

Ambos transductores poseen 5 pines. Uno de ellos no se conecta, mientras que del resto, dos de ellos son de alimentación (Vcc, y GND),  y los otros dos son los de la comunicación I2C (el de datos (SDA) y el del reloj (SCL)).

SRF08_2
Pines de conexión SRF08

Funcionamiento de los transductores ultrasónicos:

Cada uno de los transductores posee un microcontrolador en la placa, en este caso un pic16F, con el que establecer la comunicación I2C, así como 4 registros:

Ubicación Lectura Escritura
0 Revisión de software Registro de comando
1 Sin uso (lee 0x80) en el SRF10, y registro de luminosidad en el SRF08 Registro de ganancia máxima (por defecto 16)
2 Byte alto del valor medido Registro de alcance de distancia (por defecto 255)
3 Byte bajo del valor medido No disponible

Para iniciar la primera medida existen distintos comandos a utilizar, según las unidades en las que se quiera que el transductor devuelva la medida. (En hexadecimal los comandos a utilizar son los siguientes)

  • 0x50: Calculo de la distancia, con resultado en pulgadas
  • 0x51: Calculo de la distancia, con resultado en centímetros
  • 0x52: Calculo de la distancia, con resultado en microsegundos

Se escribe el comando decidido en el registro 0, y tras unos 65 us, es posible leer el valor de vuelta en las unidades correspondientes.

Otro modo de saber cuándo el dato de vuelta está listo, es hacer lecturas continuadas al registro 0, puesto que mientras el valor leído, sea 0xFF, significa que está realizándose la medida y aún no ha terminado.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s