Paso 7: Construcción de la pantalla táctil: encontrar una precisa posición de X Y
Para mejorar la precisión de la detección que vamos a tener que complejizar el sistema mediante la adición de algunos LED en diferentes puertos digitales de la Junta. Como se puede ver en las fotos, ahora tengo 15 LEDs (elegir tantas como quieras) en un palillos de plástico marrón. La distancia entre cada LED es de 5cm por lo que la distancia total es de 70cm.
Ahora, ¿cómo vamos a detectar una posición muy precisa?
1. tenemos que comprobar si el sistema está detectando algo. El método va a ser:
- Enciende LED 1,
- Leer el sensor y verifique si algo está bloqueando la luz
- Si algo está en la manera de almacenar los píxeles sobre calibración en una tabla
- Apague el LED 1
- Enciende LED 2
- Leer el sensor y verifique si algo está bloqueando la luz
Si algo está en la manera de almacenar los píxeles sobre calibración en una tabla
- Apagar LED2
- ... (haga esto para cada LED)
Ahora hemos almacenado todas las áreas detectando algo.
2. calcular la función
Sé que la escuela es a menudo lejos y las matemáticas no parecen muy útil en el momento. Pero ¿recuerdas la función básica Y = AX + B?
Aquí vamos a tener una aplicación plena de este. Vamos a calcular la función de cruce el LED y el centro de la zona del sensor CCD detectada.
Para simplificar, vamos a establecer el origen de XY del gráfico en el primer LED llamado LED 1. Entonces podemos calcular B para cada LED (en mm):
LED 1 = 0, 2 = 50 (distancia de 50mm), de LED LED LED 3 = 100, 4 = 150...
El es un poco más complicado, si Y = AX + B entonces A = (Y - B) /X
Si tomamos la media de los píxeles detectados (en el programa es "(maxi + mini)/2") podemos calcular la altura exacta (Y). También tenemos que transformar los píxeles de dimensión.
(NB_PIXELS-(maxi+mini)/2)*CCD_HEIGHT)/NB_PIXELS+(SCREEN_HEIGHT/2)-(CCD_HEIGHT/2)
y ya que tenemos Y, B y X calcular A:
A = (Y - B) /X
Ahora que tener A y B de todas las líneas que van de cada LED en el centro de la zona no se ven en el sensor. Tenemos la función de la TV1: Y = A1 X + B1 y Y = A2 X + B2
Entonces podemos calcular el cruce de esas funciones:
La coordenada X e Y del cruce será:
X = (B2 - B1) / (A1 - A2)
Y = (((A1*X) + B1) + ((A2*X) + B2)) / 2
X e Y son las coordenadas de la travesía. Si usted calcula todas las funciones de punto de paso y medio les deben tener una buena aproximación de la posición central del objeto. El multipunto no puede trabajar con sólo un promedio, necesita un algoritmo más complejo (en el paso 9).