Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Trackpad USB DIY com Arduino: Transforme um Touchpad de Portátil Antigo num Dispositivo de Entrada Moderno

Componentes e Materiais

Software Necessário

Sobre o Projeto

Sempre que sai um novo Raspberry Pi, penso em construir um portátil com ele, mas esbarro sempre no mesmo problema: não existe um touchpad USB autónomo à venda. A solução? Recuperar o touchpad de um portátil avariado e convertê-lo em dispositivo USB usando um Arduino Pro Micro (ou Micro/Leonardo).

Passo 1: Peças Necessárias

O hardware é minimalista: touchpad de portátil antigo, Arduino Micro/Pro Micro/Leonardo (apenas estas placas têm USB nativo e podem emular HID – Human Interface Device) e fios. O Arduino Uno não funciona para este fim pois não suporta HID nativo.

Passo 2: Por Que Funciona

A maioria dos touchpads de portáteis antigos comunica via interface PS/2 (pinos de dados e clock). O Arduino lê esse protocolo e converte-o em comandos USB HID de rato. Atenção: touchpads mais recentes podem usar USB nativo – nesses casos, basta ligar diretamente ao PC. Este projeto foca nos touchpads PS/2 mais comuns.

Passo 3: Ligações (Wiring)

No touchpad, identifique 4 pads de soldadura (geralmente rotulados):

Importante: Após soldar, proteja as ligações com cola quente. Os pads são frágeis e qualquer tensão mecânica pode arrancá-los, inutilizando o touchpad.

Passo 4: Instalar Bibliotecas

Na Arduino IDE, instale via Sketch → Incluir Biblioteca → Gerenciar Bibliotecas:

Passo 5: O Código

Selecione Arduino Micro ou Leonardo em Ferramentas → Placa. Carregue o código abaixo. O Arduino reiniciará e aparecerá no PC como um rato USB.

#include <Mouse.h>
#include <ps2.h>

#define PS2_DATA 10
#define PS2_CLK 9

byte mstat1, mstat2, mxy, mx, my, mz;
int msval[3];
int repeatCnt = 0;

PS2 moose(PS2_CLK, PS2_DATA);

void setup() {
  Mouse.begin();
  // Inicialização do touchpad PS/2 (sequência padrão)
  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);
  }
}

Passo 6: Finalização e Resolução de Problemas

Ao tocar no touchpad, o cursor deve mover-se. Como é um dispositivo HID padrão, funciona em qualquer SO (Windows, Linux, macOS) sem drivers.

Dicas:

Processo de manufatura

  1. Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio
  2. Lâmpada de Mesa RGB Controlada por Gestos – Iluminação Interativa e Sem Toque
  3. Veículo Remoto Controlado por Android com Raspberry Pi e Motor Shield
  4. Controlar LEDs com Alexa via Raspberry Pi – Guia Passo a Passo Fácil
  5. Transforme um Carro RC Antigo em Veículo Controlado por Joystick com Arduino
  6. Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
  7. Construa um Robô Controlado por Voz com Arduino Nano
  8. MobBob: Construa Seu Próprio Robô Arduino, Controlado via Smartphone Android
  9. Eletrodomésticos Ativados por Voz: Controle Bluetooth com Google Assistant
  10. PiBot: Robô Pianista Arduino para Performance Musical de Precisão