アプリから一般的なデバイスに接続する。
WebHID API とは何ですか?
多くのヒューマン インターフェース デバイス(HID)は、システムのデバイス ドライバでアクセスできないほど新規、古い、または一般的ではありません。WebHID API は、JavaScript でデバイス固有のロジックを実装する方法を提供することで、この問題を解決します。
WebHID API の推奨ユースケース
HID は、人間から入力を受け取ったり、人間に出力を提供するデバイスです。デバイスの例としては、キーボード、ポインティング デバイス(マウス、タッチスクリーンなど)、ゲームパッドなどがあります。HID プロトコルを使用すると、オペレーティング システム ドライバを使用してパソコンでこれらのデバイスにアクセスできます。ウェブ プラットフォームは、これらのドライバを使用して HID をサポートします。
一般的な HID デバイスにアクセスできないことは、ゲームパッド サポートにおいて特に問題になります。PC 用に設計されたゲームパッドは、多くの場合、ゲームパッド入力(ボタン、ジョイスティック、トリガー)と出力(LED、振動)に HID を使用します。ただし、ゲームパッドの入力と出力は十分に標準化されておらず、ウェブブラウザでは特定のデバイス用のカスタム ロジックが必要になることがあります。これは持続可能ではなく、古いデバイスや珍しいデバイスのサポートが不十分になります。また、ブラウザは特定のデバイスの動作に存在するキワクにも依存することになります。
デモ、デモ、デモ
これらのサンプルの動作が気になる場合は、GitHub ですべてのサンプルのソースコードを入手できます。説明にはベーシックなコード例があります。
MacBook Pro のキーボード バックライト
これらのデモを試す際の最大の障害は、デバイスにアクセスできないことです。幸い、TouchBar 搭載の MacBook Pro をお持ちの場合は、何も購入する必要はありません。このデモでは、ノートパソコンから直接 API を使用できます。また、WebHID を使用して、周辺機器だけでなく、組み込みデバイスの機能をロック解除する方法も示します。
作成者: FWeinb
デモ/ソース: キーボードのバックライト
ゲーム コントローラ
PlayStation 4 ワイヤレス コントローラ
次は、多くのユーザーが利用していない機能です。ソニーの DualShock 4 は、PlayStation 4 ゲーム コンソール用のワイヤレス コントローラです。
DualShock 4 デモは、WebHID を使用して DualShock 4 から未加工の入力レポートを受信し、コントローラのジャイロスコープ、加速度計、タッチパッド、ボタン、スティック入力にアクセスするための高レベルの API を提供します。また、コントローラ内に収納された RGB LED の色の設定や、振動もサポートしています。
作成者: TheBITLINK
デモ: DualShock 4 デモ(ソース)
Nintendo Switch Joy-Con コントローラ
ズボンのポケットに Nintendo Switch Joy-Con コントローラを入れて実際にジャンプすることで、Chrome Dino 🦖 のオフライン ゲームをプレイできます。このデモは、Nintendo Switch Joy-Con コントローラ用の WebHID ドライバである Joy-Con WebHID を搭載しています。
作成者: Thomas Steiner
デモ: Chrome Dino WebHID(デモソース、ドライバソース)
BlinkStick Strip
BlinkStick Strip は、8 個の RGB LED を備えた HID 準拠のライトストリップです。このデモでは、ユーザーはチェイス、点滅、ラーソン スキャナ(別名サイロン)など、複数の点滅パターンから選択できます。
作成者: Robat Williams
デモ: blinkstick-strip(ソース)
点滅、点滅、点滅
このデモでは何が行われますか?(しばらく待ってください)。点滅している。実際には、blink(1) の USB 通知ライトを使用する 3 つのデモです。
blink(1) はシンプルでドキュメントが充実しているため、HID の使用を開始するのに適しています。
作成者: Tod E. Kurt
デモ: blink(1)(ソース)
謝辞
この記事のレビューを担当してくれた Pete LePage と Kayce Basques に感謝します。
写真撮影: UgurAkdemir(出典: Unsplash)