Skyduino:~#
Articles
arduino, programmation, tutoriel

[Arduino] Touchpad PS/2 et Arduino UNO

Bonjour tout le monde !

Le week-end dernier j’ai fait un peu de ménage dans mon armoire à « trucs qui pourraient servir plus tard ».
Plein de vieux machin ont fini à la benne : des pc portables en morceaux, des châssis de PC, de vieilles cartes électroniques, bref pas mal de chose qui ne me servirons jamais.

Mais dans tout ce fouillis j’ai quand même retrouvé quelques trucs pas mal, comme par exemple ceci :

DSCF0650

Bon je vais ruiner le suspens mais de toute façon vous savez déjà ce que c’est grâce au titre de l’article 😉

DSCF0653

C’est un touchpad d’ordinateur portable Dell (un vieux modèle) compatible Synaptics avec un interface de type PS/2.
A l’origine il y avait un connecteur pour nappe souple mais je l’ai dessoudé comme on peut le voir sur la photo ci dessus.

Le contrôleur

DSCF0657

La référence du contrôleur « 1CA017A » ne donne pas beaucoup de résultat sur google. Et tout les liens pointant sur des datasheets du fabricant ALPS sont mort …
J’ai cependant pu trouver sur un wiki Allemand quelques informations intéressantes : http://www.das-labor.org/wiki/Alps_touch_pad

Voici le pinout du contrôleur d’après mes observations et les info du wiki ci dessus :

1 = Reset
2 = NC
3 = IO
4 = GND
5-32 = IO
33 = NC
34-35 = IO pour le click gauche et le click droit
37 = XTAL (quartz 4MHz)
38 = XTAL
39 = GND
40 = NC
41 = NC
42 = NC
43 = CLK
44 = DATA
45 = +5V (avec condensateur de filtrage)
46 = +5V
47 = GND
48 = GND

NC = Non Connecté
IO = entrée / sortie pour la détection des appuis

Est-ce que ça marche avec une carte Arduino ?

Bonne question ! Et bien oui ça marche !

DSCF0664

Après avoir quelques fils (très fin) sur les pistes …

DSCF0668

… et relié le tout à une carte Arduino UNO il suffit de lancer un code d’exemple pour souris PS/2 pour pouvoir récupérer les informations de déplacement.
Elle est pas belle la vie ? 🙂

Voici le résultat avec ce code d’exemple : http://playground.arduino.cc/componentLib/Ps2mouse

serial_monitor_mouse

Vous remarquerez que le touchpad fonctionne en mode « compatible PC », c’est à dire comme une souris classique avec des positions relatives.
Pour avoir des positions absolues et un retour sur la pression de même que le nombre de point sur le touchpad il faudrait utiliser l’extension pour touchpad du protocole PS/2 de base.
Mais pour être très franc je n’ai pas la motivation nécessaire pour lire les 91 pages de doc concernant cette extension (disponible sur le site de Synaptics).

Conclusion

Si vous avez un touchpad qui traine gardait le de côté ça peut toujours servir pour un projet Arduino 😉

Advertisements

Discussion

Une réflexion sur “[Arduino] Touchpad PS/2 et Arduino UNO

  1. Cool !

    Publié par Antoine | 27 octobre 2013, 22 h 57 min

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.