Menselijke interface-apparaten op internet: een paar snelle voorbeelden

Verbinding maken met ongebruikelijke apparaten vanuit je app.

Joe Medley
Joe Medley
Matt Reynolds
Matt Reynolds

Wat is de WebHID API?

Veel gebruikersinterfaceapparaten (HID's) zijn te nieuw, te oud of te ongebruikelijk om toegankelijk te zijn voor de apparaatstuurprogramma's van systemen. De WebHID API lost dit op door een manier te bieden om apparaatspecifieke logica in JavaScript te implementeren.

Voorgestelde gebruiksscenario's voor de WebHID API

Een HID (Human-Input Device) ontvangt invoer van of levert uitvoer aan mensen. Voorbeelden van apparaten zijn toetsenborden, aanwijsapparaten (muizen, touchscreens, enz.) en gamepads. Het HID-protocol maakt het mogelijk om deze apparaten op desktopcomputers te gebruiken met behulp van stuurprogramma's van het besturingssysteem. Het webplatform ondersteunt HID's door gebruik te maken van deze stuurprogramma's.

Het onvermogen om toegang te krijgen tot minder gangbare HID-apparaten is met name problematisch als het gaat om gamepad-ondersteuning. Gamepads die voor pc's zijn ontworpen, gebruiken vaak HID voor gamepad-input (knoppen, joysticks, triggers) en -output (leds, rumble). De input en output van gamepads zijn echter niet goed gestandaardiseerd en webbrowsers vereisen vaak aangepaste logica voor specifieke apparaten. Dit is onhoudbaar en leidt tot gebrekkige ondersteuning voor een groot aantal oudere en minder gangbare apparaten. Het zorgt er ook voor dat de browser afhankelijk wordt van de eigenaardigheden in het gedrag van specifieke apparaten.

Demo's, demo's, demo's

Als je wilt weten hoe deze voorbeelden werken, is de broncode ervan beschikbaar op GitHub. In de toelichting vind je een eenvoudig codevoorbeeld .

MacBook Pro toetsenbordverlichting

De grootste hindernis om deze demo's uit te proberen, is het gebrek aan toegang tot het apparaat. Gelukkig hoef je niets te kopen als je een MacBook Pro met Touch Bar hebt. Met deze demo kun je de API rechtstreeks vanaf je laptop gebruiken. Het laat ook zien hoe WebHID kan worden gebruikt om functionaliteit van ingebouwde apparaten te ontsluiten, niet alleen van randapparatuur.

Auteur: FWeinb
Demo/Bron: Toetsenbordverlichting

Gamecontrollers

Draadloze PlayStation 4-controller

Het volgende item is iets wat waarschijnlijk minder mensen in hun bezit hebben. De DualShock 4 van Sony is een draadloze controller voor PlayStation 4-spelconsoles.

De DualShock 4 Demo gebruikt WebHID om de onbewerkte invoergegevens van de DualShock 4 te ontvangen en biedt een API op hoog niveau voor toegang tot de gyroscoop, accelerometer, touchpad, knoppen en thumbsticks van de controller. Het ondersteunt ook trilfuncties en het instellen van de kleur van een RGB-led in de controller.

Auteur: TheBITLINK
Demo: DualShock 4-demo ( bron )

Nintendo Switch Joy-Con controllers

Speel het offline spel Chrome dino 🦖 door daadwerkelijk te springen met een Nintendo Switch Joy-Con-controller in je broekzak. Deze demo maakt gebruik van Joy-Con WebHID , een WebHID-driver voor de Nintendo Switch Joy-Con-controllers.

Auteur: Thomas Steiner
Demo: Chrome Dino WebHID ( demo-broncode , driver-broncode )

De BlinkStick-strip

BlinkStick Strip is een HID-compatibele lichtstrip met 8 RGB-leds. De demo laat de gebruiker kiezen uit verschillende knipperpatronen, waaronder chase, blink en Larson scanner (ook wel Cylon genoemd).

Auteur: Robat Williams
Demo: blinkstick-strip ( bron )

Wat doet deze demo? (Even geduld.) Hij knippert. Eigenlijk zijn het drie demo's die gebruikmaken van het blink(1) USB-notificatielampje.

blink(1) is eenvoudig en goed gedocumenteerd, waardoor het een uitstekende optie is om mee te beginnen met HID.

Auteur: Tod E. Kurt
Demo's: blink(1) ( bron )

Dankbetuigingen

Met dank aan Pete LePage en Kayce Basques .