2021年8月14日土曜日

Seeeduino Xiaoでプロコンを使ってみた。

 Arduino USB Host Shield Library 2.0でNintendo Switch Pro Controllerのサポートが追加されていたのでSeeeduino XiaoでSAMD版のライブラリに移植して動くかどうか試してみた。

SAMD用のUSB Host LibraryはUSB Host Shield Library 2.0がベースなんだけど、最近は殆ど更新されていないので本家のライブラリから置き去りに…
PS5用コントローラサポートはむしろSAMD版のForkから本家に移植されているような流れかも。

ライブラリの構造も結構にているので移植は意外と簡単だった。
まずは単純にプロコンに関係していそうなファイルをそのままコピーしてみた。
SwitchProBT.h
SwitchProParser.cpp
SwitchProParser.h
SwitchProUSB.h
この4つのファイル。

するとプロコン用のボタンの定義(ButtonIndex)が無いので、controllerEnums.hを書き換えないといけないっぽい。これもそのまま使えそうだったので移植。(サポートしてないコントローラの分も追加されてしまうけどとりあえずそのままで…)

お次はMFK_CASTUINT8Tが定義されていない…
本家ではsettings.hで定義されているんだけど、SAMD版にはそもそもsettings.hがない。
ということでSwitchProBT.h内で定義してしまった。(適当…

あとはexampleのBluetoothの中のSwitchProBT.inoをコピーして、
USB Usb;をUSBHost UsbH;に
BTD Btd(&Usb);をBTD Btd(&UsbH);に
あとはUsb.をUsbH.に置き換えれば完成。

これをSeeeduino Xiaoに書き込んで前回同様に接続し(USBの電源を取るのがちょっと面倒だけど)適当なBluetoothドングルをつなげばプロコンが使える。

PS3とかPS4コンも結構いいけどPCでMacアドレス書き込んだりしないといけないのが面倒なのでプロコン結構便利だと思うんだけどなぁ
ESP32だとPS3とかPS4コンのArduinoライブラリはあるけどプロコンはIDF使わないとだめなのが少し面倒そうだし…

0 件のコメント:

コメントを投稿