Make your own free website on Tripod.com
Robots Móviles
Software y documentación para robots móviles

Sensor omnidireccional

Habitualmente, los robots comerciales utilizados en investigación de medio y gran tramaño como pueden ser los de Nomadic Technologies o los de Real World Interfaces incorporan unos anillos de ultrasonidos como parte de su equipación sensorial. Normalmente, el número de elementos sensoriales que componen estos anillos de ultrasonidos varían entre 16 y 24, dependiendo del propio tamaño del robot y de las aplicaciones que quieren ser estudiadas. En la imagen podemos ver un robot Nomad-200 y algunos de los 16 sensores Polaroid que conforman su anillo de ultrasonidos.

[ Robot Nomad-200 ]

Con semejante equipación sensorial, el robot puede tener un conocimiento de los obstáculos que le rodean en cada momento e incluso de la llegada de otros agentes móviles. Son fundamentales en trabajos de modelado del entorno en los que se construyan mapas del lugar en el que opera el robot de forma autónoma. Al estar siempre presentes y disponibles, no se tienen que realizar movimientos adiccionales del robot para adquirir características de lugares del entorno que podrían interferir en la información que se dispone sobre la posición y orientación del robot. Pueden utilizarse únicamente unos sensores concretos para cada comportamiento que se esté programando o puede usarse una combinación de las lecturas realizadas por varios de ellos para establecer un mecanismo simple para reducir la incertidumbre en las medidas debidas, por ejemplo, a rebotes. Esta disposición es también muy útil para aplicar métodos de navegación basados en campos de potencial artificiales.

En general, como puede verse, son muchas las ventajas que presenta este tipo de disposición sensorial. Probablemente, sólo pueda apuntarse un inconveniente aunque de importancia considerable: su coste, tanto económico como computacional.

En el presente documento vamos a ofrecer una alternativa a este tipo de dispositivos sensoriales basada en un único sensor para la medida de distancias como es el Sharp GP2D12 que colocaremos sobre un servo de los que se utilizan para radiocontrol. Los movimientos del servo actuarán sobre la dirección en la que vamos a realizar las medidas. En la imagen siguiente puede verse un detalle del montaje del sensor junto con una tarjeta CT6811 que utilizamos para realizar el control de la posición del servo y convertir las medidas del GP2D12.

[ Montaje de un sensor omnidireccional ]

De esta forma, vamos a reducir el número de elementos a utilizar con lo que se reducirá el coste. Las prestaciones serán similares, salvando las distancias entre las tecnologías de senores utilizados, e incluso superiores ya que podremos tomar medidas prácticamente en cualquier dirección y no en unas direcciones concretas y definidas como es el caso de los anillos de ultrasonidos. Al utilizar un solo sensor, estaremos recibiendo información de los que ocurre por uno de los lados del robot (por ejemplo, el frontal); con un segundo sensor colocado en sentido opuesto, podríamos tener información de todo lo que ocurre en torno al robot. Más sensores introduciría redundancia en las medidas o la posibilidad obtener información a mayor frecuencia no siendo necesario tener que operar el servo.

En lo que sigue veremos, en primer lugar, cómo conectar y leer las medidas tomadas por el GP2D12 para continuar con el conexionado y control del servo en posición. Terminaremos presentando todo el conjunto y mostraremos una serie de registros sensoriales de diferentes lugares a modo de ejemplo.

GP2D12: Sensor de medida de distancias mediante infrarrojos

[ Foto de un GP2D12 ]
[ Foto de un GP2D12 ]
[ Foto de un GP2D12 ]

 
* -----------------------------------------------------------------------
* ledir.asm
*
* Enciende el led del PA6 si recibe una señal infrarroja por el PE1
* -----------------------------------------------------------------------

PORTA	EQU $00			; Dirección del puerto A
PORTE	EQU $0A			; Dirección del puerto E


	ORG $0000		; Programa en RAM interna

inicio	STAA PORTA,X
	BRCLR PORTE,X $02 ledon

ledoff	CLRA
	BRA inicio

ledon	LDAA #$40
	BRA inicio

	END

Emisión

Una vez resuelto el problema de la recepción, vamos a centrarnos en la otra parte del sistema: la emisión. Ya hemos mencionado que los receptores utilizados son sensibles a la mayor parte de los mandos de infrarrojos de electrodomésticos. Eso nos puede ayudar en la fase de pruebas de la recepción e incluso utilizar el mando para enviar órdenes al robot. Este problema precisa un estudio de los códigos que emiten los mandos de diferentes fabricantes y será objeto de otro documento.

Como se dijo en la introducción, el objetivo es establecer una comunicación entre dos dispositivos de una forma general, ya sean dos robots, un robot y un ordenador o dos dispositivos electrónicos genéricos. Por lo tanto, a continuación vamos a presentar dos montajes basados en un circuito integrado muy conocido y utilizado: el 555.

En el primero utilizaremos la típica configuración en astable con una ligera modificación para conseguir un 50% de ciclo de trabajo que es lo que nos requiere el receptor. Por 50% de ciclo de trabajo entendemos que sólo durante la mitad del tiempo se está enviando la señal, o lo que es lo mismo, el tiempo que está encendido el LED es el mismo que el que está apagado; al tratarse de una frecuencia de 38 kHz (periodo de 26.316 us), dicho tiempo será de 13.158 us.

En el segundo, estaremos cerca de de ese ciclo de trabajo, justo para activar el receptor, con bastantes menos elementos que los que se precisan en el primero de ellos. Este segundo montaje también incorpora algunos componentes nuevos con respecto al primero como son los condensadores de filtro y el transistor que permite aumentar la corriente que circula por el LED infrarrojo.

Emisor con 50% de ciclo de trabajo

Utilizando el 555 en modo astable hace que se dispare a sí mismo y pueda funcionar como un multivibrador. En esta configuración son necesarias dos resistencias (Ra y Rb) y un condensador (C). En la siguiente figura se muestra el conexionado típico.

[ 555 en modo astable ]

El condensador C se carga a través de las resistencia Ra + Rb y se descarga a través de la resistencia Rb. Variando los valores de estos tres parámetros (C, Ra y Rb) se puede ajustar de forma precisa el ciclo de trabajo. El tiempo t1 que la señal está a valor alto (tiempo de carga) y el tiempo t2 que la señal está a valor bajo (tiempo de descarga) vienen expresados por las siguientes expresiones:

 t1 = 0.693 (Ra + Rb) C 
 t2 = 0.693 (Rb) C 

Examinando ambas expresiones puede verse claramente que el 50% de ciclo de trabajo (t1 = t2) sólo se alcanzaría si la resistencia Ra fuese nula. Ese caso no es posible ya que debido a las restricciones del 555 la resistencia Ra debe ser mayor que cero. Por tanto, utilizando este esquema de conexiones, podrían elegirse valores para los tres parámetros, y en concreto para Ra, que hiciesen casi iguales los dos tiempos en el mejor de los casos.

En esta página podemos encontrar un ajuste del cicuito anterior mediante un diodo colocado en parelelo con la resistencia Rb (con el cátodo entre Rb y C y el ánodo entre Rb y Ra). De esta forma para el tiempo de carga sólo debemos tener el en cuenta la resistencia Ra y los tiempos de activación y desactivación vendrán determinados por:

 t1 = 0.693 (Ra) C 
 t2 = 0.693 (Rb) C 

Por lo que para conseguir un ciclo de trabajo del 50% se deberá seleccionar una pareja de resistencias de igual valor. El montaje definitivo podemos verlo en la siguiente figura.

[ Esquemático con 50% de ciclo de trabajo ]

Sólo resta hacer un comentario sobre los valores de las resistencias Ra y Rb y del condensador C (R2, R3 y C1 en el esquemático, respectivamente).

De partida, queríamos conseguir una frecuencia de 38 kHz. Fijando el valor del condesador C = 10 nF y a partir de las últimas dos expresiones de los tiempos t1 y t2, puede definirse un valor para las resistencias de Ra = Rb = 1898 ohmios. Con estos valores de resistencias y condensador, se obtienen unos tiempos de carga y de descarga de t1 = t2 = 13.153 us con lo que la frecuencia es de 38013 Hz, valor muy próximo a los 38 kHz iniciales que va a excitar a los receptores.

Encontrar resistencias de 1898 ohmios puede ser un tanto difícil (por no decir imposible) por lo que pueden también utilizarse potenciómetros en ese rango o mejor aún, resistencias de ajuste multivuelta, algo caras (algo más de 2 €) pero permite ajustar mejor el valor que queremos.

[ Resistencias de ajuste ]

Como emisor se ha utilizado un LED infrarrojo de 5 mm, concretamente un CQY89, que emite en un ángulo de 25 grados una longitud de onda de 930 nm lo que hace que entre en la banda del infrarrojo. Aunque este LED infrarrojo es muy fácil de encontrar en tiendas de electrónica, cualquier otro de características similares puede servir también.

Para las pruebas de funcionamiento puede cambiarse el LED infrarrojo por otro que emita luz dentro de la franja visible. Será imposible ver si el LED se apaga y enciende 38000 veces por segundo pero si se compara con otro que esté permanentemente encendido se verá que luce a la mitad de la intensidad que éste ya que, al fin y al cabo, sólo la mitad del tiempo está encendido.

El LED infrarrojo no podrá verse directamente en ningún caso (afortunadamente, no estamos preparados para ver este tipo de emisión) pero existen algunos papeles especiales sensibles a este tipo de luz que cambian cuando reciben la emisión. También pueden utilizarse los visores de cámaras fotográficas digitales o cámaras de video, cuando el LED esté encendido se verá que toma un color que tiende a morado.

[ LED infrarrojo apagado ]    [ LED infrarrojo encendido ]

Emisor con resistencia de ajuste

El segundo montaje que aquí presentamos también puede encontrarse en su formato original en el fantástico web sobre robots móviles Robot Room de David Cook. Para una discusión más completa del circuito y las ventajas de utilizar el 555 frente a otro tipo de posibilidades consúltese dicho web.

Como puede verse en el esquemático, este montaje sólo utiliza una resistencia de ajuste (en este caso de 5K) que además nos va a permitir seleccionar una frecuencia de emisión que esté en el rango de los 36 a 40 kHz. De esta forma pueden también utilizarse otros receptores diferentes al que se ha utilizado en la pruebas, el IS1U60 de Sharp, y que trabajen en el mencionado intervalo. Para que el cicuito funcione a una frecuencia de 38 kHz, la suma de las resistencias R1 y R2 (una fija de 15K y otra variable de 5K, respectivamente, situadas a la derecha del 555) debe ser de 18797 ohmios.

[ Esquemático con resistencia de ajuste ]

A diferencia del otro montaje propuesto, en éste no se utiliza directamente la salida del 555 (pata 3) para alimentar el LED sino que se utiliza el transistor T1 (un transistor NPN 2N2222). La salida del 555 la conectaremos, a través de la resistencia R4, con la base de transistor. La activación o desactivación de la base abrirá o cerrará el circuito entre el colector y emisor.

Este uso de los transistores como meros interruptores electrónicos es muy frecuente y permite ajustar la corriente (aumentar en este caso) que pasa a través del elemento a controlar (el LED infrarrojo). Aumentando la corriente, también aumentaremos la cantidad de luz emitida por el LED y por lo tanto el alcance del emisor.

Con este circuito alimentado con 4 baterias de 1.5 voltios, se ha conseguido un alcance de poco más de dos metros. Bajando el valor de la resistencia R3 puede aumentarse la intensidad en esa rama y el alcance. Para calcular la corriente debe tenerse en cuenta, por un lado, el limite máximo permitido por el LED y, por otro, la caída de tensión en el LED (unos 1.8 voltios) y entre el colector y el emisor del transistor (unos 0.2 voltios).

[ Circuito de emisión de prueba ]

El interruptor S1 permite activar o desactivar la emisión sin cortar la alimentación. La resistencia R5 actúa de pull-up por lo que cuando S1 esté abierto, el Reset (pata 4) del 555 estará desactivado y se estará emitiendo señal; cuando el interruptor S1 esté cerrado, se activará el Reset a nivel bajo y se dejará de emitir.

Para su utilización como baliza esto no tiene mucho sentido ya que se podría conectar y desconectar directamente la alimentación, pero para utilizarlo con un microcontrolador, esto puede tenerse en cuenta para realizar la conexión y desconexión directamente con una pata de salida del micro.

Conclusiones

Hemos presentado los componentes básicos para establecer una comunicación mediante infrarrojos entre dos dispositivos electrónicos, como pueden ser dos robots móviles o un robot móvil y cualquier otro dispositivo (balizas, ordenadores, etc.). Para una comunicación completa se tendría que definir el protocolo usado durante la comunicación, desde la determinación de los valores de los bits a enviar hasta el propio protocolo de alto nivel.

Para la recepción se ha utilizado un circuito receptor de infrarrojos como es el IS1U60 de Sharp, que en el mismo integrado engloba el receptor infrarrojo, lentes para mejorar la recepción y la lógica necesaria. Desde el punto de vista de su utilización, este dispositivo lo podemos ver como una caja negra que una vez alimentada, activa o desactiva una salida cuando recibe una señal infrarroja modulada a 38 kHz.

Para la emisión se han propuesto dos circuitos basados en el integrado 555. El primero de ellos determina un 50% de ciclo de trabajo, es decir, justo la mitad del tiempo está dando un nivel alto y la otra mitad un nivel bajo. El segundo, más completo al incorporar elementos adicionales para controlar la emisión y su propia activación de forma electrónica, utiliza una resistencia de ajuste que permite seleccionar la frecuencia en el rango de los 36 a los 40 kHz.


© Javier de Lope Asiaín 2000-2002
Última modificación
19-Nov-2001

FastCounter by bCentral