Conectarse a dispositivos poco comunes desde tu app
¿Qué es la API de WebHID?
Muchos dispositivos de interfaz humana (HID) son demasiado nuevos, demasiado antiguos o demasiado poco comunes para que los controladores de dispositivos del sistema puedan acceder a ellos. La API de WebHID resuelve este problema, ya que proporciona una forma de implementar la lógica específica del dispositivo en JavaScript.
Casos de uso sugeridos para la API de WebHID
Un HID recibe entradas de los humanos o les proporciona salidas. Algunos ejemplos de dispositivos son teclados, dispositivos de puntero (mouse, pantallas táctiles, etcétera) y controles de juegos. El protocolo HID permite acceder a estos dispositivos en computadoras de escritorio con controladores del sistema operativo. La plataforma web admite HID con estos controladores.
La incapacidad de acceder a dispositivos HID poco comunes es particularmente dolorosa cuando se trata de la compatibilidad con controles de juegos. Los controles de juegos diseñados para PC suelen usar HID para las entradas (botones, joysticks, activadores) y salidas (LED, vibración) del control. Sin embargo, las entradas y salidas del gamepad no están bien estandarizadas y, a menudo, los navegadores web requieren lógica personalizada para dispositivos específicos. Esto no es sostenible y genera una compatibilidad deficiente con la cola larga de dispositivos más antiguos y poco comunes. También hace que el navegador dependa de peculiaridades presentes en el comportamiento de dispositivos específicos.
Demostraciones, demostraciones y más demostraciones
Si te interesa saber cómo funciona alguno de estos ejemplos, el código fuente de todos ellos está disponible en GitHub. Hay un ejemplo de código básico en la explicación.
Retroiluminación del teclado del MacBook Pro
El mayor obstáculo para probar cualquiera de estas demostraciones es la falta de acceso al dispositivo. Afortunadamente, si tienes una MacBook Pro con una TouchBar, no necesitas comprar nada. Esta demostración te permite usar la API directamente desde tu laptop. También se muestra cómo se puede usar WebHID para desbloquear la funcionalidad de los dispositivos integrados, no solo de los periféricos.
Autor: FWeinb
Demostración/fuente: Retroiluminación del teclado
Controles de juegos
Control inalámbrico para PlayStation 4
A continuación, te mostramos algo que es probable que menos usuarios tengan. El DualShock 4 de Sony es un control inalámbrico para consolas de juegos PlayStation 4.
La demo de DualShock 4 usa WebHID para recibir los informes de entrada sin procesar del DualShock 4 y proporciona una API de alto nivel para acceder a las entradas del giroscopio, el acelerómetro, el panel táctil, los botones y el joystick del controlador. También admite la vibración y la configuración del color de un LED RGB alojado en el controlador.
Autor: TheBITLINK
Demostración: Demostración de DualShock 4 (fuente)
Controles Joy-Con de Nintendo Switch
Juega al juego sin conexión del dinosaurio 🦖 de Chrome saltando con un controlador Joy-Con de Nintendo Switch en los bolsillos del pantalón. Esta demostración está potenciada por Joy-Con WebHID, un controlador WebHID para los controladores Joy-Con de Nintendo Switch.
Autor: Thomas Steiner
Demo: Chrome Dino WebHID
(fuente de demo,
fuente del controlador)
La tira BlinkStick
BlinkStick Strip es una tira de luces compatible con HID con 8 LED RGB. La demostración permite al usuario seleccionar entre varios patrones de parpadeo, como persecución, parpadeo y escáner Larson (también conocido como Cylon).
Autor: Robat Williams
Demo: blinkstick-strip (fuente)
Parpadeo, parpadeo, parpadeo
¿Qué hace esta demostración? (Espera). Parpadea. En realidad, son tres demostraciones que usan la luz de notificación USB de blink(1).
blink(1) es simple y está bien documentado, lo que lo convierte en una excelente opción para comenzar a usar HID.
Autor: Tod E. Kurt
Demos: blink(1) (source)
Agradecimientos
Gracias a Pete LePage y Kayce Basques por revisar este artículo.
Foto de Ugur Akdemir en Unsplash