Conexión 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 de los sistemas puedan acceder a ellos. La API de WebHID resuelve este problema, ya que proporciona una forma de implementar lógica específica del dispositivo en JavaScript.
Casos de uso sugeridos para la API de WebHID
Un HID recibe información de entrada de las personas o les proporciona información de salida. Algunos ejemplos de dispositivos son teclados, dispositivos apuntadores (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 HIDs gracias a 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 gamepads diseñados para PC suelen usar HID para las entradas (botones, palancas de juegos, gatillos) y salidas (luces LED, vibración) del gamepad. Sin embargo, las entradas y salidas de los gamepads no están bien estandarizadas, y los navegadores web suelen requerir lógica personalizada para dispositivos específicos. Esto es insostenible y genera una asistencia deficiente para la larga lista de dispositivos antiguos y poco comunes. También hace que el navegador dependa de las peculiaridades presentes en el comportamiento de dispositivos específicos.
Demostraciones, demostraciones y más demostraciones
Si tienes curiosidad por saber cómo funciona alguna de estas muestras, el código fuente de todas ellas está disponible en GitHub. Hay un ejemplo de código básico en la explicación.
Retroiluminación del teclado del MacBook Pro
La mayor barrera para probar cualquiera de estas demostraciones es la falta de acceso al dispositivo. Afortunadamente, si tienes una MacBook Pro con Touch Bar, no necesitas comprar nada. Esta demostración te permite usar la API directamente desde tu laptop. También muestra cómo se puede usar WebHID para desbloquear la funcionalidad de dispositivos integrados, no solo periféricos.
Autor: FWeinb
Demostración/Fuente: Luz de fondo del teclado
Controles de juegos
Control inalámbrico para PlayStation 4
A continuación, se muestra algo que es probable que menos personas tengan. El DualShock 4 de Sony es un control inalámbrico para consolas de juegos PlayStation 4.
La demostración 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 las palancas analógicas del controlador. También admite la vibración y la configuración del color de un LED RGB alojado dentro del 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 control Joy-Con de Nintendo Switch en los bolsillos del pantalón. Esta demostración funciona con Joy-Con WebHID, un controlador WebHID para los controles Joy-Con de Nintendo Switch.
Autor: Thomas Steiner
Demostración: Chrome Dino WebHID
(código fuente de la demostración,
código fuente del controlador)
La tira BlinkStick
La tira BlinkStick es una tira de luces compatible con HID que tiene 8 LEDs RGB. La demostración permite al usuario seleccionar entre varios patrones de parpadeo, incluidos los de persecución, parpadeo y escáner de Larson (también conocido como Cylon).
Autor: Robat Williams
Demostración: blinkstick-strip (fuente)
Parpadea, parpadea, parpadea
¿Qué hace esta demostración? (Espera). Parpadea. En realidad, son tres demostraciones que usan la luz de notificación USB 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.