PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I)...

21
PIC 18F45XX El sensor de distancias (GP2D120)

Transcript of PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I)...

Page 1: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

PIC 18F45XX

El sensor de distancias(GP2D120)

Page 2: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

1. Características generales

➔ Salida analógica (Vo)

➔ Alimentación a +5v

➔ Rango efectivo de medida de 4 a 40 cm

➔ Tiempo típico de respuesta 39ms

➔ Retardo típico de comienzo 44ms

➔ Consumo medio 33mA

Page 3: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

2. Diagrama de bloques del sensor

➔ El sensor calcula la distancia midiendo el ángulo de reflexión

recibido

Page 4: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

3. Curva de respuestaGP2D120

:Observaciones➔ La respuesta NO es lineal.

➔ Es necesario utilizar algún método de interpolación.

➔ El sensor NO da lecturas fiables por debajo de 4cm.

Page 5: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

4. Métodos de interpolación

➔ Experimental. (Realizando lecturas de tensión en función de la distancia).

➔ Interpolación lineal. Método de la recta punto pendiente.

➔ Interpolación lineal. Método de los mínimos cuadrados.

➔ Interpolación polinómica. (Polinomio de Lagrange)

Page 6: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

5. Interpolación experimental (no recomendable)

➔ Realizar experimentalmente lecturas de tensión del sensor colocando un objeto a distancias conocidas.

➔ Cuantas más lecturas realicemos mejores resultados obtendremos.

➔ Guardar los resultados en dos tablas. float V[n]={0.3 ,0.4 ,0.5 ,…… }; // Valores de tensión float D[n]={40.0 ,30.0,25.8,…… }; // Valores de distancia

➔ En tiempo de ejecución para cada lectura de tensión del sensor consultaremos el valor más próximo almacenado en la tabla V[n] y su valor de distancia asociado en D[n].

Page 7: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

6. Interpolación lineal. Método de la recta punto-pendiente (I)

➔ El método de la interpolación lineal consiste en tomar dos puntos de la curva de respuesta (tensión,distancia). (x1,y2) y (x2,y2)

➔ Con dos puntos se puede calcular matemáticamente la ecuación de la recta que pasa por dichos puntos:

(y-y1)=m(x-x1) donde m=(y2-y1)/(x2-x1)

➔ Al resolver la ecuación tendremos la función f(x) de una recta que nos devolverá el valor de la distancia en función del valor de tensión leído del sensor.

➔ Si tomamos N medidas podemos calcular las ecuaciones de N-1 rectas y así sustituir la curva NO lineal por un conjunto de rectas conocidas.

Page 8: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

6. Interpolación lineal. Método de la recta punto-pendiente (II)

➔ Tomando 7 puntos vamos a convertir la curva de respuesta no lineal del conversor en 6 rectas.

Nota: Vamos a considerar como eje X el valor de tensión y como eje Y el valor de distancia para sacar las ecuaciones y=f(x), es decir, distancia=f(tensión);

Page 9: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

➔ Aplicando la ecuación de la recta cada dos puntos obtenemos:

R1) y= 12 – 3xR2) y= 16 – 5xR3) y= 21 – 8.57xR4) y= 32.32 – 19.35xR5) y= 41.53 – 31.81xR6) y= 60.45 – 68.18x

Donde:y= Distancia en cmx= Tensión Vo en voltios del sensor GP2D120

6. Interpolación lineal. Método de la recta punto-pendiente (III)

Page 10: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

➔ Ahora ya solo queda programar las ecuaciones en C18:

voltios=(5.0*valor_adc)/1023.0;if(voltios <=3.00 && voltios >2.00) dist=12.00-3.00*voltios; // R1else if(voltios <=2.00 && voltios >1.40) dist=16.00-5.00*voltios; // R2else if(voltios <=1.40 && voltios >1.05) dist=21.00-8.57*voltios; // R3else if(voltios <=1.05 && voltios >0.74) dist=32.32-19.35*voltios; // R4else if(voltios <=0.74 && voltios >0.52) dist=41.53-31.81*voltios; // R5else if(voltios <=0.52 && voltios >0.30) dist=60.45-68.18*voltios; // R6else dist=88; // Fuera de rango

➔ Una vez calculada la distancia solo queda mostrar el valor en el lcd.gotoxy(0,0);escribe_cadena(“Distancia: “);escribe_float(dist);escribe_cadena(“cm“);

6. Interpolación lineal. Método de la recta punto-pendiente (IV)

Page 11: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

7. Interpolación lineal. Método de los mínimos cuadrados (I)

Page 12: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

7. Interpolación lineal. Método de los mínimos cuadrados (II)

➔ Se trata de encontrar la ecuación de la recta que pase, lo más cerca posible, de todos los puntos.

Page 13: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

7. Interpolación lineal. Método de los mínimos cuadrados (III)

➔ Completamos la tabla con los valores tomados de forma experimental

Page 14: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

7. Interpolación lineal. Método de los mínimos cuadrados (IV)

➔ La recta buscada es:

Y=0.935x + 0.36

En nuestro caso:Podríamos fijar grupos de tres o cuatro puntos de la gráfica del sensor y calcular las ecuaciones de las rectas por este método

Page 15: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

8. Interpolación polinómica. Polinomio de Lagrange

➔ Base matemática

Dados N puntos del plano siempre existirá un polinomio de orden N-1 que pase por dichos puntos.

➔ Para dos puntos: p1 y p2 existe un polinomio de grado 1 (recta) que pasa por los dos. y=ax+b

➔ Para tres puntos: p1,p2 y p3 existe un polinomio de grado 2 (parábola) que pasa por los tres. y=ax2+bx+c

➔ El método consiste en plantear las N ecuaciones con N incognitas para calcular los valores de a,b,c,…

➔ El método consigue polinomios que “suavizan” las curvas entre los puntos pero suelen ser inestables según vamos subiendo de orden y el cálculo se puede complicar en exceso.

Mas info en: http://www.iafe.uba.ar/e2e/metodosnumericos/lagrange/lagrange.html

Page 16: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

9. Simulación en Proteus

(1) Elegir el componente

(2) Editarlo para cambiar ajustes

(3) Conectar a una entrada analógica

Page 17: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

10. Programa de ejemplo

Diseñar un programa que configure como entrada analógica el pin RA0 y muestre en el lcd el valor leído del sensor GP2D120 en voltios y la distancia equivalente.

Page 18: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

Solución en C18 (l)

Page 19: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

Solución en C18 (II)

Page 20: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

Solución en C18 (III)

Page 21: PIC 18F45XX - IES LUIS DE LUCENA...6. Interpolación lineal. Método de la recta punto-pendiente (I) El método de la interpolación lineal consiste en tomar dos puntos de la curva

Simulación en Proteus