Sensor Sharp GP2D02

Introducción

Los IR Sharp GP2DXX son una familia de sensores de infrarrojos para la detección de objetos en un rango amplio, ofreciendo incluso información de la distancia, en el caso de los modelos GP2D02 y GP2D12.

Estos sensores emplean triangulación y un pequeño array CCD lineal para determinar la distancia y/o presencia de objetos en el campo de visión. La idea básica del funcionamiento es la emisión de un pulso de luz infrarroja, que viaje a través del campo de visión y/o tropiece con un objeto, o continue. En caso de que no exista un objeto, la luz nunca es reflectada y la lectura muestra que no hay objeto. Si la luz es reflectada por un objeto, vuelve al detector y crea un triángulo entre el punto de reflexión, el emisor y el detector. Los ángulos de este triángulo están relacionados con la distancia al objeto. La parte de recepción de los sensores son unas lentes de precisión que transmiten la luz reflectada hacia partes del array CCD lineal, basándose en el ángulo del triángulo. El array CCD puede entonces determinar con qué ángulo regresó la luz y de ese modo, se calcula la distancia al objeto.

Es necesario conocer que la salida no es lineal con respecto a la distancia medida:


Relación entre la distancia dada por el sensor (DEC) y la distancia real (L)

Componentes de la familia Sharp GP2DXX

Modelo Output Rango Activación Corriente activo Corriente inactivo
GP2D02 Un byte con el valor, que se debe leer en serie 10-80 cm Lectura mediante reloj externo ~25 mA ~2 mA
GP2D05 Valor Booleano (1 o 0) basado en la distancia umbral Umbral ajustable entre 10-80 cm mediante potenciómetro Lectura mediante reloj externo ~25 mA ~2 mA
GP2D12 Valor analógico, entre 0-3 V, basado en la distancia 10-80 cm Continua, ~38 ms por lectura ~25 mA -
GP2D15 Salida Digital (0 o 1) Ajustado en fábrica a 24 cm Continua, ~38 ms por lectura ~25 mA -

Montaje del Sharp GP2D02

Estos sensores presentan un pequeño conector de 4 cables en los modelos GP2D02 y GP2D05 y un conector de 3 cables en los modelos GP2D12 y GP2D15. Este conector se conoce como JST (Japan Solderless Terminal). Si no es posible conseguirlo (como en nuestro caso) lo mejor es buscar alguna alternativa. Una posible solución es intentar soldar las conexiones por la parte exterior del conector.

Centrándonos en el modelo GP2D02, hay que conectar 4 cables: GND, Vin (entrada de reloj), Vcc y Vout (salida), que podemos identificar de izquierda a derecha, si cogemos el sensor y lo ponemos en horizontal con la cara donde está escrito el modelo hacia nosotros.


Identificar las conexiones en el modelo GP2D02

Una vez identificadas las conexiones, la parte más compleja del montaje se corresponde con la entrada Vin, que debe tratarse como una entrada en colector abierto. Si nuestro microcontrolador dispone de salidas en colector abierto no hay problema, la podemos conectar directamente a la entrada Vin. En caso contrario, es necesario implementar este sistema, para ello hay dos posibles soluciones:

En algunas referencias se recomienda añadir un condensador de 470uF entre Vcc y GND para cubrir las necesidades de corriente del Sharp en el momento del disparo.


Imagen del montaje del Sharp realizado (emplea transistor)

Manejo del Sharp GP2D02

A continuación se muestra la señal que es necesario introducir por la entrada Vin para activar una medida del sensor:


Señal de entrada Vin

La entrada Vin debe estar inicialmente a '1' para mantener el sensor inactivo. En cuanto la señal baja a '0', el sensor comienza la operación de medida. El tiempo de operación de una medida es de 70ms, por lo que es necesario mantener a '0' la señal durante al menos este tiempo. Posteriormente, la señal pasa a '1' durante un tiempo menor de 0.2 ms (recomendado 0.1 ms) e inmediatamente hay que volver a ponerla a '0'. En este flanco de bajada, el sensor pone en la salida Vout el bit más significativo del byte correspondiente a la distancia. Si repetimos esta señal cuadrada 7 veces más, obtenemos el byte con la distancia. El último bit dado es el menos significativo. Una vez recibido el último bit (octavo flanco de bajada), hay que volver a poner la entrada Vin a '1', manteniéndola así hasta necesitar realizar otra nueva medida. Si se quiere realizar medidas consecutivas, es necesario esperar con la entrada Vin a '1' al menos 1,5ms antes de la siguiente medida.

El byte con la distancia medida no se corresponde con la distancia real, sino con el valor del DEC, eje Y de la gráfica anterior. Si obtenemos el valor del eje X de la gráfica correspondiente al valor del DEC medido, obtenemos la distancia real, L. Sin embargo, este sistema no es muy eficiente a la hora de implementarlo en el microcontrolador. Para ello existe otra solución mucho más efectiva. Se trata de implementar la fórmula que relaciona el DEC con L:

La constante C hay que calcularla. Para ello, es necesario situar un obstáculo a una distancia conocida y realizar una medida con el sensor. Con el valor del DEC obtenido y el valor de L que conocemos, despejamos C de la ecuación, y la calculamos. Este valor lo podemos emplear en los posteriores cálculos de L a partir del DEC obtenido en cada medida. Este sistema permite caracterizar el sensor, porque puede darse el caso de que cada sensor tenga su propio valor de C.

Conclusiones

Este modelo en particular es bastante sencillo de manejar una vez se ha desarrollado una subrutina capaz de generar la señal Vin. Los resultados obtenidos son sorprendentes y aunque la precisión de la medida depende de muchos factores: factor de reflexión del objetivo, una buena implementación de la fórmula (el 0.5 que hay que sumar es una "fastidio" cuando no se dispone de una librería en coma flotante), etc. se puede considerar que la calidad del sensor es muy buena.

Para este modelo en cuestión podemos considerar como posible defecto (por decir algo) el tiempo que se tarda en realizar una medida. Como solución si este tiempo es crítico se recomienda el modelo analógico GP2D12, cuyo tiempo de medición es de aproximadamente 38 ms. Además, es mucho más sencillo de manejar debido a que solo es necesario realizar lecturas del conversor A/D de forma continua (pero cuidado, el sensor mide continuamente y por tanto se aumenta el consumo). Y como ventaja del modelo GP2D02 tenemos que solo medimos cuando se necesita, y por tanto, se controla mejor el consumo.

Ya disponemos de un sensor del modelo GP2D12. En cuanto lo probemos prepararemos la documentación.

 

Volver a la página principal