Dispositivos de interface humana na Web: alguns exemplos rápidos

Como se conectar a dispositivos incomuns no seu app

Joe Medley
Joe Medley
Matt Reynolds
Matt Reynolds

O que é a API WebHID?

Muitos dispositivos de interface humana (HIDs, na sigla em inglês) são muito novos, muito antigos ou muito incomuns para serem acessados pelos drivers de dispositivos dos sistemas. A API WebHID resolve esse problema oferecendo uma maneira de implementar uma lógica específica do dispositivo em JavaScript.

Casos de uso sugeridos para a API WebHID

Um HID recebe entrada ou fornece saída para humanos. Exemplos de dispositivos incluem teclados, dispositivos apontadores (mouses, telas sensíveis ao toque etc.) e gamepads. O protocolo HID permite acessar esses dispositivos em computadores desktop usando drivers do sistema operacional. A plataforma da Web oferece suporte a HIDs dependendo desses drivers.

A incapacidade de acessar dispositivos HID incomuns é particularmente problemática quando se trata de suporte a gamepads. Os gamepads projetados para PC geralmente usam HID para entradas (botões, joysticks, gatilhos) e saídas (LEDs, vibração). No entanto, as entradas e saídas de gamepads não são bem padronizadas, e os navegadores da Web geralmente exigem uma lógica personalizada para dispositivos específicos. Isso é insustentável e resulta em suporte ruim para a longa lista de dispositivos mais antigos e incomuns. Também faz com que o navegador dependa de peculiaridades presentes no comportamento de dispositivos específicos.

Demonstrações, demonstrações, demonstrações

Se você quiser saber como qualquer uma dessas amostras funciona, o código-fonte de todas elas está disponível no GitHub. Há um exemplo de código básico em a explicação.

Luz de fundo do teclado do MacBook Pro

A maior barreira para testar qualquer uma dessas demonstrações é a falta de acesso ao dispositivo. Felizmente, se você tiver um MacBook Pro com TouchBar, não precisará comprar nada. Essa demonstração permite usar a API diretamente do seu laptop. Ela também mostra como a WebHID pode ser usada para desbloquear a funcionalidade de dispositivos integrados, não apenas periféricos.

Autor: FWeinb
Demonstração/fonte: luz de fundo do teclado

Controles de jogos

Controle sem fio do PlayStation 4

Em seguida, há algo que menos pessoas provavelmente têm. O DualShock 4 da Sony é um controle sem fio para consoles de jogos PlayStation 4.

A demonstração do DualShock 4 usa a WebHID para receber os relatórios de entrada bruta do DualShock 4 e fornece uma API de alto nível para acessar o giroscópio, o acelerômetro, o touchpad, o botão e as entradas do thumbstick do controle. Ele também oferece suporte à vibração e à definição da cor de um LED RGB alojado no controle.

Autor: TheBITLINK
Demonstração: demonstração do DualShock 4 (fonte)

Controles Joy-Con do Nintendo Switch

Jogue o jogo off-line do dinossauro 🦖 do Chrome pulando com um controle Joy-Con do Nintendo Switch nos bolsos da calça. Essa demonstração é alimentada pelo Joy-Con WebHID, um driver WebHID para os controles Joy-Con do Nintendo Switch.

Autor: Thomas Steiner
Demonstração: Dinossauro do Chrome WebHID (fonte de demonstração, fonte do driver)

A fita BlinkStick

A fita BlinkStick é uma fita de luz compatível com HID com 8 LEDs RGB. A demonstração permite que o usuário selecione entre vários padrões de piscada, incluindo perseguição, piscada e scanner Larson (também conhecido como Cylon).

Autor: Robat Williams
Demonstração: blinkstick-strip (fonte)

O que essa demonstração faz? (Espere um pouco.) Ela pisca. Na verdade, são três demonstrações que usam a luz de notificação USB blink(1).

O blink(1) é simples e bem documentado, o que o torna uma ótima opção para começar a usar o HID.

Autor:Tod E. Kurt
Demonstrações: blink(1) (fonte)

Agradecimentos

Agradecemos a Pete LePage e Kayce Basques.