Trackpad USB DIY Arduino : Convertir un Vieux Trackpad d'Ordinateur Portable en Périphérique d'Entrée Moderne
Composants et fournitures
| Arduino Micro | × | 1 |
Applications et services en ligne
| Arduino IDE |
À propos de ce projet
À chaque sortie de nouveau Raspberry Pi, je regarde les spécifications et me dis « Je veux vraiment en faire un ordinateur portable » mais un problème revient toujours : je ne trouve jamais de trackpad USB autonome pour l'ordinateur portable. Dans ce projet, nous allons récupérer un trackpad d'un vieil ordinateur portable cassé et le convertir en périphérique USB à l'aide d'un Arduino Pro Micro.
Étape 1 : Pièces nécessaires


Les pièces sont simples : un trackpad d'ancien portable, un Arduino Micro et du fil. Attention : seuls certains Arduino peuvent être programmés comme HID (Human Interface Device) pour apparaître comme souris/clavier : Arduino Micro, Pro Micro et Leonardo. L'Arduino Uno ne peut pas. Vous pouvez trouver l'Arduino Pro Micro ici. Pour le trackpad, si vous préférez en acheter un : ici.
Étape 2 : Pourquoi ça fonctionne

La plupart des anciens trackpads d'ordinateurs portables communiquaient via une interface PS/2 : le circuit du trackpad a des sorties PS/2 (données et horloge), lues par l'Arduino et converties en données USB. Tous les trackpads ne sont pas identiques : la quasi-totalité des anciens utilisent PS/2, mais certains plus récents utilisent l'USB directement. Si vous trouvez un trackpad USB, cherchez son brochage et branchez-le directement sur un ordinateur – il fonctionnera. Mais ici nous utilisons le trackpad PS/2 courant et un Arduino pour en faire une souris USB.
Étape 3 : Câblage





Le câblage est simple : trouvez 4 pastilles de soudure sur le trackpad. Elles sont généralement étiquetées T10 (données), T11 (horloge), T20 et la masse est un grand plan de cuivre exposé. Soudez soigneusement un fil sur chaque pastille et connectez-les aux broches Arduino correspondantes :
- T10 → broche 10 sur Arduino Micro
- T11 → broche 9 sur Arduino Micro
- T20 → 5V sur Arduino Micro
- Plan de masse → GND sur Arduino Micro
Important : Après soudure, n'exercez aucune pression sur ces pastilles, même légère, cela peut les arracher et rendre le trackpad inutilisable. Protégez vos connexions avec de la colle chaude après soudure.
Étape 4 : Installation des bibliothèques
Deux bibliothèques sont nécessaires dans l'Arduino IDE :
Téléchargez-les, ouvrez le dossier libraries de l'Arduino IDE et déposez-les dedans. La bibliothèque PS/2 lit les données du trackpad, la bibliothèque Mouse les transforme en commandes souris lisibles par l'ordinateur via USB.
Étape 5 : Le code

Une fois les bibliothèques installées, téléversez le code ci-dessous. Attention : le code ne compilera/téléversera que si la carte sélectionnée sous Outils est Arduino Micro ou Leonardo. Gardez cela en tête si vous avez une erreur de compilation. Une fois téléversé, l'Arduino redémarre en tant que périphérique HID et apparaît sur l'ordinateur comme une souris.
thistouchpad.ino
Code complet
#include <Mouse.h>
#include <ps2.h>
#define PS2_DATA 10
#define PS2_CLK 9
byte mstat1;
byte mstat2;
byte mxy;
byte mx;
byte my;
byte mz;
int msval[2];
int repeatCnt;
PS2 moose(PS2_CLK, PS2_DATA);
void setup() {
Mouse.begin();
moose.write(0xff);
moose.read();
moose.read();
moose.read();
moose.write(0xf0);
moose.read();
delayMicroseconds(100);
moose.write(0xe8);
moose.read();
moose.write(0x03);
moose.read();
moose.write(0xe8);
moose.read();
moose.write(0x00);
moose.read();
moose.write(0xe8);
moose.read();
moose.write(0x01);
moose.read();
moose.write(0xe8);
moose.read();
moose.write(0x00);
moose.read();
moose.write(0xf3);
moose.read();
moose.write(0x14);
moose.read();
Serial.begin(9600);
}
void ms_read() {
moose.write(0xeb);
moose.read();
mstat1 = moose.read();
mxy = moose.read();
mz = moose.read();
mstat2 = moose.read();
mx = moose.read();
my = moose.read();
msval[0] = (((mstat2 & 0x10) << 8) | ((mxy & 0x0F) << 8) | mx);
msval[1] = (((mstat2 & 0x20) << 7) | ((mxy & 0xF0) << 4) | my);
msval[2] = int(mz);
}
void loop() {
ms_read();
if (msval[0] > 0 && msval[2] > 10) {
repeatCnt++;
} else {
repeatCnt = 0;
}
if (repeatCnt > 2) {
msval[0] = map(msval[0], 580, 5164, -1023, 1023);
msval[1] = map(msval[1], 1120, 5967, 1023, -1023);
Mouse.move(msval[0]/200, msval[1]/200);
}
}
Étape 6 : Finalisation et dépannage
Maintenant, quand vous touchez le trackpad, vous devriez voir le curseur bouger. Comme l'Arduino agit comme périphérique USB, vous pouvez le brancher sur n'importe quel ordinateur et il démarrera instantanément comme souris USB, quel que soit le système d'exploitation ou le type d'ordinateur.
Si vous ne voulez pas programmer et câbler l'Arduino, vous pourriez acheter un convertisseur PS/2 vers USB, mais je ne le recommande pas : j'ai lu que cela perturbe les données du trackpad et peut le rendre inutilisable. Avec l'Arduino, vous pouvez tout personnaliser : vitesse de la souris, actions du double-clic, défilement, etc. Plus d'infos sur la page Arduino Mouse ici.
Si votre trackpad n'envoie pas de données, solution possible : regardez au dos du trackpad, trouvez un numéro de pièce, cherchez ce numéro avec « pinout » sur Google pour identifier les broches données, horloge et 5V.
Merci d'avoir lu ! Pour toute question, laissez un commentaire, je répondrai au mieux.
Processus de fabrication
- Construire un robot Raspberry Pi piloté par Bluetooth avec retour audio
- Lampe de table RGB à commande gestuelle – Éclairage interactif, mains libres
- Véhicule Télécommandé par Android avec Raspberry Pi et Shield Moteur
- Contrôler des LED avec Alexa via Raspberry Pi – Guide Pas à Pas
- Transformez une vieille voiture RC en véhicule piloté au joystick avec Arduino
- Bras robotique 6 DoF piloté par Nunchuk Wii – Kit Arduino Mega
- Robot commandé par la voix avec Arduino Nano et Bluetooth
- MobBob : Construisez votre propre robot Arduino, contrôlé via smartphone Android
- Appareils électroménagers à commande vocale : contrôle Bluetooth avec Google Assistant