Ardutouch – Touchpad Synaptics T1004

18 comments Escrito el 13 de febrero del 2011 por
Categorias: Arduino, Library, Sample Code

ardutouch1Lectura del touchpad a través de arduino es muy fácil, por que la salida de muchos touchpad es como la de un ratón con conexión ps2 (+5V, GND, data y clock) y esos datos los puede leer nuestra placa arduino con la libreria ps2.h

A continuación les pongo unas imágenes de como he conectado mi touchpad de Synaptics con chip T1004 y un vídeo con un ejemplo de una LED en una salida PWM controlada por el touchpad. Pero sus aplicaciones pueden ser infinitas no solo controlar una LED pueden controlar un servo, etc...

Conexiones del chip Synaptics T1004
  
Vídeo

 

Código de ejemplo
#include <ps2.h>

PS2 mouse(6, 5); //Pin 5 is the mouse data & pin 6 is the clock.

void mouse_init()
{
  mouse.write(0xff);  // reset
  mouse.read();  // ack byte
  mouse.read();  // blank */
  mouse.read();  // blank */
  mouse.write(0xf0);  // remote mode
  mouse.read();  // ack
  delayMicroseconds(100);
}

int brightness = 0; void setup() { Serial.begin(9600); mouse_init(); } void loop() { char mstat; char mx; char my; /* get a reading from the mouse */ mouse.write(0xeb); // give me data! mouse.read(); // ignore ack mstat = mouse.read(); mx = mouse.read(); my = mouse.read(); /* send the data back up */ Serial.print(mstat, BIN); Serial.print("\tX="); Serial.print(mx, DEC); Serial.print("\tY="); Serial.print(my, DEC); Serial.println(); // Control del LED analogWrite(9, brightness); brightness = brightness + my + mx; if (brightness < 0) {brightness = 0 ;} if (brightness > 255) { brightness = 255 ;} }
Library
ps2.zip (71 KB)

Tags: , , , , ,

18 comments “Ardutouch – Touchpad Synaptics T1004”

It’s a nice blog you have over here! It’s very usefull information for me and I just want to thank you for that! If you post more threads as this one, I’ll follow your blog active!

I gotta bookmark this internet site it seems very helpful handy :)

This website has lots of very useful information on it. Cheers for sharing it with me!

Hola! Buenisimo lo q vas colgando acá. te hago una consulta: estoy queriendo conectar un mouse PS2 a la UNO y no he podido hacerlo andar, conpilo este código pero nada. no tengo mucha idea y recien comienzo con esto de programar así q me limita el conocimiento. si abro el monitor serial, debería ver los valores correr no? este código q armaste debería funcionar con el mouse PS2, no es cierto? Gracias!

Congatulations for your blog!

Here you can see more information about Synaptics TouchPad :

http://www.synaptics.com/sites/default/files/ACF126.pdf?q=decaf/utilities/ACF126.pdf

pinout at pag. 27

Enhorabuena por tu blog.
Aquí podéis ver más información acerca de los TouchPad de Synaptics:

http://www.synaptics.com/sites/default/files/ACF126.pdf?q=decaf/utilities/ACF126.pdf

En la página 27 están los pines de salida Así podremos soldar más facilmente sin cargarnos nada sobre el cable de cinta plana.

Gracias por el datasheet Ricardo! Me lo mirare detenidamente haber si se puede actualizar algo en esta entrada.

Hola, al compilar el programa me daba un error: WProgram.h no encontrado.
Se soluciona renombrando WProgram.h de la librería ps2.h a Arduino.h

La librería era para la antigua versión del IDE de arduino (las 00XX), ya he subido el archivo actualizado!

Es mejor en vez de cambiar WProgram.h por Arduino.h, añades:

#if ARDUINO >= 100
#include “Arduino.h”
#else
#include “WProgram.h”
#endif

Así la librería seguirá siendo compatible para las versiones anteriores y las nuevas.

Un saludo!

Hello,

Do you still have the code for this project http://www.youtube.com/watch?v=ORohcXbIrEQ ? I have a Synaptics T1004 trackpad but my Arduino Uno returns nothing in the serial monitor… I’m using the PS/2 library ‘mouse’ code and it doesn’t work.

Thanks!

Hello Neema!
Check the connections are correct!

Hola,primero decirte que me ha encantado tu blog,soy nuevo con el arduino.

Me gustaria hacer dos preguntas

1)tengo un touchpad parecido (TM41*357) y no tengo muy claro cuales son los pines,no tengo manera de comprobarlo pues el portatil murio hace mucho.
(por lo que he buscado e ido leyendo ,creo que el clock deberia ser el 10,data el 11,los 5v el 15 y tierra el 20;pero esto basandome en otros parecidos como el tuyo)

http://imageshack.us/photo/my-images/835/qdf5.jpg/

http://imageshack.us/photo/my-images/19/ntvs.jpg/

http://imageshack.us/photo/my-images/560/04id.jpg/

http://imageshack.us/photo/my-images/46/6x3g.jpg/

2)Tengo otro touchpad que venia con un portatil BEEP BEE42376 ,y este es muy muy raro.

http://imageshack.us/photo/my-images/841/z8u4.jpg/

http://imageshack.us/photo/my-images/823/dcct.jpg/

http://imageshack.us/photo/my-images/18/atmd.jpg/

Por mas que he buscado no encuentro el datasheet de ninguno de los dos.
¿Donde podria buscar?
Muchas gracias.
Dani

(Espero que no te moleste,adjunto los link de las fotos que he tomado de ellos.)

Hola! Very useful information!
How can I use more than one touchpad with Arduino?
I just find the instruction on Internet for one but not for “multi touchpad”. Could you help me?
Gracias!

Gord

Hello GordTheRogue, I think you’re the first one that try to connect more than one touchpad at same time. Look at the code of the library ps2.h, creating another with a different name for the variables. Eg: ps2.1.h and ps2.2.h each one for each touchpad.

Hola Dani, el primero que tienes utiliza el mismo chip que el mio, así que solo tienes que fijarte en la imagen del PinOut que he puesto y seguir la pista hasta donde puedas soldar un cable cómodamente. Del segundo touchpad es más difícil decirte, yo tampoco he encontrado el datasheet de ese chip, pero identificando bien la masa y la alimentación del chip los otros pines del conector se podrían averiguar mediante ensayo y error, hasta dar con los pines CLOCK y DATA. Un saludo!

Hola,
Muy interesante. 2 preguntas.¿donde pueden comprarse uno de estos touchpads?.estoy buscando es webs de repuestos pero no encuentro.

Aparte, ¿que opciones hay para conectar un touchpad a un arduino de salidas a 3.3 v?
?

Hola Juanakin, yo saque este touchpad de un ordenador bastante viejo pero te serviría cualquier touchpad que funcione mediante PS2 lo difícil sera averiguar el pinout. El tema de alimentarlo a 3V3 ya no sabría decirte, siempre se puede probar a alimentarlo con esos 3V3 haber si funciona bien sino no, ya que no se va a quemar por sobre voltaje.

Hola! you helped me a lot with the trick of soldering directly to test points!
muchas gracias!

To anyone that land on this page and like me is unable to retrieve the ps2 library from the above link (page not found), you can find the library here:

http://playground.arduino.cc/componentLib/Ps2mouse

The change from Wprogram.h to Arduino.h in ps2.h is still required

– pivan

Pivan Thanks for your comment, I have already fixed the link to the library.

This weekend I will update the library to make it compatible with all versions of Arduino IDE (0022 version or lower need to include WProgram.h, and 1.0.0 or higher need to include Arduino.h).


Leave a Reply