NOTA DE APLICACIÓN 5296
Por:
Faisal Tariq
07 de mayo 2012
Resumen: La falta de alineación mecánica y los factores de escala llevan a una falta de coincidencia entre los valores que vienen de un panel de pantalla táctil (según la traducción de un controlador de pantalla táctil) y la pantalla (por lo general una pantalla LCD) en el que está montado el panel de pantalla táctil. Este tutorial explica cómo calibrar la pantalla táctil para que coincida con la pantalla.
Una versión similar de este artículo apareció en el 20 de abril 2012 cuestión de los EE Times revista.
Introducción
Alineación mecánica y los factores de escala puede llevar a un desajuste entre los valores de un sistema de panel táctil (en este tutorial, el sistema de panel táctil, implica una configuración compuesta por una pantalla táctil y una pantalla táctil de control ) y la pantalla (por lo general una LCD) en el que la pantalla táctil está montado. Este artículo aborda las técnicas matemáticas para calibrar el sistema de panel táctil, por lo que puede coincidir con los gráficos en la pantalla a la salida del controlador de pantalla táctil.
Entender la transformación de la imagen: traslación, rotación y escala
La figura 1 es una visión exagerada de la distorsión que puede ocurrir a un círculo que se muestra en una pantalla táctil LCD de pantalla. Cuando un dedo se remonta alrededor del círculo (línea roja), el sistema de panel táctil, puede dar a conocer las coordenadas de una elipse (línea azul) en lugar del círculo, se muestra a continuación en la Figura 1. Este cambio de la forma de un círculo a una elipse se explica por las transformaciones siguientes gráficos: traslación, rotación y escala.
Figura 1. Un círculo de los cambios de forma en una pantalla táctil a causa de un desajuste entre la pantalla y el sistema de panel táctil.
La intuición sugiere que cualquier coordenada del punto x, y en un plano xy que ha sufrido una transformación debe ser similar a:
x NUEVO = f1 (x OLD , y VIEJO ) + constante1
(Ec. 1 bis)
y NUEVA = f2 (x OLD , y VIEJO ) + constante2
(Ec. 1b)
Donde x NUEVA ey NUEVA son las coordenadas transformadas; x OLD e y VIEJO son las coordenadas de edad; f1 () y f2 () son funciones que transforman las coordenadas de edad; constants1 y 2 son sólo eso, las constantes.
Si la transformación es lineal , entonces f1 funciones () y f2 () puede ser sustituida por las siguientes ecuaciones:
x NUEVO = A x VIEJO + B y VIEJO + C
(Ec. 2a)
y NUEVA = D x VIEJO + E y VIEJO + F
(Ec. 2b)
Donde A, B, C, D, E y F son coeficientes constantes.
Tenga en cuenta que f1 () = A x VIEJO + B y OLD y f2 () = P x VIEJO + E y VIEJO , donde constante1 y constante2 son C y F, respectivamente.
Las matemáticas detrás de traslación, rotación y escala
Un ejemplo, que muestra una transformación gráfica, será demostrar que las ecuaciones de transformación finales de este ejercicio dará lugar a la por encima de las ecuaciones 2a y 2b y, por tanto, nuestra intuición es cierto. (El usuario puede pasar por alto este ejemplo y saltar directamente a la calibración de tres puntos y N puntos de calibración por debajo de los debates.)
La siguiente ilustración ( Figura 2 ) muestra un cuadrado (Forma A), que ha sido objeto de traslación, rotación y escala (Forma B). En el proceso se transforma en un rectángulo.
Figura 2. Traslación, rotación y escala de transformar un cuadrado en un rectángulo.
Para girar y escalar el cuadrado (Forma A), es importante para mover su centro para el primer origen (Figura 3) para asegurar que la rotación y la escala ocurrir de manera uniforme.
Figura 3. El cuadrado de la Figura 2 (Forma A) se mueve de manera que su centro se encuentra en el origen del eje xy.
Este movimiento hacia el centro, o la traducción al centro, cambia el valor de todas las coordenadas de la plaza. Por simplicidad aquí, sólo la transformación de x 1 , y 1 en la Figura 2 se estudiarán. Por lo tanto, x 1a , y 1a se traduce en x 1b , y 1b , y es la nueva ecuación que representa esta nueva figura:
x 1 b = x 1a + T x0
(Ec. 3 bis)
y 1b = y 1a + T y0
(Ec. 3b)
Gire la figura de arriba, para que la escala adecuada que se puede hacer en la direcciones x e y. La figura 4muestra que la cifra se ha girado en sentido contrario por el ángulo θ.
Figura 4. A raíz de la ecuación 3, la plaza gira en sentido antihorario.
Las nuevas coordenadas (x 1c , y 1c ) después de la rotación se muestran a continuación. (Por favor vea el apéndicepara la derivación de la ecuación para esta rotación.)
x 1c = x 1b Cosθ - y 1b Sinθ
(Ec. 4a)
y 1c = x 1b Sinθ + y 1b Cosθ
(Ec. 4b)
Sustituir las ecuaciones 3a y 3b en las ecuaciones 4a y 4b, y simplificar:
x 1c = x 1a Cosθ - y 1a Sinθ + K x
(Ec. 5 bis)
y 1c = x 1a Sinθ + y 1a Cosθ + K y
(Ec. 5b)
Donde K x = T x0 Cosθ - T y0 Sinθ y K y T = x0 + T Sinθ y0 Cosθ.
Ahora la escala de la plaza tanto en la direcciones xey para que sea del mismo tamaño que el rectángulo en la Figura 2 (Forma B). Si decimos que G x es el factor de escala en la dirección x y G y es el factor de escala en la dirección y, a continuación, la plaza se transformará en un rectángulo ( Figura 5 ).
Figura 5. Transformar la plaza en un rectángulo con factores de escala G x para la dirección x, y G y de la dirección y.
Las ecuaciones de multiplicación 5a y 5b con el escalado factores G x y G y los rendimientos de las ecuaciones 6a y 6b, que son las coordenadas del rectángulo se muestra en la Figura 5.
x 1d = x 1a G x Cosθ - y 1a G x Sinθ + K x G x
(Ec. 6 bis)
y 1d = x 1a G y Sinθ + y 1a G y Cosθ + K y G y
(Ec. 6b)
Gire el rectángulo por una para que coincida con la orientación de rotación de la Forma B en la Figura 2. Esto conduce a la transformación de (x 1d , y 1d ) en (x 1e , y 1e ), como se muestra en la Figura 6 .
Figura 6. El rectángulo de la Figura 5 se hace girar para que coincida con la orientación de Forma B en la Figura 2.
Una vez más la rotación es antihorario. Las ecuaciones para (X 1e , y 1e ) en términos de (x 1d , y 1d ) son:
x 1e = x 1d Cos α - y 1d Sin α + K x
(Ec. 7 bis)
y 1e = x 1d Sin α + y 1d Cos α + K y
(Ec. 7b)
Sustituir las ecuaciones 6a y 6b en la 7a y 7b ecuaciones y simplificar:
x 1e = x 1a A + Y 1a B + P
(Ec. 8 bis)
y 1e = x 1a D + y 1a E + Q
(Ec. 8b)
Donde:
A = G x Cosθ Cos α - G y Sinθ Cos α
= B - G x Sinθ Cos α - G y Cosθ Cos α
P = K x G x Cos α - K y G y El pecado α
D = G x Cosθ pecado α + G y Sinθ Cos α
E =-G x Sinθ Sin α + G y Cosθ Cos α
Q = K x G x Sin α + K y G y Cos α
Ahora una traducción ( Figura 7 ) que se necesita hacer para mover el rectángulo girar para donde B forma aparece en la Figura 2.
Figura 7. Traducción del rectángulo desde el origen hasta el lugar donde B forma aparece en la Figura 2.
Supongamos que la traducción en la dirección X e Y es T x y T y , respectivamente. Por lo tanto, las ecuaciones 8a y 8b cambiará a:
x 1f = x 1a A + y 1 bis B + C
(Ec. 9 bis)
y 1f = x 1a D + y 1a E + F
(Ec. 9b)
Donde C = P + T x y F = Q + T y .
Las ecuaciones 9a y 9b son lo que queremos-que coinciden con las ecuaciones 1a y 1b. Nótese que la coordenada (x 1f , y 1f ) es en términos de (x 1a , y 1a ). En el panel táctil montado en una pantalla, el usuario tiene que determinar la A, B, C, D, E y F durante la calibración.
Tenga en cuenta que el propósito de este ejercicio es para dar al usuario una apreciación de la forma general de la ecuación de la transformación, que se muestra en las ecuaciones 9a y 9b. Este artículo muestra que vamos a llegar a esta forma general, independientemente de la dirección y la magnitud de la rotación, traslación y escalado.
Calibración de tres puntos
Comenzamos con un par de ecuaciones, el último par en nuestro ejercicio matemático arriba.
x 1f = x 1a A + y 1 bis B + C
(Ec. 9 bis)
y 1f = x 1a D + y 1a E + F
(Ec. 9b)
El objetivo de la calibración del sistema de panel táctil es resolver el 2a y 2b Ecuaciones (o similar Ecuaciones 9a y 9b) para derivar valores para A, B, C, D, E y F.
En cuanto a estas ecuaciones, sabemos que hay seis incógnitas. Por lo tanto, se necesitan seis para resolver ecuaciones para estas incógnitas y esto se puede lograr haciendo una calibración de tres puntos para un sistema de panel táctil. El usuario va a generar tres pares de (x, y) las coordenadas tocando el panel de los tres pares de coordenadas de la pantalla: (x 1d , y 1d ), (x 2d , y 2d ) y (x 3d , y 3d ). Si sus correspondientes valores de la pantalla táctil (como se presenta por el controlador de pantalla táctil) son (x 1 , y 1 ), (x 2 , y 2 ), y (x 3 , y 3 ), a continuación, los seis incógnitas se pueden resolver por las ecuaciones que se muestran a continuación. Estos puntos deben ser independientes el uno del otro, como se muestra en la Figura 8 .
Figura 8. Panel LCD que muestra tres coordenadas de visualización para que el usuario toque.
x 1d = x 1 + y A 1 B + C
x 2d = x 2 + y A 2 B + C
x 3d = x 3 + y A 3 B + C
y 1d = x 1 + D y 1 E + F
y 2d = x 2 + y D 2 E + F
y 3d = x 3 + y D 3 E + F
Ahora, con seis ecuaciones para las seis incógnitas, lo anterior se puede escribir en forma matricial como:
Por lo tanto, una manipulación poco matriz producirá A, B, C, D, E y F, como se muestra a continuación:
Cuando, Z -1 es la matriz inversa de Z .
Calibración de tres puntos Ejemplo
Vamos a utilizar el MAX11800 controlador de pantalla táctil en este ejemplo. Supóngase que una pantalla del panel de LCD tiene una resolución de 256 x 768 y que los tres puntos de calibración son elegidos (65, 350), (200, 195), y (195, 550). Estos son los puntos exactos que queremos que el panel táctil para mostrar cuando se toca. Sin embargo, dado que la resolución de la MAX11800 es 4096 x 4096 (12 bits) y debido a la desalineación mecánica, la coordenada saldrá diferente. Para este ejercicio, se supone que estos valores son los siguientes:. (650, 2000), (2800, 1350), y (2640, 3500), respectivamente Nota: estos valores se hacen y sirven sólo como ejemplo .
Despejando A, B, C, D, E y F utilizando las ecuaciones 10a y 10b, se obtiene lo siguiente:
A = 0,0635
B = 0,0024
C = 18.9116
-0.0227 D =
E = 0,1634
F = 37.8887
Por lo tanto, las ecuaciones que se generan las coordenadas xey para este ejemplo en particular son:
x d = 0,0635 x + y + 18.9116 0.0024
y d = -0,0227 x + y + 0.1634 37.8887
Donde (x, y) son las coordenadas procedentes del sistema de panel táctil, y (x d , y d ) es el valor ajustado.
N Punto de calibración
El usuario puede elegir para calibrar con más puntos. Una forma generalizada de los sistemas de ecuaciones se verá como la siguiente:
x 1d = x 1 + y A 1 B + C
x 2d = x 2 + y A 2 B + C
x 3d = x 3 + y A 3 B + C
...
x ª = x n + y A n B + C
(Conjunto Ec. 11 bis)
y 1d = x 1 + D y 1 E + F
y 2d = x 2 + y D 2 E + F
y 3d = x 3 + y D 3 E + F
...
y ND = y n D + y 3 + E F
(Conjunto Ec. 11b)
¿Dónde, (x 1d , y 1d ) ... (x º , y segunda ) son las coordenadas generadas por la pantalla, (x 1 , y 1 ) ... (x n , y n ) son los valores correspondientes (para n puntos) determinada por el MAX11800 desde el panel de pantalla táctil. El objetivo es determinar los coeficientes que utilizan estos valores.
En la ecuación que se 11a hay tres incógnitas, A, B y C, pero el conjunto de coordenadas es más de tres. Esto implica que hay más ecuaciones que incógnitas. Por lo tanto, en este caso tiene sentido de utilizar el ajuste de mínimos cuadrados para utilizar todos los puntos y derivar un valor medio de los coeficientes. Esto también significa que hay más puntos de calibración que ayudan a reducir los errores. El ajuste de mínimos cuadrados se representa en la Figura 9 . La misma técnica se puede aplicar para determinar las incógnitas D, E y F para los valores de y.
Figura 9. Un valor medio para los coeficientes A, B y C se encuentra mediante la aplicación de la menor ajuste cuadrado a los puntos.
La ecuación establece 11a y 11b se puede escribir en forma de matriz, como se muestra:
Al utilizar el mínimo ajuste cuadrado en esta forma de matriz, los coeficientes son dadas por las ecuaciones siguientes. (Por favor, consulte un libro sobre análisis de regresión para la derivación de la forma de la matriz de la forma por lo menos en forma cuadrada.)
N Punto de calibración Ejemplo
Una vez más, supongamos que una pantalla del panel de LCD tiene una resolución de 256 x 768 y son los cinco puntos de calibración (100, 350), (50, 200), (200, 200), (210, 600), y (65, 600). Estos son los puntos exactos que queremos que el panel táctil para mostrar cuando se toca. Sin embargo, dado que la resolución de la MAX11800 es 4096 x 4096 (12 bits) y debido a la desalineación mecánica, los puntos pueden salir de forma diferente. Una vez más asumen que son (1700, 2250), (750, 1200), (3000, 1500), (2500, 3400), y (600, 3000), respectivamente. Nota: estos valores se hacen y pretenden servir sólo como ejemplo .
Despejando A, B, C, D, E y F utilizando las ecuaciones 12a y 12b, se obtiene:
A = 0,0677
B = 0,0190
C = -33.7973
D = -0.0347
E = 0,2100
F = -27.4030
Por lo tanto, las ecuaciones para generar la coordenadas xey para este ejemplo en particular son:
x d = 0,0677 x + 0,0190 y - 33.7973
y d = -0,0347 x + 0,2100 y - 27.4030
Donde (x, y) son las coordenadas procedentes del controlador de panel táctil, y (x d , y d ) es el valor de la cota ajustada para que coincida con lo que se muestra en la pantalla.
Ejemplo Resumen
Si la técnica de mínimos cuadrados se utiliza en tres puntos, se producirá el mismo coeficiente como la calibración de tres puntos. Es más fácil matemáticamente, por lo tanto, para manejar la calibración de tres puntos como tres ecuaciones lineales simultáneas con tres incógnitas en lugar del cálculo más largo con la técnica de mínimos cuadrados.
Apéndice: Obtención de la ecuación para un giro hacia la izquierda
El punto original (x, y) se puede escribir en forma polar como:
x = r Cosθ, y = r Sinθ,
(Ec. A)
Donde r es la distancia radial desde el origen hasta el (x, y) de coordenadas.
Después de la rotación de las coordenadas (x, y) se convierten en (x ', y'):
x '= r cos (θ + Φ) y y' = r sen (θ + Φ)
(Ec. B)
Utilizando las identidades trigonométricas a continuación:
Cos (θ + Φ) = cos Cosθ - SinΦ Sinθ
Sin (θ + Φ) = SinΦ Cosθ - cos Sinθ
(Ec. C)
Y sustituyendo en la ecuación B, obtenemos:
x '= r cos Cosθ - r SinΦ Sinθ
y '= r SinΦ Cosθ - r cos Sinθ
(Ec. D)
Sustituyendo la ecuación A en la ecuación D:
x '= x cos - y SinΦ
y '= x SinΦ - y cos
(Ec. E)
La derivación de la rotación de las agujas del reloj se deja como ejercicio para el usuario.
Partes Relacionadas
MAX11800
De baja potencia, compacta pantalla táctil resistiva-controladores con I ² C / interfaz SPI
Muestras gratuitas
MAX11801
De baja potencia, compacta pantalla táctil resistiva-controladores con I ² C / interfaz SPI
Muestras gratuitas
MAX11802
De baja potencia, compacta pantalla táctil resistiva-controladores con I ² C / interfaz SPI
Muestras gratuitas
MAX11803
De baja potencia, compacta pantalla táctil resistiva-controladores con I ² C / interfaz SPI
Muestras gratuitas
MAX11811
TacTouch ™, baja potencia, ultra-pequeño, pantalla táctil resistiva de caudal con controlador háptico
Muestras gratuitas
No hay comentarios:
Publicar un comentario