jueves, 21 de enero de 2010

Sensor de grado de contacto físico entre dos personas, Modificando un gamepad USB.

Estuve hablando con Juan Manuel Ruetalo sobre su proyecto ENSAMBLECABLETONE.

Aca esta el video que subió del aparato funcionando:
http://www.flickr.com/photos/hablable/4171286736/
Me encantó el concepto!!
Me contaba que eran simplemente cables sacados de los contactos de un órgano CASIO viejo.
Él quería usar el órgano como batería: conectar uno de los cables a una chapa y el otro a una varilla. Entonces al golpear la chapa con la varilla sonaría una nota en el teclado porque se cierra el circuito que antes estaba bajo la tecla, pero trabajando sujetó los dos cables a la vez con el organo prendido y sonó una nota.
Después llamó a un amigo, cada uno sujetó uno de los cables y cuando se tocaron tambien sonó.
Al tener cada persona un cable agarrado, al tocarse, la corriente era suficiente para simular la presión de la tecla y emitir sonido.

Me pareció interesante y le dije: "Que tal si se pudiera sensar el grado de contacto físico"
El grado de resistencia en ohms... estuve probando y un roce leve es de 2 o 3 Megohms y un contacto mas directo como agarrar la mano llega a dar 600 Kohms.
Esto debe depender de la humedad y algun otro factor... pero en todo caso es algo que se puede sensar analogicamente, no es "conectado-desconectado".


Aca hay un video en el que explicamos como funciona el aparatito subido por Ruetalo:


Había, fue borrado.

La idea es meter esa señal para dentro de un PC.
Estuve buscando info sobre ARDUINO... No se que tan bien puede hacer esto que intento... Pero por lo que vi, no hay donde comprar uno aca y el proveedor de Argentina dice "sin stock", asique esa solucion la dejo de lado por ahora.

Lo que si hice fue otro circuit bending!!
Agarre un Gamepad estilo PStation de los que tienen dos pads analogicos en el medio. Le soldé cables a los contactos y use un pote(*) para ver que rango de resistencia usa. En el que tengo aca va de 12 k > X > 24 kohms (de 175 uA a 350 uA). Un rango muy diferente al de infinito > X > 600k que es el del contacto fisico (0-10uA). Necesitaba entonces amplificar la señal 0-10uA, 35 veces, hasta 350uA aprox

* = POTEnciometro, mal llamado. Regula corriente, no mide potencia. Es una resistencia variable con una perilla q uno gira. Lo que tiene adentro la perilla del volumen de una radio.


Primer coneccionado con un pote (*) de 22k > R > 11k


Fuí a Eneka (casa de electrónica) con la info sobre el transistor que necesitaba para que me asesoraran sobre el mas adecuado para el trabajo. Me llevé un BC337 que me salió 5 pei. Conectando un pote(*) a la base ví que ahora el rango de resistencias que regulo es de entre 270kohms <>
Igual poniendo un pote(pote) de 1 Mohm en serie a la base ajusto el rango exactamente.

El gamepad con el BC337 controlado con un pote(*) de 1 Mohm > R


Conecciones en el protoboard.


Surgió un problema, ahora... Dejar la base de un transistor sensible (10 uA lo satura) es un lío de interferencias. El cable conectado asi es una antena q dependiendo de su largo va a amplificar ondas de radio de cierta longitud de onda. Cualquier ruido es grande a esa escala. Veo la cruz del calibrador de joystick rebotar contra los extremos del rango en vez de tener valores estables al agarrar los cables y agarrarse de la mano y quedarnos quietos, por ej. Tal vez conectando un capacitor a tierra en la base que filtre frecuencias altas. Funciona como un amortiguador, no deja rebotar mucho a la señal.

La otra parte del sistema convertiría eso que llega desde el USB como info de "puerto joystick" a algo que se pueda escuchar... o algo que se pueda ver talvez, alguna animación interactiva en la que algun parametro visual use esta señal. Hay un programa que se llama Joy2Mid q convierte a Midi si fuera mas comodo de usar en ese formato. Asi puedo controlar cualquier parametro de un sonido en tiempo real segun la gente se toque.
El programa Fruty Loops permite usar el joystick directamente
No necesito convertir a Midi, lo que veo que no es tan simple, hay mucho que configurar para traducir los dos protocolos. Lo malo es que puedo tener solo dos ejes, y el joystick aguanta hasta cuatro (2 ejes x 2 pads) pero es la unica diferencia.

Actualización 24/1/10:
Problema de ruido solucionado poniendo un capacitor chiquito a tierra en la base del transistor!
El medidor analogico de contacto humano esta vivooooo (???)
Seguí el consejo de Leo Horovitz y puse unos cables de audio q tienen malla y la conecté a la tierra del gamepad, creo que disminuyó un poco el ruido, pero sigue siendo necesarió un capacitor de 0,1 uF para dejar la señal limpia a costa de una leve perdida de sensibilidad.

Actualizacion 28/1/10:
Hice una plaquetita artesanal y me deshice del protoboard.
Hice una pulsera con cosas que tenia en la vuelta a lo MacGyver que resultó funcionarmuy bien.

Es un clip de lata de refrescos con el cable soldado, luego atado con un alambre de cable de red y luego pistola de PVC caliente.
La pulsera tiene elastico y velcro, puede ser sustituida por una tira de camara de bicicleta, por ej.
Es conveniente mojar el contacto al empezar para buena coneccion, sino la señal no llegará al maximo y será menos sensible.
Probando el aparato descubri que el ruido en señal aumenta cuando las personas estan con buena coneccion a tierra, descalzarse es una mala idea.


Tengo que hacer la otra pulsera... O comprar pulseras anti estática.


2 comentarios:

Leonardo dijo...

2 o 3 cosas...
En lugar de Arduino, acá podes conseguir los PIC de Microchip, los vende ENEKA. Tengo algo de experiencia con esos, si necesitas una mano. Es bastante fácil pasar eso a puerto serie o paralelo con un PIC, algunos modelos tienen hasta UART integrada, e incluso controlador USB.

Por otra parte, respecto al ruido, tenes varios puntos a mejorar (al menos respecto a lo que se ve en las fotos). Yo empezaría soldandolo, en lugar de usar un protoboard. Después, para los cables en los que tenés señal, usaría cable blindado (con malla puesta a tierra).
Y si, no es mala idea poner un capacitor para filtrar las frecuencias altas, pero tenés que tener cuidado porque vas a estar filtrando parte de la señal también. Yo que vos empiezo blindando los cables y soldando los componentes, a ver qué pasa.

ZVUHO dijo...

Gracias, Leni!!
No se me habia ocurrido lo de blindar los cables!
Y si.. el capacitorcito filtró el ruido pero hizo mas lenta la reaccion.
Voy a probar con todo soldado y cables de audio :)