Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@mascii_k IoTLT vol.76 @YouTube WebHID APIでリングコン のセンサー値を取得してみた
Slide 2
Slide 2 text
自己紹介 ますきー (@mascii_k) (株)ビザスク フロントエンドエンジニア 前回登壇はIoTLT vol.33 (2017/11/16)
Slide 3
Slide 3 text
デモ
Slide 4
Slide 4 text
デモ ● 既にデモは始まっている ● ブラウザのコンソールでJSを実行し、リングコン でスライドを操作をしている
Slide 5
Slide 5 text
デモのコード ● Zenn, GitHubで公開中 https://zenn.dev/mascii/articles/ring-con-with-web-hid https://github.com/mascii/demo-of-ring-con-with-web-hid
Slide 6
Slide 6 text
どのように実現したか?
Slide 7
Slide 7 text
❌ Web Bluetooth API ❌ Gamepad API ○ ボタン・スティックの入力のみ取得可 ✅ WebHID API ○ Chrome 89 から利用可 ○ デバイスのすべての機能を利用できる (※ HIDのコマンドがわかっていれば) ブラウザAPIの選定
Slide 8
Slide 8 text
HIDコマンドわからない問題 ● Joy-Con(単体)のHIDコマンドは 2017年から調べられていた ○ WebHID APIでも使える ● リングコンを動かすための HIDコマンドは長い間わかって いなかった…
Slide 9
Slide 9 text
2021年、リングコンを操った者が現れる ● Windows向けの実装を発見 ○ リングコンの動き→スティックの動きに変換 できるもの ○ ソースコード(Visual C++)と実行バイナリが 配布されていた
Slide 10
Slide 10 text
WebHID APIでの実装に移植開始 ● まずは「Lチカ」でWebHID APIに慣れる
Slide 11
Slide 11 text
Chromeでセンサー値を受信する ● Ring-Con Driverのコマンドをトリガーに、 Chromeでのセンサー値の受信に成功した
Slide 12
Slide 12 text
Windowsなしでも動くようにする ● デバッグログとC++のソースコードを頼りに、 WebHID APIでの実装に移植ができた
Slide 13
Slide 13 text
IoTに必要なデバッグ術
Slide 14
Slide 14 text
IoTに必要なデバッグ術 ● Lチカは慣れるためにマスト ● 誰も試していない組み合わせに挑戦するとき ○ 確実に動く組み合わせを見つけテストする ■ 初期不良の可能性を排除できる ■ 正しく動くときの状態を把握できる ○ 徐々に理想像に近づけていく ■ 一度に多くの変更をしない ■ 飛躍しない
Slide 15
Slide 15 text
IoTに必要なデバッグ術 ESP32だと動かない! センサーの ライブラリ を修正 Arduino Unoなら動いた! https://qiita.com/mascii/items/4859767b5204ff70c2c9 ESP32でも動いた!
Slide 16
Slide 16 text
まとめ
Slide 17
Slide 17 text
まとめ ● WebHID APIは、リングコンのようなニッチな HIDデバイスをWeb上で利用可能にする ● 誰も試していない組み合わせが動くと楽しい ○ 必要なのは着実さであることを再確認