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

Conectar-se a dispositivos incomuns pelo 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, antigos ou incomuns para serem acessíveis pelos drivers de dispositivo dos sistemas. A API WebHID resolve isso fornecendo uma maneira de implementar a lógica específica do dispositivo em JavaScript.

Casos de uso sugeridos para a API WebHID

Um HID recebe entradas ou gera saídas para humanos. Exemplos de dispositivos incluem teclados, dispositivos apontadores (mouse, touchscreen etc.) e gamepads. O protocolo HID possibilita o acesso a esses dispositivos em computadores desktop usando drivers do sistema operacional. A plataforma da Web oferece suporte a HIDs, usando esses drivers.

A incapacidade de acessar dispositivos HID incomuns é particularmente dolorosa quando se trata do suporte a gamepad. Os gamepads projetados para PC geralmente usam o HID para entradas de gamepad (botões, joysticks, gatilhos) e saídas (LEDs, sombreamento). No entanto, as entradas e saídas do gamepad não são bem padronizadas, e os navegadores da Web geralmente exigem lógica personalizada para dispositivos específicos. Essa abordagem é insustentável e resulta em baixo suporte para a cauda longa de dispositivos mais antigos e incomuns. Isso 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ê quer saber como um desses exemplos funciona, o código-fonte de todos eles está disponível no GitHub. Há um exemplo de código básico na 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 o WebHID pode ser usado para desbloquear a funcionalidade de dispositivos integrados, não apenas de periféricos.

Autor: FWeinb
Demonstração/Fonte: Luz de fundo do teclado

Controles de jogos

Controle sem fio do PlayStation 4

O próximo item é algo que menos pessoas vocês provavelmente terão. O DualShock 4 da Sony é um controle sem fio para consoles de jogos PlayStation 4.

A demonstração do DualShock 4 usa o WebHID para receber os relatórios de entrada brutos do DualShock 4 e oferece uma API de alto nível para acessar as entradas do giroscópio, acelerômetro, touchpad, botão e direcional do controle. Ele também oferece suporte ao Rumble e à configuração da cor de um LED RGB armazenado no controle.

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

Controles Joy-Con para Nintendo Switch

Jogue o dinossauro do Chrome 🦖 off-line pulando com o controle Joy-Con do Nintendo Switch no bolso da sua calça. Esta demonstração usa a tecnologia do Joy-Con WebHID, um driver WebHID para os controles Joy-Con Nintendo Switch.

Autor: Thomas Steiner
Demonstração:Chrome Dino WebHID (origem da demonstração, origem do driver)

Tira BlinkStick

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

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

O que esta demonstração faz? Aguarde. A luz pisca. Na verdade, são três demonstrações que usam a luz de notificação USB piscando.

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 pelas revisões deste artigo.

Foto de Ugur Akdemir no Unsplash (em inglês)