ラズパイを使ってマウス入力をスイッチのジャイロに変換できるみたいなので試してみます。セットアップガイド的なやつです。
初めに
本記事では、unvirusさん制作の”proconcon”のセットアップ方法を解説します。
詳しいことは製作者様のGithubをご覧ください。また、本記事の内容に関して製作者に問い合わせることは迷惑になりますのでご遠慮ください。
また、本記事の内容によるいかなる損害(Banや故障)などについての責任は負いませんのでご了承ください。
必要なもの
コンバーター作成にあたって必要なものです。
- Raspberry Pi(4B推奨)
- USBバスパワー以外での給電手段
- マウス&キーボード
- パソコン(Windows/Mac/Ubuntu)
当然USBケーブルやOS起動用のMicroSD ネットワーク環境も必要です。
ラズパイ本体は4のModel B推奨みたいですが、私は5を持っているので5でやります。3とかでも多分行けそうな気がします。Picoとかでは動かないので注意してください。
2つ目の給電についてですが、スイッチ及びドックからの給電では電力が足りず起動しない可能性が高いので、別途何かしら電源を用意してあげる必要があります。
作者さんはPoE HATとPoE対応のハブを推奨していますが、そこそこ値が貼るのでUSB Type Cを分岐して通信と給電を分けれるケーブルを使うのが個人的おすすめです。
PoEハブはこちら
マウスはなんでもいいですが、できればDPI1600以上に対応で、サイドボタンがあるものが望ましいです。
パソコンはOSの書き込みに使います。頑張ればChromebookやAndroidでも不可能ではなさそうですが、できればちゃんとしたPCが好ましいです。
あればうれしいもの
- プログラミング経験(できればC系列)
- KVMスイッチまたは複数台のキーボード/マウス(PCと都度差し変える手間を省くため)
ラズパイの設定
OSのインストール
Raspberry Pi Imagerをダウンロード&インストールします。
ソフトを開けたら、お使いのデバイス/OS/書き込むMicroSDカード を選びます。
OSについては、一番上にでてきたやつで問題ないと思います。64Bitでも32Bitでも問題ないはずです。
次へを押すとOSにカスタム設定を適用しますか?的な確認が出てくるのでまずは編集するを選びましょう。
ユーザー名やWiFiの設定をできます。この辺りはご自身の好みや環境に合わせて設定してください。
キーボードレイアウトは、日本語配列なら”ja” 英語なら”us”を選択します。
保存をして”はい”を押して進んでいくと書き込みが始まります。しばらく放置すれば終わるので気長に待ちましょう。
書き込み終わったら確認が入りますが、待てなかったらやめるを押しても問題ないです。
USBガジェットの設定
書き込めたらconfg.txtとcmdline.txtを編集します。
どちらも書き込んだMicroSDカードの一番上の階層にあるので、開いて編集します。
config.txtの最後に1行追加して
dtoverlay=dwc2
cmdline.txtの最後に空白を1つ空けて
modules-load=dwc2
を追記しましょう。できたらMicroSDカードを挿入して起動します。
起動したらターミナルを開き
sudo nano /etc/modules
と打ち込み、一番下に行を追加して、libcomposite と打ちます。
Ctrl+O→Enter→Ctrl+Xと入力して書き込み終了します。
ラズパイの設定
proconconの準備
ラズパイのブラウザでhttps://github.com/unvirus/proconconにアクセスまたは”proconcon github”と検索してGitHubのページに飛び、緑色の”Code”をクリックしてメニューを開き、Download ZIPを選びましょう。
ダウンロードできたらファイルマネージャーを開き、Donwloadsフォルダに進むと、先ほどダウンロードしたzipファイルがあるので、右クリックしてExtract Toを選択します。
出てきたフォルダを開いて、
ファイルマネージャー上のタブからTools→Open Curent Folder in Terminalを選択し、
ls /dev/input/by-id を実行
この中から、お使いのキーボード/マウスのidをそれぞれCtrl+Shift+Cでコピーします。
キーボードは”キーボードの名前…-event-kbd”
マウスは”マウスの名前…-event-mouse”です。if01-event….は違うので注意してください。
続いてproconcon.cを開き、130,133行目の#define KEYBOARD(MOUSE)_NAMEの後の” “内の文字を先ほどコピーしたものに書き換えます。間違って””を消したり改行やスペースを入れてしまうとエラーになるので注意してください。
二つとも出来たら保存して終了します。また、キー割り当てや感度の設定などもこのソースファイル内から出来るのでCが理解できるなら試してみましょう。今回はこのまま進みます。
gcc proconcon.c -o proconcon.out -l pthread -lm -O3 -Wall
を実行します。ここでエラーが出たらさっきの作業でどこか間違えているので見直しましょう。
ここでターミナルを一旦閉じて、”proconcon.out” “load_procon,sh” “flashrom.bin” この3つのフォルダをhome/(ユーザー名)の中にコピーしましょう。
このような形になればOK。ここでターミナルをまた開き、
sudo chmod 777 load_procon.sh
sudo chmod 777 proconcon.out
sudo apt install update
sudo apt install xxd
をそれぞれ実行。これでproconconの用意は終わりです。
CLI起動に変更
GUI起動でも動きはしますが、マウスカーソルが動いて予期せぬ問題が発生する可能性があるので、CLI起動に変更します。
左上のアイコンから Preferences→Raspberry Pi Configurationと進み、BootのところをTo CLIにチェックを入れればOKです。
できたら再起動しましょう。
GUIで起動したいときた、CLI起動後にstartxと入力するとGUIに切り替わります。
起動
ここまで問題なく設定ができていれば、後はSwitchに繋いで起動するだけです。ドックの給電能力では恐らく起動しない(特にPi5)ので、前述した分岐ケーブルやPoE Hat GPIO給電が必須です。
ラズパイをSwitchのUSBポートと繋げて起動しましょう。
CLIで立ち上がるので、そのまま
sudo ./load_procon.sh
sudo ./proconcon.out
この二つのコードを実行すれば無事スイッチ上で認識するはずです。Switchの設定上からProコントローラーの有線通信 の設定を有効にすることを忘れずに。
実際に試してみましょう。片手で撮影しながら撮ったのでかなり雑ですが、試し打ち上での射撃動画を下に載せています。
左右は非常にいいレスポンスですが、上下はやや反応が悪いような気もします。
ワイパーと相性がよさそうでしょうか?
プログラムを閉じるときはCtrl+Cで閉じれます。ゲーム中に間違えて閉じないように注意しましょう。
最後に
ラズパイ5を使ってスイッチのジャイロを再現できるコンバーターを作ってみました。
試す際は自己責任でコッソリ行ってください。
Super Thanks:proconcon製作者 unvirus様
コメント