RetroPieにプレステコントローラをGPIO接続にTry

joystick-1216816_1280
LINEで送る
Share on GREE
Share on LinkedIn

以前構築したPiStation(RaspberryPiをPlayStation筐体に入れ込んでRetroPieの組み込み)記事をバージョンアップさせたくて、USBコントローラ部分を使用するのではなく、プレステ筐体のコントローラを使ってできるように改造してみました。

IMG_3810

GPIOを使って行えば、コントローラ2つに対応できると考えられるので、その方向でTryしてみました。

下準備

基盤のチェックをしてみたところ、コントローラの接続部分と基盤のハンダが同じ構造になっている事が分かったので、各ポートを対象のピンに配線するようにしてみました。

IMG_3811

プレステコントローラの仕様も以下のページに記載があったので、参考にさせてもらいました。

pspadpin_2

Raspberry Piにプレステのコントローラをつなぐ SPIの詳細な利用方法

基盤にハンダ付け

9本の束を1コンと2コンの2束用意し、コントローラ基盤に直接ハンダ付けします。

IMG_3814

まず、線をカットし、いい感じに剥きだして、接続できるようにします。

IMG_3816

基盤にハンダ付けすると、こんな感じ。

IMG_3817

psx基盤の配線

ラズパイに繋いでみて接続テストをする。

IMG_3819

配線は色んなサイトに書かれているが、日本語サイトでは量が少ない。
GithubのRetropieページにかかれている内容でほぼ問題ないので、分かりやすく図に書いておくことにする。

スクリーンショット 2016-05-22 16.59.08

GPIOの配線

GPIOの接続はGPIO4を基準に行う。2コンはGPIO7になる予定

スクリーンショット 2016-05-22 17.10.12

GPIOの設定

そして、Retropieのsetting.shを起動して以下のように操作する。

設定画面の起動

「Setup / Configuration」を選択

スクリーンショット 2016-05-22 13.57.17

SNESをDisable

SNESDev (Driver for the Retropie GPIO-Adapter)
スクリーンショット 2016-05-22 17.23.47

Disable SNESDev on boot and SNESDev keyboard mapping.
スクリーンショット 2016-05-22 17.24.14

db9-gamecon ドライバのインストール

Gamecon & db9 drivers
スクリーンショット 2016-05-22 17.24.02

再起動

コントローラアクセステスト

GPIOセット

PSXは7番でGPIO4とGPIO7に設置するので、下記のようにコマンドする。

jstestコマンドで、キーの入力が確認できます。
パッドのボタンを押す度に画面の対象番号のON/OFFが切り替わるので、接続できているかどうかの確認ができます。
※ここで接続ができていない場合は、コネクタが疎通していない事が多いので、確認してください。

modprobeコマンドでエラーが出る場合

下記のようにコマンドを叩いてエラーが出る場合があります。
僕もこのエラーに1日半ぐらい悩まされました。

まず、上記のgamecon & db9ドライバのインストールができていない場合にこのエラーが出るので
setup.shを使って上記の操作を行なってください。
それでもエラーが出る場合は、RetropieのOSイメージが「RaspberryPi 1,0」のバージョンと「RaspberryPi 2,3」のバージョンがあるので
僕の環境では、このバージョンのインストールが間違っていたので、入れなおした所問題なくエラーが無くなりました。

起動時にGPIOを自動認識

ファミコンコントローラと同じ感じで以下のように修正

これで一通りの設定が完了です。
再起動して動作させてみましょう。

参考ページ

Sony Playstation (PSX) joystick controller port pinout

One comment

  • 起動時にどうしてもGPIOが認識されない場合で、コマンドでmodprobeを叩くと認識する場合は、下記の操作を行なってみてください。

    このように記述する事で起動後に強制的にコマンドを叩くことができます。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*