Conectar-se a dispositivos incomuns pelo app.
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)
Pisque, pisque, pisque
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)