Altana Tubes > Blog > Raspberry Pi > Touchpad

Conectando um touchpad ao Raspberry Pi

Touchpad e Raspberry Pi 4

1-Introdução

Mesmo com a massiva popularização das telas touchscreen, o touchpad ainda é a forma padrão como muitas pessoas, nas quais eu me incluo, interagem com computadores portáteis. Quando decidi montar um laptop usando o Raspberry Pi, demorei a decidir qual caminho tomar. 

Uma tela sensível a toque é um periférico caro, e todo o propósito de se construir do zero um laptop usando um Raspberry Pi é manter o custo baixo. Um touchpad novo também não é algo barato, já que são construídos para servir especificamente para um determinado modelo de computador de um único fabricante. Essa espécie de reserva de mercado encarece o dispositivo.

Foi quando tive a brilhante, e óbvia, ideia de procurar por um touchpad usado. Como estou fazendo tudo do zero, pouco importa qual o modelo. Posso encaixar qualquer coisa no meu desenho.

Tive uma certa dificuldade em fazer o sujeito da loja de manutenção entender que eu queria um touchpad qualquer. Ele não entendeu bem o que eu queria. Ficava perguntando o modelo e a marca do meu laptop enquanto eu insistia que era irrelevante. Apenas precisava de algo barato. Saí da loja com o painel frontal de um laptop Sony contendo um touchpad e dois alto falantes. Desmontei a coisa toda e comecei a pesquisar a respeito.

O touchpad que eu retirei do painel é um ALPS modelo 56AAA1976A com um controlador 1CA022A. Pesquisei arduamente por este código na esperança de encontrar alguma ficha técnica, mas nada apareceu. Entretanto encontrei bastante coisa sobre touchpads em geral e todos tinham uma coisa em comum. O protocolo PS/2.

2-Protocolo de comunicação PS/2

Imaginei que o touchpad de um laptop moderno, isto é, algo fabricado depois do aparecimento da porta USB, seria um dispositivo USB. Foi quase um choque descobrir que a vasta maioria dos laptops usam o já antiquado protocolo PS/2, o que significa que não poderei conectar o touchpad diretamente em uma das portas USB do Raspberry Pi. Encontrei muita informação sobre o protocolo PS/2 neste site e em nada se parece com o protocolo USB. Por sorte há várias formas de se contornar este problema. A mais óbvia é usar um conversor PS/2 para USB, que ainda se pode encontrar a venda. Outra é usar uma interface PS/2 com Arduino Leonardo ou Arduino Pro Micro. 

Mas não importa qual a forma que será usada para conectar o touchpad, primeiro é preciso identificar o que liga onde na pequena placa de circuito. Não encontrei dados sobre o meu modelo específico de touchpad, mas neste site russo achei um modelo parecido que foi meu ponto de partida.

 

Há doze pontos de contato para conectar a placa touchpad ao resto do sistema. O que eu consegui levantar por testes de tentativa e erro foi a seguinte tabela:

 

Pino

Função

1

VCC +5V - Alimentação

2

VCC +5V - Alimentação

3

DATA - Via de comunicação serial

4

CLOCK

5

GND - Terra e referência de zero volt

6

GND - Terra e referência de zero volt

7

8

?

9

Middle Button - Botão do meio. Ativado quando aterrado.

10

Left Button - Botão esquerdo. Ativado quando aterrado.

11

Right Button - Botão direito. Ativado quando aterrado.

12

?

 

Apesar de não haver um botão do meio no painel de onde tirei a peça, a função está implementada no chip controlador e pode ser usada. Os terminais de 7 a 12, quando abertos apresentam uma tensão de 5V. A ativação da função é feita aterrando-se o terminal. No circuito original do laptop, o terminal 12 é permanentemente aterrado, entretanto parece não fazer diferença se deixado aberto. Os terminais 7 e 8 ficam abertos no circuito original.