みんな大好きなDS4ことPlaystation4コントローラ「DUALSHOCK 4」。
ドライバも解説記事も沢山あって簡単にROSに繋がり、有線でも無線でも使えたことでロボット用コントローラとして市場を席巻していた(私見)便利なやつですが、ついに店頭でもネットでも全然手に入らなくなってしまいました。悲しみ😢
互換品の安いやつでも動くかもしれませんが、PS4に繋ぐならともかくROSに繋ぐのに博打は打ちたくありません。
というわけでその辺に転がっていたNintendo Switch用コントローラ「プロコン」を使ってみることにしました。
dkms-hid-nintendoのインストール
環境はUbuntu18.04です。他の一般的なマウス等がBluetoothで接続できることは確認済みです。
プロコンはそのままではペアリング候補にも挙がってきませんでした。
どうやらドライバが無いようでしたのでdkms-hid-nintendoをインストールすることにします。
もう一種類Ubuntuにプロコンを繋ぐためのソフトウェア的なものを見つけたのですが、こちらの方が実績ありそうでした。
インストール方法はここに書いてある通りでOKでした。
ただ、UEFIセキュアブートがenabledな場合(?)、面倒な要求が来ます。
スクショが無くて恐縮ですが、再起動時の設定を有効化するための8文字以上のパスワードを決める必要があります。適当に”aaaaaaaa”とかでもいいみたいです。
再起動実行後、見慣れない青い画面が出てきます。
「この変更を反映するけどほんまにええんやな?」的な確認のようです。
enroll MOKを選んでコンティニューし、さっきのパスワード入力してください。
間違えたり、このステップを飛ばすと、一旦hid-nintendoをアンインストールしなければなりません。
はじめこの画面の意味がよく分からず、以下のページに助けられました。ありがとうございます。
ちなアンインストールは以下のコマンドでできます。
sudo dkms remove nintendo -v 3.1 --all
バージョンは適当に合わせてください。
ペアリングして値を見てみる
早速ペアリングしてみます。
シンクロボタンを押すとペアリング待機状態(手前の4つのLEDがナイトライダー的に光る)になるので、その状態でUbuntuのBluetooth設定からペアリングしましょう。
ターミナルで「dmesg」とか打つと、入力デバイスとして認識されていることが分かります。
以下のページにアクセスするとブラウザで入力が見れてお手軽です。
自分の環境でやってみたところ、なぜかアナログスティックの上と右方向の反応が芳しくありませんでした。
最大値1.0が出ず、0.85前後でウロチョロします。
接続し直してみたりしても同じ。なんじゃこれ?
原因は分からなかったのでとりあえず上側にもデッドゾーン設ける的な対処で済ませました。
一度ペアリングしちゃえばあとは操作したいときに適当なボタン押せば勝手に繋がってくれるので利便性はとても高いです。
ROSのjoyパッケージでもちゃんと動作できました。
以上、DS4が入手できずお困りの皆さんはお試しください。
まぁ、サードパーティーのものに比べれば高いので、そっちでちゃんと動くものがあればそれで十分でしょうが……。
コメント