Aplicación con sensor de distancia GP2Y0A21YK

#1
Saludos cordiales a toda la gente del foro.

Soy estudiante de Electrónica en Automatización y, en la materia de Robótica, me encuentro realizando el prototipo de un robot móvil que ha de participar en una carrera, tratando de llegar al final de la pista del perímetro de la universidad evitando los obstáculos que halle.

Para poder realizar el algoritmo, para detectar los obstáculos, he adquirido el sensor de distancia GP2Y0A21YK (un tanto caro, por aquí a $20 c/u).


Utilizo el PIC16F877A y su conversor AD para adaptar la señal que provee el sensor. Se manda señales a dos puentes H para controlar el giro de dos motores a los lados del robot tanto horaria como antihorariamente c/u.

Leyendo la hoja técnica del sensor, he visto la curva de respuesta Voltaje - distancia, y sí he considerado el hecho de que cambia al pasar cierta distancia la relación de la curva cambia de directa a inversamente proporcional.

Sin embargo, los valores que obtengo de voltaje no siguen el mismo patrón en cada experimento que hago, lo que causa que no se pueda responder bien ante un obstáculo, al no definir su distancia siempre en un voltaje dado.


La razón pudiera ser que la luz externa afecta a este sensor (aunque la hoja técnica dice que esta variación es mínima), o también quizás algún otro factor.

Otro problema que tengo es que el robot no para inmediatamente (por la inercia). (Quizás exista un algoritmo de paro mejor que sólo apagar los pines que gobiernan todas las entradas de los puentes H de los motores, cosa que estoy haciendo)

Quizás alguna de las personas pertenecientes al foro ha experimentado ya con este sensor en ambientes externos y pudiera brindarme algún consejo sobre cómo adaptar al sensor para que reaccione mejor en el ambiente. O tal vez alguien sepa darme algún consejo sobre cómo obtener una mejor medición de distancia con este sensor. Asimismo con el tema del paro de los motores.

Si es así, agradezco de antemano la ayuda que me puedan brindar.

Gracias por la atención.
Adjunto el diagrama del PIC a los motores.
 

Adjuntos

#2
tienes que hacer lineal la señal del sensor mediante programacion, y en el manual hay una formula para poder hacerlo. tambien ya que su rango es de 10 a 80cm por debajo de los 10cm entra en un estado de incertidumbre y no sabe que hacer. esta ecuacion es precisamente para que no se pierda por debajo de los 10 cm.
 
#3
hola, bueno lo mio es algo mas sencillo, yo necesito detectar a un automovil; solo la presencia del mismo,con el mismo sensor, ya programe mi pic 16f877 como adc, pero a lo que estoy viendo, el sensor no tendra una respuesta fija cuando no exista algo que detectar, entonces que hago para linealizarlo? o para tener una respuesta clara en la salida del adc?
 
#4
Hola a mi también me gustaría saber como linealizarlo ya que tengo muchos problemas con este sensor: Busque en la Hoja de especificaciones y no encontré nada :S
 
Arriba