DIY Arduino USB Trackpad: Zet een Oude Laptop-Touchpad om in een Modern Invoerapparaat
Onderdelen en benodigdheden
| Arduino Micro | × | 1 |
Apps en online diensten
- Arduino IDE
Over dit project
Elke keer dat een nieuwe Raspberry Pi uitkomt, denk ik: "Ik wil er een laptop van maken" – maar een losse USB-trackpad is niet te vinden. In dit project halen we een trackpad uit een kapotte laptop en maken er een USB-apparaat van met een Arduino Pro Micro.
Stap 1: Benodigdheden
- Trackpad uit een oude laptop
- Arduino Micro, Pro Micro of Leonardo (alleen deze kunnen als HID – Human Interface Device – verschijnen, dus als muis/toetsenbord; een Uno kan dit niet)
- Wat draad
Arduino Pro Micro: hier | Trackpad kopen: hier
Stap 2: Waarom werkt dit?
Meeste oudere laptop-trackpads communiceren via PS/2-interface (data- en kloklijnen). De Arduino leest deze data en zet het om naar USB-muiscommando's. Nieuwere trackpads gebruiken soms al USB – die kun je direct aansturen met de juiste pinout. Dit project richt zich op de veelvoorkomende PS/2-variant.
Stap 3: Aansluiten
Zoek 4 soldeerpads op het trackpad: T10 (data), T11 (clock), T20 (5V), en de massa-vlakte (groot metaalvlak). Soldeer voorzichtig een draadje op elk pad.
| Trackpad | Arduino Micro |
|---|---|
| T10 (Data) | Pin 10 |
| T11 (Clock) | Pin 9 |
| T20 (5V) | 5V |
| Massa | GND |
Belangrijk: Zet geen druk op de soldeerpaden na het solderen – ze gaan gemakkelijk af. Dek de verbindingen af met hete lijm.
Stap 4: Libraries installeren
In Arduino IDE twee libraries toevoegen:
- Mouse Library
- PS/2 Library
Download, open Arduino-map → libraries → erin zetten. PS/2 leest de trackpad, Mouse zorgt voor USB-HID commando's.
Stap 5: De Code
Upload de code (onderaan). Let op: onder Tools → Board moet Arduino Micro of Leonardo staan, anders compileerfout. Na upload herstart de Arduino als HID en verschijnt als muis.
Code (thistouchpad.ino)
#include <Mouse.h>
#include <ps2.h>
#define PS2_DATA 10
#define PS2_CLK 9
byte mstat1, mstat2, mxy, mx, my, mz;
int msval[2];
int repeatCnt;
PS2 moose(PS2_CLK, PS2_DATA);
void setup() {
Mouse.begin();
// PS/2 muis initialiseren (standaard initialisatiereeks)
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);
}
}
Stap 6: Klaar & Probleemoplossing
Nu werkt de trackpad als USB-muis op elke computer (OS-onafhankelijk). Wil je niet solderen/programmeren? Een PS/2-naar-USB-converter bestaat, maar die kan de data verstoren. Met Arduino pas je alles aan: snelheid, dubbelklik, scrollen – zie Arduino Mouse reference.
Werkt niet? Check de achterkant van het trackpad voor een typenummer, google "typenummer pinout" voor de juiste pennen.
Vragen? Laat een reactie achter!
Productieproces
- Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
- Gebarenbestuurde RGB-tafellamp – Interactief, Handvrij Verlichten
- Bouw een Android-bestuurd extern voertuig met Raspberry Pi Motor Shield
- LED's bedienen met Alexa via Raspberry Pi – Eenvoudige stapsgewijze handleiding
- Een oude RC-auto ombouwen tot joystick-gestuurd voertuig met Arduino
- Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
- Bouw een Stemgecontroleerde Robot met Arduino Nano
- MobBob: Bouw Je Eigen Arduino Robot, Naadloos Bestuurd via Android Smartphone
- Spraakgestuurde huishoudapparaten: Bluetooth-besturing met Google Assistant
- PiBot: De Arduino-aangedreven pianorobot voor precisiemuziek
- Wi-Servo: Servomotoren Besturen via Wi-Fi met een Webbrowser