Convierte un Monitor en una Gigante Tablet Android

Las pantallas táctiles son muy comunes en dispositivos como smartphones, consolas, ordenadores “todo-en-uno” y tablet. También juegan un papel un importante en el diseño de aparatos digitales como los paneles de señalización, Terminales punto de venta (TPV), Dispositivos GPS, teléfonos móviles, videos juegos y libros electrónicos. Android, uno de los principales sistemas operativos para ODROID, cuenta con una interfaz de usuario muy intuitiva diseñada para usarse en pantallas táctiles. Este artículo describe cómo usar ODROID para convertir cualquier monitor o TV en una gigante Tablet Android.

Figure 1 - 42-inch Big Giant Tablet with ODROID-XU
Figura 1 – Una Gigante Tablet de 42 pulgadas con ODROID-XU

Tecnología Infrarroja vs Tecnología Capacitiva

Las pantallas táctiles usan principalmente tecnología por infrarrojos o tecnología capacitiva. Ésta última es la que está más entendida entre los smartphones y tablet pero también es la más cara, especialmente cuando el tamaño de la pantalla supera las 20 pulgadas. Una pantalla capacitiva sólo funciona con el dedo (o con un puntero) y puede presentar dificultades si el monitor no está correctamente montado. Teniendo en cuenta su facilidad de uso y bajo coste, vamos a utilizar la pantalla táctil por infrarrojos para este proyecto.

Figure 2 - Principle of IR (Infrared) touch screen
Figura 2: Principio de la pantalla táctil por IR (Infrarrojos)

Sistema de cuadrícula por Infrarrojos (IR)

Una pantalla táctil por infrarrojos utiliza una matriz LED de infrarrojos X-Y y fotodetectores en los bordes de la pantalla para detectar una interrupción en el patrón LED. Estas líneas LED se cruzan entre sí en vertical y horizontal, que ayuda a los sensores a detectar la ubicación exacta cuando se toca la pantalla. Una principal ventaja del sistema por infrarrojos es que puede detectar cualquier entrada, un dedo, un guante, un lápiz o un bolígrafo. Generalmente se utiliza en dispositivos al aire libre y terminales punto de venta en los que puede presentar cierta dificultad la utilización de una pantalla táctil.

A diferencia de las pantallas táctiles capacitivas, las pantallas táctiles por infrarrojos no requieren ningún patrón en el cristal, lo que mejora la durabilidad y claridad del sistema. Sin embargo, estas pantallas son más sensibles a la suciedad y al polvo. Además, no son aptas para superficies curvas y se pueden activar elementos erróneamente cuando el usuario desliza el dedo por la pantalla.

Figure 3 - Principle of IR (Infrared) Multi-touch screen
Figura 3 - Principio de la pantalla multitáctil por IR (Infrarrojos)

Cómo elegir una pantalla táctil por infrarrojos

Podemos montar nuestra propia pantalla táctil siguiendo cualquier tutorial que localicemos en internet, pero no es tarea fácil ya que el algoritmo multi-táctil es bastante complejo al igual que alinear correctamente el emisor/receptor IR, tal y como se muestra en la Figura 4.

A la hora de comprar una pantalla táctil por inflarrojos nos asegurarnos de su compatibilidad con Android. Debemos tener en cuenta los siguientes requisitos:

1) ¿Aparece la pantalla táctil en la lista de compatibilidad multitáctil de Linux?

http://lii-enac.fr/en/architecture/linux-input/multitouch-devices.html

En caso afirmativo, activar la pantalla táctil será relativamente fácil.

2) ¿La pantalla táctil es compatible con Windows 8?

En caso afirmativo, será necesario hacer algunas modificaciones en el Kernel y en el archivo de configuración de entrada.

3) ¿La pantalla dispone de un controlador específico para Android suministrado por el fabricante?

En caso afirmativo, debemos seguir sus instrucciones

En el mercado coreano y chino no hay disponibles pantallas compatibles con Linux. Algunos fabricantes de china ofrecen drivers específicos que en la práctica no son muy útiles. La mejor alternativa es hacerse con una pantalla táctil que admita Windows 8 y el estándar Plug & Play.

Es muy importante comprobar si la pantalla táctil es realmente compatible con Windows 8. Los dispositivos Plug & Play no requieren de un driver independiente para ser instalado en un PC con Windows. Si la pantalla táctil necesita un driver específico, nos está indicando que no es compatible al 100% con Windows 8 y posiblemente presentará problemas con Android.

Figure 4 - 42” touch screen connected to an ODROID-XU
Figura 4 - Pantalla táctil de 42 puladas conectada a un ODROID-XU

Conectar la pantalla táctil a Android

Debemos seguir cuatro pasos para usar una pantalla táctil con Android:

Conseguir el número de identificación (ID) del proveedor y del producto desde la interfaz USB de la pantalla táctil

Modificar los archivos hid-ids.h y hidmultitouch.c, localizados en el directorio kernel/drivers/hid/

Compilar el Kernel con la opción multi-táctil habilitada, y trasladar la imagen del kernel al ODROID

Crear un archivo IDC (Configuración del dispositivo de entrada).

Paso 1: Consultar valores VID y PID

Conecta la pantalla táctil a cualquier PC con Linux. A continuación, localiza el valor VID y PID escribiendo “lsusb” en el terminal tal y como muestra la figura 5

Figure 5 - Reading the VID and PID of the USB touch screen using a Linux PC
Figura 5 - Leyendo el VID y el PID de la pantalla táctil utilizando un PC con Linux

Para determinar qué entrada está asociada a la pantalla táctil, debemos comparar la lista de dispositivos antes y después conectar la pantalla. La nueva entrada que aparezca corresponderá al dispositivo de pantalla táctil.

Durante nuestro proyecto, cuando conectamos la pantalla táctil de 23 pulgadas, aparecido la siguiente entrada VID:03FC, PID:05D8 que corresponde a una pantalla táctil fabricada por Elitegroup Computer Systems. Con una pantalla táctil de 42 pulgadas aparece la entrada VID:1870, PID:0119 que corresponde a una pantalla táctil de Nexio Co., Ltd. Cada pantalla conectada mostrará diferente información del fabricante y diferentes valores VID Y PID.

Paso 2: Modificar archivos hid-ids.h y hidmultitouch.c

Tras descargar el correspondiente código fuente del kernel de Android desde dn.odroid.com, entra en el directorio kernels/drivers/hid/, abre el archivo hid-ids.h y añade los valores VID y el PID al final del mismo.

Figure 6 - Example PID and VID values added to kernels/drivers/hid/hid-ids.h.
Figura 6 – Ejemplo de valores PID y VID añadidos a kernels/drivers/hid/hid-ids.h.

Además, añada el nuevo ID al archivo hidmultitouch.c que debe escribirse con una estructura especifica hid_device_id mt_devices.

Figure 7 - Example of adding the touch screen ID to kernels/drivers/hid/hid-multitouch.c
Figura 7 - Añadiendo el ID de la pantalla táctil a kernels/drivers/hid/hid-multitouch.c

Paso 3: Compilar el kernel con la opción HID-MULTITOUCH activada

Escribe "make menuconfig" para configurar el kernel, dirígete a Device Drivers > HID Devices > Special HID drivers > HID Multitouch panels y seleccionarlo para activar el driver (*), tal y como muestra la figura 8

Figure 8 - Configuring the touch screen with an embedded driver in the kernel configuration.
Figura 8 - Configurando la pantalla táctil con el driver activado en la configuración del Kernel

Selecciona las dos opciones que aparece a continuación ya que es un driver integrado, indicadas con un asterisco (*)

Device Drivers -> Input device support -> touch screens -> USB touch screen Driver

Device Drivers -> Input device support -> touch screens -> GeneralTouch touch screen device support

Figure 9 - Configuring the touch screen with an embedded driver in the kernel configuration.
Figura 9 - Configurando la pantalla táctil con driver integrado en la configuración del Kernel

Guarda la configuración del kernel y compílalo para hacer una zImage .

Traslada la zImage a tu ODROID a través del protocolo fastboot en el u-boot .

Paso 4: Crear un archivo IDC (Configuración del dispositivo de entrada)

Si no se crea correctamente el archivo IDC, la resolución de la pantalla táctil no coincidirá con la resolución HDMI

El archivo IDC es un archivo de texto plano en formato Unix.

Aquí tienes un ejemplo. Puedes usar este archivo tal cual.

touch.deviceType = touchscreen
touch.orientationAware = 1
device.internal = 1

keyboard.layout = qwerty
keyboard.characterMap = qwerty2
keyboard.orientationAware = 1
keyboard.builtIn = 1cursor.mode = navigation
cursor.orientationAware = 1
El nombre del archivo debe ser Vendor_xxxx_Product_yyyy.idc (xxxx: ID Proveedor, yyyy: ID Dispositvo). Yo he creado dos archivos para Elitegroup y Nexio. El nombre del archivo es sensible a las mayúsculas.

Vendor_03fc_Product_05d8.idc y Vendor_1870_Product_0119.idc

Copia los archivos IDC a tu ODROID utilizando los siguientes comandos:

adb remount
adb push Vendor_03fc_Product_05d8.idc /system/usr/idx/.
adb push Vendor_1870_Product_0119.idc /system/usr/idc/.
adb reboot

Cómo fijar el panel táctil de 42 pulgadas a la pantalla de TV .

Prepara la pantalla táctil

Figure 10 - Preparing the touch screen
Figura 10 – Preparando la pantalla táctil

Coloca cinta de doble cara sobre el marco de la pantalla táctil

Figure 11 - Attaching the double-sided tape to the monitor
Figura 11 - Colocando la cinta de doble cara en el monitor

Acopla con cuidado la pantalla táctil al televisor y alinéala.

Figure 12 - Aligning the touch screen with the monitor
Figura 12 – Alineado la panta táctil con el monitor

Prueba la pantalla táctil. Nuestra pantalla llego a detectar hasta 6 puntos.

 Figure 13 - Testing the touch screen
Figura 13 – Probando la pantalla táctil

Cómo fijar el panel táctil de 23 pulgadas a la pantalla del monitor.

Esta pequeña pantalla de 23” viene con 4 correas de velcro que facilitan bastante su montaje.

 Figure 14 - 23-inch touch screen panel with velcro belts
Figura 14 - Panel táctil de 23 pulgadas con correas de velcro

Figure 15 - Playing Fruit Ninja on the 23-inch touch screen with my finger.
Figura 15 – Jugando a Fruit Ninja en la pantalla táctil de 23” con ayuda de mi dedo

Conclusión

Además de su uso personal y como plataforma de juegos, ODROID es ideal como dispositivo informático para quioscos, señalización digital e investigación de interfaces entre otras aplicaciones, gracias a su alto potencial y bajo coste. Al tratarse de una plataforma abierta permite modificaciones como esta pantalla táctil.

Puedes ver los resultados de este proyecto en http://youtu.be/b8_cV_NeWQ8, y para tener más acción Minecraft con la gigante tablet Android, visita http://www.youtube.com/watch?v=HDsnuxchxtU.

Be the first to comment

Leave a Reply