p5.jsとPS4のコントローラ、Switchのコントローラ(Joy-Con)が接続できるか調べてみました。
ブラウザと各種ゲームコントローラがつながるので色々面白いことができそうです。
使用OSはMac(High Sierra)、使用ブラウザはChromeです。

p5.jsとPS4のコントローラを接続
あらかじめ、PS4コントローラのPSボタンとSHAREボタンを同時押しした後、Macの環境設定のBluetoothから「Wireless Controller」に接続してください。
デモページは以下です。
https://reona396.github.io/p5_gamepads_ps/
適当にボタン押したら反応すると思います。
押されたボタン名に枠が付きます。アナログスティックの動きは上部に反映させています。
接続方法は以下を参考にしました。
MacにPS4コントローラを接続して利用する方法 | Gerolian



コードはこちらのリポジトリに置いてます。
reona396/p5_gamepads_ps
スケッチのファイルだけ抜き出したものが以下です。

以下の記事のコードを参考にp5.jsに組み込みました。
Gamepad(Web API) 適当にテスト - Qiita
ボタンとアナログスティック(コード中はaxes)について、それぞれ別に管理しています。
ボタンに割り振られている番号が素直に並んでて良い感じです。

p5.jsとSwitchのコントローラ(Joy-Con)を接続
あらかじめ、両方のJoy-Conをモニターから外し、外した断面(?)のSR・SLボタンの間にある小さいまるいボタンを押してください。
ランプが光ったら、PS4と同じくMacの環境設定のBluetoothから「Joy-Con(L)」「Joy-Con(R)」に接続してください。
デモページは以下です。
https://reona396.github.io/p5_gamepads_sw/
ボタンが押されたら横の円に色がつきます。
デザインは以下の記事を参考にさせていただきました。
【P5 Tips】 ProcessingをNintendo SwitchのJoy-Conで遠隔操作する|タピオカ@ジェネラティブアート|note
スティック入力についてはもうだいぶ力尽きて適当な表示になってしまいましたが、
左黒丸がLスティック、右黒丸がRスティックの動きとしてニュートラル位置+8方向を反映します。



コードはこちらのリポジトリに置いてます。
reona396/p5_gamepads_sw
スケッチのファイルだけ抜き出したものが以下です。

以下の記事のコードを参考にp5.jsに組み込みました。
Adding Nintendo Joycon Support to Your Website with the Gamepad API
そもそもコントローラが2つもあったり、ボタンに割り振られた番号が素直な並びじゃなかったり、
スティックの方向も素直な向きじゃないので無理やり補正したり…とかなり苦労しました。実装も力ずくです。

まとめ
p5.jsと各種コントローラは接続できると確認できたので、ゲーム制作など色々と幅が広がりそうです。
ブラウザを飛び出して物理コントローラとつながるというのはロマンですよね〜