O conector USB tipo A é o mais comum, muito usado em mouses e teclados, tem 4 pinos somente. O pino 4 (fio preto) é o GND (ground), é referência ou retorno para os outros 3 pinos: o pino 1 (fio vermelho) que fornece uma tensão de 5 volts (até 500 mA) direto da fonte do PC para alimentar o dispositivo conectado; e os pinos 2 (D+, fio branco) e 3 (D-, fio verde), onde vai o par trançado por onde os mesmos dados serão transmitidos de forma diferenciada, de modo a rejeitar os chamados ‘ruídos de modo comum’. Essas linhas funcionam em 3,3 volts.
Um barramento USB pode comportar até 127 dispositivos conectados em paralelo. O fluxo de informações que trafega por esse barramento é controlado por um processador, chamado de host, onde roda um algoritmo. Cada dispositivo, chamado de escravo do host, não pode iniciar uma transmissão sozinho, deve aguardar sua vez. O host é quem determina qual dispositivo vai colocar dados no barramento e qual dispositivo vai recolher esses dados. Somente o host ou um dispositivo por vez pode colocar dados no barramento.
Quando o host coloca pacotes com endereço e conteúdo (chamados de packets) no barramento, todos os dispositivos naquela porta USB podem ler o endereço no pacote. Porém, um só dispositivo, aquele no endereço, vai poder abrir o pacote e ver seu conteúdo.
No nosso projeto da interface HID o host é nosso PC, onde vai ser executado um programa escrito em Python, que vai converter, com o Arduino ProMicro, movimentos humanos em sinais elétricos que vão interagir com o aplicativo Google StreetView.
Human Interface Device
Voltemos então à nossa interface HID. Dissemos acima que o teclado, o mouse, o monitor e qualquer coisa que podemos conectar a um computador é um dispositivo de interface humana. Esses dispositivos, mesmo quando conectados pela primeira vez, podem ser facilmente reconhecidos pelos sistemas operacionais dos PCs sem a instalação prévia de drivers proprietários.
Um dispositivo HID-USB deve atender às especificações do protocolo USB da classe a que esse dispositivo pode pertencer. Existem classes para teclados, mouses, joysticks para games, e todo tipo de circuito conectado a uma porta USB.
O dispositivo que propomos montar é como um clone de um mouse. Um mouse na forma de uma manopla. Com essa manopla será muito mais fácil andar pelas ruas no StreetView da Google. Claro que o dispositivo poderá servir para navegar também dentro de outras plataformas digitais.