viernes, 23 de abril de 2010

Pantalla multitáctil en acción

Bueno, ayer no tenía sueño, y como hoy no tenía que madrugar, aproveché que por fin tengo materiales y software, y preparé el primer experimento multitáctil en casa que funcionó a la perfección.

Ya hice una introducción sobre cómo funcionan este tipo de pantallas en la Introducción a las pantallas táctiles multipunto y también expliqué de modo resumido cómo funcionan las pantallas por plano láser.

Algunas cuestiones las volveré a repetir aquí para que queden claras.

La idea del invento es bastante sencilla, básicamente consiste en convertir una pantalla normal, o una superficie de proyección en una pantalla táctil capaz de reconocer varias pulsaciones a la vez. El iPhone, por ejemplo, utiliza tecnología capacitativa para detectar las pulsaciones y poder hacer esos gestos tan simpáticos para ampliar y reducir las fotografías.
La cuestión es que no tenemos la capacidad que tiene apple para fabricar ese tipo de pantallas y colocárselas a nuestra tele del salón o a la pantalla del ordenador.

Sin embargo, utilizando infrarrojos sí que podemos lograr esto con un equipo de lo más asequible.

La idea es relativamente simple. Utilizaremos una webcam apuntando a la pantalla (o a la superficie donde vayamos a tocar con los dedos). Esta webcam estará preparada para ver únicamente luz infrarroja. La luz infrarroja no puede verse a simple vista, de modo que todo lo que hagamos con ella es completamente invisible.
Por ejemplo, cuando vamos al cine a ver una película en 3D, nadie ve los flashes de luz infrarroja que le dicen a las gafas que tienen que cerrar uno u otro ojo. Tampoco vemos los pulsos de luz que emiten los mandos a distancia cuando cambiamos de canal en la televisión, ni vemos la línea de luz que detecta si estamos en la puerta del ascensor para que esta no se cierre y nos pille en medio.

Una vez que tenemos la cámara preparada, tenemos que conseguir que nuestros dedos brillen cuando toquemos la pantalla. La webcam registrará esos puntos luminosos, y después sólo tenemos que usarlos para controlar nuestros programas.

Hay varios sistemas para hacer que los dedos brillen al tocar la pantalla, pero el que utilicé yo es el denominado Plano láser.
Seguro que ya habéis visto más de un láser, sobre todo de los rojos. Emiten una luz muy concentrada (normalmente en un punto) y tremendamente potente.
A un láser se le puede añadir una lente que hace que en vez de dibujar un punto dibuje una línea.
Seguro que habéis visto en alguna película escenas parecidas, cuando llega algún tipo de robot y escanea un objeto, pasando una línea de luz por él. La idea es parecida.
El láser con la lente crea un plano de luz que no se ve, a no ser que algo lo atraviese, como por ejemplo un dedo.

Así que coloqué un láser infrarrojo con su lente en una esquina de la televisión, intentando que el plano de luz quedase paralelo al de la pantalla.

Este es el láser pegado en la televisión:

Es un láser infrarrojo de 780 nm (esto viene siendo como el tono de infrarrojo... como si fuese un infrarrojo clarito... no sé si me explico) Lo compré en eBay por unos 7 dólares. En la misma tienda compré también la lente para que dibuje una línea.

Lo alimenté con una fuente de alimentación de ordenador modificada que preparé hace poco para este tipo de experimentos.


La cámara que utilicé fue una PS3-Eye. La conseguí por poco más de 20€ y tiene unas características muy buenas. Las más importantes para este experimento es que tiene una respuesta muy rápida (se puede conseguir que grabe a 60 fotogramas por segundo) y tiene una sensibilidad muy buena a los infrarrojos.
El caso es que en general no interesa que las webcams capten infrarrojos, de modo que estas cámaras muchas veces llevan un filtro interno que bloquea ese tipo de luz.
Lo primero que tuve que hacer para adaptar la cámara fue quitar ese filtro, a base de cutter y algo de fuerza haciendo palanca.
Una vez eliminado el filtro la cámara ya capta infrarrojos a la perfección, pero como el filtro forma parte de la óptica, la cámara queda desenfocada sin él.
Con un poco de bricolaje conseguí enfocarla.
El siguiente paso es que la cámara capte únicamente los infrarrojos, y no la luz normal.
Para eso me compré un filtro que bloquea toda la luz visible por debajo de 720 nm.

El caso es que al hacer pruebas me di cuenta de que hay luz infrarroja por todos lados... el sol emite cantidad de luz infrarroja, y las lámparas halógenas... incluso la televisión emite infrarrojos. Eso hace que la webcam capte mucha luz, y en comparación los dedos no brillan tanto.
Lo que tendría que haber hecho es comprar un filtro que únicamente deja pasar un rango determinado de infrarrojos, para que además de bloquear la luz visible, me bloquease la luz infrarroja que no me interesa.

Aquí tenéis la cámara con el filtro:


Aunque el filtro no era el más adecuado para la tarea, sí que fue suficiente como para que funcionase todo.


Bueno, vamos ya con lo interesante.
Después de montar todo el tinglado, esto es lo que se podía ver por la cámara:



Como podéis ver, los dedos brillan cuando los acerco a la pantalla, y brillan bastante, por que el láser que utilicé tiene bastante potencia (como cinco veces más potente que uno normal de los chinos)
También podéis ver que el vídeo no tiene color. Eso es por que el filtro bloquea toda la luz visible, y los colores entran dentro de la luz visible.
La pantalla de la televisión se ve de un color claro por que está emitiendo infrarrojos. La imagen que emite no se ve por que es bloqueada por el filtro.

Vale, ahora ya tenemos nuestro modelo básico. Una pantalla, una webcam, y un sistema que hace que los dedos brillen cuando tocan la pantalla.

Ahora llega la parte del software. Necesitamos un programa que sea capaz de ver la imagen de la webcam y reconocer esos puntos luminosos. la gente del Natural User Interface Group
(NUIGroup) ya se han ocupado de eso, creando el Community Core Vision (CCV).

Este programa utiliza el vídeo que toma de la WebCam, le aplica una serie de filtros para tener una imagen clara de los puntos luminosos, los identifica, y envía los datos a nuestro programa.

Esta es la pinta que tiene el CCV:


No se aprecia demasiado bien por que estoy metiendo yo las manos por en medio, pero lo voy explicando.
En el recuadro superior izquierdo se ve lo que capta la WebCam, tal cual, con unas cuantas señalizaciones de los puntos que es capaz de reconocer.
En la parte inferior se ven varias imágenes pequeñas, que nos enseñan cómo va quedando la imagen al aplicarle los filtros.
El primero de los filtros quita el fondo, para quedarse únicamente con las pulsaciones. Así no tenemos que preocuparnos demasiado por la luz ambiente.
El resto de los filtros limpian la imagen, eliminan todo lo que no sea un punto brillante y lo amplifican para que se vea claramente.

Una vez que el CCV ya reconoce pulsaciones, tenemos que calibrarlo.
La cuestión es bastante tonta. La webcam no tiene por qué estar perfectamente centrada y orientada con respecto a la pantalla, y se ve en la imagen que no lo está. Para que el programa pueda traducir correctamente las pulsaciones a coordenadas, tenemos que darle unos cuantos puntos, para que sea capaz de identificar después en qué parte de la pantalla estamos pulsando.

En mi opinión lo mínimo para calibrar decentemente una pantalla son 3x3 puntos.
El programa te marca los puntos, y tienes que pulsar en ellos hasta que el círculo se vuelve blanco.
Una vez calibrado ya es capaz de reconocer perfectamente dónde pulsas, como se puede ver en este vídeo, que hice al terminar de calibrar.


Una vez llegados a este punto lo siguiente ya es probar a ver qué tal funciona. Así que puse a funcionar el programa de fotografías y.....




No funciona por que me olvidé de realizar un paso importante: indicarle al CCV cómo tiene que enviar los datos de las pulsaciones.

Una vez configurado el método de envío (que dependerá del programa que vayáis a utilizar) la cosa ya es muy distinta.

Este es un programa para pintar con los dedos:


Y aquí tenéis el programa de fotografías funcionando:


Todos estos programas vienen como ejemplos con el CCV, y por eso son estupendos para hacer las pruebas o dejar boquiabiertas a las visitas sin tener que matarnos mucho, pero la idea será crear nuestros propios programas aprovechando esta tecnología.

Bueno, espero que os sirva toda esta información y que disfrutéis con las pantallas multitáctiles tanto como yo... aunque ahora voy a tener que limpiar la pantalla de la tele.

martes, 6 de abril de 2010

Barco Putt-Putt

Ya hace bastante que quería poner un post sobre este tipo de barcos, pero no acabo de encontrar los materiales que buscaba para construir uno.
La cuestión es que encontré uno ya hecho a la venta, lo compré, y os pongo aquí unas fotillos y un vídeo para que veáis cómo son estos barcos y cómo funcionan.

Más adelante, cuando fabrique uno yo mismo, sacaré fotos y pondré otra entrada con el tutorial.


Lo primero es hacerse una idea de cómo son estos barcos. Si ya habéis visto la película Ponyo en el acantilado ya os sonarán los barcos que funcionan con una vela (de las que tienen cera y una mecha).
A quién no haya visto la película.... ya está tardando, que es una película estupenda que debería ver todo el mundo.
Os pongo aquí un vídeo de Youtube en el que se ve el barco y cómo funciona (en italiano... lo siento, no encontré otra cosa, y no me apetece ponerme ahora a copiar la escena de mi DVD)
Vídeo del barco en la película.


Habrá gente que no conozca estos barcos, y que al ver la película pensará "Es un barco mágico" o "Esto queda muy bonito en la película, pero seguro que esos barcos no funcionan". Bueno, pues el caso es que sí que existen esos barcos, y sí que funcionan.

Este fue el barco que yo me compré:


Por la parte de abajo tiene esta pinta:


Si le quitamos la "tapa" se puede ver el mecanismo:


Y esta es la fuente de calor que utiliza:


La única diferencia con el barco de Ponyo es que el mío no funciona con una vela de cera, si no con una de aceite. Con un hilo de algodón y aceite de cocina puedo rellenar el cacito de la vela, y no tengo que preocuparme de encontrar velas a la medida del barco.
En el caso de fabricar uno yo mismo, seguramente lo haré con un tamaño que me permita utilizar las velitas pequeñas que venden en las tiendas, a pesar de lo interesantes que me parecen las velas de aceite, mucho más fáciles de hacer en casa que las de cera (que tampoco es que sean muy difíciles)

Tenía unas ganas locas de probarlo, y de sacarle un vídeo para el post, así que llené de agua el lavabo y lo puse a dar unas vueltas.
Aquí tenéis el vídeo:



Bueno, y ahora vamos a ver cómo funciona, y por qué.

El motor del barco es tremendamente sencillo, consta de la vela, dos tubos y un... optaré por llamarlo "hervidor", aunque no sé si será lo más adecuado.

Para que el barco funcione hay que meter agua por los tubos hasta que tanto los tubos como el hervidor estén llenos. Después se apoya el barco en el agua, de modo que el final de los tubos quede sumergido, y que de ese modo no cojan aire. Una vez cebado el barco sólo hay que encender la vela y ponerla debajo del hervidor.
En unos segundos empieza a moverse el barco.

¿Cómo y por qué funciona?
El mecanismo de este barco es un motor de dos tiempos. Con un funcionamiento muy sencillo basado en calor y presión.
El hervidor está lleno de agua, y se le aplica la vela, que es una fuente de calor. El agua que tiene dentro se calienta y acaba convirtiéndose en vapor de agua.
El vapor de agua ocupa mucho más que el agua, de modo que el hervidor se hincha, haciendo un primer "pop" al combarse la tapa hacia afuera.
Al convertirse el agua en vapor, ocupando mucho más volumen, expulsa agua por los tubos.
Es como si tenéis una manguera llena de agua, y sopláis por un extremo. Por el otro extremo sale el agua que tenía la manguera.
El agua que sale a presión por los tubos impulsa al barco hacia adelante.
Al expulsar el agua, la presión en el hervidor disminuye, y con menos presión, el vapor vuelve a convertirse en agua, ocupando mucho menos. Aquí es cuando se oye el segundo "pop", al combarse hacia adentro la tapa del hervidor.
Como resultado de la conversión de vapor en agua, y la disminución de volumen, se crea una succión, que recoge agua de fuera de nuevo hacia los tubos.
Al absorber agua el barco se frena un poco, pero se frena menos de lo que se acelera al expulsarla, así que en suma, el barco avanza.

Y una vez llegados aquí, se vuelve a repetir el proceso. En cada vuelta se oyen dos "pops" de la tapa del hervidor, y bueno, escuchando el vídeo os podéis hacer una idea de lo rápido que pasa todo esto.


Muy pronto (espero) las instrucciones para fabricar uno de estos barcos en casa.

sábado, 3 de abril de 2010

Fuente de alimentación de laboratorio

Pues resulta que últimamente estoy haciendo experimentos con aparatos electrónicos, y cada dos por tres me encuentro con el problema de cómo darles corriente.

Muchos de estos aparatos y componentes funcionan a 5V, con lo que puedo usar enchufes USB o similares, pero ahora me estoy encontrando con focos que necesitan 12V, y láseres que con más de 3.3V se fríen, y no tengo adaptadores para sacar todos esos voltajes. Me planteé usar cargadores de móviles y similares, pero a veces dan corriente alterna, y en otras ocasiones no tienen demasiada potencia, y si intentas enchufar un par de motores, acabas quemándolos.


Lo ideal para estas cosas es una fuente de laboratorio, que tienen bastante potencia y son regulables, de modo que escoges qué voltaje tiene entre los bornes.
Pero esas fuentes son grandes, caras, y no tengo muy claro dónde conseguirlas.
Sin embargo, tengo por aquí tiradas algunas fuentes de alimentación de ordenadores viejos, que dan varios voltajes distintos, entre ellos, los 5V, 12V y 3.3V que necesito.

Así que decidí hacer un poco de bricolaje con una fuente ATX que tenía por ahí tirada para usarla en mis experimentos.
No me acordé de sacar fotos durante el proceso, pero bueno, tampoco tiene mucha importancia, porque se trata simplemente de cortar y empalmar cables, y hacer unos cuantos agujeros.

Antes de nada, enseñaros cómo quedó:
Voy a explicar en plan sencillo los pasos que hay que seguir.

En primer lugar necesitamos una fuente de alimentación de un ordenador. Esta es una fuente ATX. Si no tenéis ninguna tirada por casa, en tiendas de informática como PCBox salen bastante baratas.
Estas fuentes alimentan los discos duros, lectores de DVDs, puertos USB, disqueteras, etc, además de a la propia placa base del ordenador. Para hacer esto tienen la capacidad de generar distintos voltajes. Se da la casualidad de que en la placa suelen estar marcados, además de que se utiliza un código de color para identificarlos, de modo que con un poco de atención es difícil equivocarse.

Antes de nada un aviso. No trabajéis nunca con la fuente enchufada, porque es muy fácil causar un cortocircuito y estropear la fuente, o tocar donde no se debe, y morir electrocutado. Así que siempre que vayáis a tocar los interiores de la fuente aseguraos de que está desenchufada antes.

Lo primero que hay que hacer es conectar el cable verde (sólo hay uno, no tiene pérdida) a uno negro. Es el cable de encendido, de modo que para que la fuente se ponga a funcionar hay que conectar primero ese.

Lo siguiente es identificar los cables que nos interesan. Cada color corresponde con un voltaje, y todos los cables del mismo color están conectados entre sí.
Yo corté todos los cables dejando uno de cada color más largo, que fue el que utilicé para los enchufes.

Los colores son los siguientes:
Negro - 0V
Amarillo - +12V
Azul - -12V
Naranja - +3.3V
Rojo - +5V
Blanco - -5V

El resto de los colores no los vamos a utilizar.

Como ya dije, corté todos los cables menos uno de cada color (del negro dejé dos, uno para el enchufe, y otro para empalmar con el verde)
Uní el cable verde con uno negro.
Utilicé cola térmica para que no hubiese posibilidad de que los cables cortados que no se van a utilizar hiciesen contacto con ningún otro cable, ni con la carcasa metálica.
Hice unos cuantos agujeros en la carcasa.
Coloqué los enchufes en la carcasa.
Uní los cables a los enchufes, teniendo cuidado de que no tocasen en la carcasa metálica.
Cerré todo, y listo.

Es una modificación muy sencilla, y que permite tener una fuente de corriente con variedad de voltajes sin necesidad de gastar mucho.