【完走賞ゲット-9】Awesome WebHID というページを見かけて気になった話

## はじめに
こちらは、[完走賞ゲットのため小ネタを毎日投稿しようとチャレンジする Advent Calendar 2022](https://qiita.com/advent-calendar/2022/youtoy) の 9日目の記事です。

この 12月のアドベントカレンダー用に公開した記事でも何度か登場している HID に関する話です。その中でも、ブラウザで HID を扱う「WebHID」が絡む話になります。

## 今回の内容
WebHID周りの調べものをしていたところ、以下の「Awesome WebHID」というページを見かけました。

●robatwilliams/awesome-webhid: Curated list of resources relating to the WebHID (Human Interface Device) API
　https://github.com/robatwilliams/awesome-webhid
![Awesome WebHID](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/ab14ad1b-d780-66e0-a410-727998fcbaf7.png)

WebHID を色々触ってみようと思っていた中で、この情報まとめ的なページを見かけたので、ページの内容がすごく気になりました。
そして、このページの内容を見て、気になる部分を拾い上げるだけでも知見が得られそうな予感がします。そこで、メモをとりながらページの内容をおおまかに見てみようと思いました。

## Awesome WebHID のページの内容を見ていく
まず、[Awesome WebHID](https://github.com/robatwilliams/awesome-webhid) の目次の部分を見てみます。

以下の目次を見てみると、このページには「仕様の情報から、WebHID で扱えるデバイスについて、活用できそうなライブラリ」といった、様々な情報が書かれているようです。
![目次](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/88c1e4eb-afd7-d801-9269-e822e8925a17.png)

その中で、開発系でサクッと活用できそうなものをピックアップしてみます。

### デバイス関連の情報
以下を見ると、WebHID で扱えるデバイスの情報が掲載されていそうでした。
![デバイスのリスト](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/c6dcc9f3-98ba-943e-896f-28b140ae6b35.png)
自分が持っているデバイス・ゲームコントローラーが複数含まれています（うちいくつかは、既に軽く試してみたものも含まれていました）。

### ツール・デモ・ライブラリ
ツール・デモ・ライブラリといった項目もあります。

![ツール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/66bea959-f15b-c732-7fe0-854ec765d428.png)
![デモ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/522811a6-9c07-c3e6-d3fd-c3d636874ccc.png)
![ライブラリ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7bd26fe3-5465-1680-5bf6-d7407e050395.png)

このあたりで、気になる情報をもう少し見てみようと思います。

## 上でピックアップした内容で気になった部分
### node-hid
上でピックアップしたものの中で、個人的には Node.js絡みの「node-hid」が一番気になったところでした。
●node-hid/node-hid: Access USB & Bluetooth HID devices through Node.js
　https://github.com/node-hid/node-hid

このページを見てみると、Windows・Mac・Linux のそれぞれの OS上で利用可能なもののようです。

### node-elgato-stream-deck
また、自分が所有しているものの、プログラミングと組み合わせることは想定していなかった「Elgato Stream Deck」と Node.js を組み合わせるライブラリ、そして WebHID のデモといったあたりも気になったところです。
●Julusian/node-elgato-stream-deck: A Node.js library for interfacing with the Elgato Stream Deck.
　https://github.com/julusian/node-elgato-stream-deck

https://julusian.github.io/node-elgato-stream-deck/

### 過去に試したもの・見てみたことがあるもの
その他、過去に試したことがあったり、見てみたことがあったもので、またあらためて見直してみたいと思ったものも書いてみます

#### Joy-Con に関するもの
こちらは Joy-Con を WebHID で扱うデモサイトで、過去に試したことなどがあったものでした。

●Joy-Con and HVCController (ファミリーコンピュータ コントローラー) WebHID
　https://tomayac.github.io/joy-con-webhid/demo/

<blockquote class="twitter-tweet" data-conversation="none"><p lang="ja" dir="ltr">こちらの <a href="https://twitter.com/hashtag/WebHID?src=hash&amp;ref_src=twsrc%5Etfw">#WebHID</a> ＋ Joy-Con のサンプルは、どこまでの機能を試せたんだっけ？<br>また見てみよう。<br><br>●tomayac/joy-con-webhid: Use the Nintendo Switch Joy-Cons via the WebHID API<br>　<a href="https://t.co/jo8AhUTGmq">https://t.co/jo8AhUTGmq</a></p>&mdash; you (@youtoy) <a href="https://twitter.com/youtoy/status/1446829415703347201?ref_src=twsrc%5Etfw">October 9, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#### DualShock 4 に関するもの
こちらは、つい最近記事に書いていた DualShock 4 を WebHID で扱うデモサイトです。

●WebHID DualShock 4 Demo
　https://thebitlink.github.io/WebHID-DS4/

●【完走賞ゲット-6】「WebHID DualShock 4 Demo」というサイトを軽く試してみる - Qiita
　https://qiita.com/youtoy/items/468454fe968ff3632511

## おわりに
WebHID周りの調べものをしていて見かけた「Awesome WebHID というページ」。
そこで見かけた情報は、深掘りしていくと面白そうなものがいろいろありました（ここから、また別の記事を書くネタが生まれるかなｗ）。

### 余談
上で出てこなかったもので、過去に自分が見かけて気になったものを、ここで書いてみます。
こちらは、Joy-Con を Web HID で扱うもので、上で出てきたものよりも、さらにいろいろな機能を扱えるデモページになっています。

https://twitter.com/youtoy/status/1446818085575401478

●トップページ | Joy-Con with WebHID
　https://aka256.github.io/joycon-webhid/

●Joy-Con Operation Tester | Joy-Con with WebHID
　https://aka256.github.io/joycon-webhid/pages/operation.html