GamePort用CH Pro Sti...
 
通知
すべてクリア

GamePort用CH Pro StickのグリップをUSB仕様に改造する

7 投稿
2 ユーザー
0 Likes
92 表示
Naoki_NT3
(@naoki_nt3)
投稿: 283
メンバー Admin
Topic starter
 
 先頃CH Pro Stickを改造目的で購入された方がおられたので、配線について記します。ご参考になれば幸いです。
 
 CH Pro Stickは古いスティックでGame Port接続のものなのでグリップだけ外してボタンの配線だけ使います。このグリップには4個のボタンと4個の4方向スイッチがついているので合計20個のボタン操作が出来るのですが、このグリップの良いところはボタンマトリクスを作成するのに必要なダイオードが全てグリップ内に組み込まれているので後はグリップから出てくる配線を直接Arduinoに接続するだけで良いのです。
IMG 3987
(Arduinoは直接入力では12個のボタンしか接続できないので、ボタンマトリクスを使ってそれ以上の数のボタンを認識できるようにします。ボタンマトリクスについてはこちらのサイトを参照下さい。)
 
 なお、 私が初めてジョイスティックの改造に使ったThrustmasterのグリップは12個しかボタンがなく、内部的にもマトリクスは使っていなかったのでグリップ内のボタンから直接配線をはわせてArduinoに接続。その場合はArduinoのPIN番号とスイッチが一対一の対応をするのでスケッチも単純でした。
 
今回私が使ったスケッチはこちら
 
グリップからでてくる配線とArduinoのPin接続例
(Row)
Pin2
Pin3
Pin4
Pin5
 
(Column)
Pin6 ボタン
Pin7 Hat Switch
Pn8 Sum 4 way switch
Pin9 Left 4 way switch
Pin10 Right 4 way switch
 
 ArduinoのPin番号はこちらを参照ください。
 
 上記の接続先のPin番号は一例ですので接続Pinを変更した(間違えた)場合はそれに合わせてスケッチを書き直して下さい。それから、スケッチ上でボタン番号は0~19となっていますが、PC上ではスティック上のボタン1~20として認識されます。ボタン番号の付け方は自分の気に入ったように割り振ってもらえば結構です。もっともCondor側で設定をしてしまえば操縦するのにボタン番号は特に意味はないのでどうでもいいかなと思ったりします。
 
 さて、今回使用したArduinoスケッチはWimさんという方がYoutubeで公開しているbase codeを元にしてスイッチだけを設定するスケッチを作っています。20個のスイッチ入力以外にもポテンシオメータやロータリーエンコーダを追加することも出来るのでご希望の方はそちらのbase codeから作成を進めて下さい。
 
 なお、CH Pro StickにはHat Switchが付いているのですが、残念ながら私はまだArduinoを使ってHat Switchを設定する方法を見つけることが出来ていません。そのため、現時点ではHat Switchはあくまで4方向のスイッチとなっていることご了承下さい。(Hat Switchはおそらく8方向のHat Switchとして機能させるために隣り合わせの2方向の同時押しが出来るのですが、他の4方向スイッチは単独押ししかできず、両者では異なるスイッチが使われています。)どなたかHat Swich用のスケッチが判るかたおられましたらご教示ください。
 
 
【Arduinoスケッチの修正個所 オレンジ網かけ部分をお使いの設定に合わせて修正下さい】
//BUTTON MATRIX
//first change number of rows and columns to match your button matrix, 
//then replace all "?" with numbers (starting from 0)
byte buttons[NUMROWS][NUMCOLS] = {
  {0,4,8,12,16},
  {1,5,9,13,17},
  {2,6,10,14,18},
  {3,7,11,15,19}
 
};
 
//BUTTON MATRIX PART 2
byte rowPins[NUMROWS] = {2,3,4,5}; //change "?" to the pins the rows of your button matrix are connected to
byte colPins[NUMCOLS] = {6,7,8,9,10}; //change "?" to the pins the rows of your button matrix are connected to
 
【Arduino Pro MicroにFirmwareを書き込むための準備】
Arduino IDE:ArduinoへのFirmware書き込みソフト
Joystick Library:Arduinoでジョイスティックを設定するためのLibrary
Keypad Library:ボタンマトリクスを使うためのLibrary
 
 
 
Naoki_NT3

Image

 
投稿済 : 20/02/2024 10:35 am
(@yoshia_yon)
投稿: 14
メンバー
 

早速のご指導ありがとうございます。

まだ良く理解していないのですが、ネットで下記の記事を見つけて参考にしようかと思っていました。どう思われますか?

https://www.catv296.ne.jp/~myergo/gameport_joystick_conversion.html#3

 
投稿済 : 20/02/2024 7:38 pm
Naoki_NT3
(@naoki_nt3)
投稿: 283
メンバー Admin
Topic starter
 

 YONさん、情報ありがとうございました。このサイトは知らなかったです。まさに私がチャレンジしてたコントローラーの改造ですね。

  • MMJoy2については一度試してうまくいかなかったような気がします。ただ、何が問題だったのか覚えていないのでもう一度試してみようと思います。
  • 私の紹介した内容と決定的に違っているのがボタンマトリクスのColumnとRowが反対になっているところです。実はダイオードの向きを考えて紹介あったColumnとRowの組み合わせと同じ方法で設定してみたのですが、Joystick Libraryを使った設定では組み合わせを反対にしないとうまく動きませんでした。
  • 紹介いただいたサイトではダイオードを追加していましたが、CHジョイスティックのグリップでは追加する必要はなさそうです。このダイオードはボタンを2個以上同時押しする際に誤作動を防ぐための物なのですが、グリップ上でどのボタンや4方向スティックを同時押しすることが出来るかを考えてみると全部のスイッチにダイオードを付ける必要はないのだろうと思います。私はグリップ内部に装着されたダイオードだけで配線しましたがそれで問題なさそうです。CH社もその辺りを考えて必要なところにだけダイオードを付けていたのではないかと思います。ただ、CH Pro Throttleを改造した時にはグリップ内部だけではなく本体の基板上にも5個ダイオードが付いていたのでその先からArduinoに線を伸ばして接続しました。
  • MMJoy2ではVID(ベンダーID)、PID(プロダクトID)を自由に設定できるようですが、これらは機器ごとに製造者が取得しているものでArduino Leonardo(互換のPro Micro)はVID=0x2341, PID=0x8036となっています。かってな数値を入力して他のUSB機器とバッティングしても困るので、数値を変える場合は自家用のものに関してPIDを少しずつ変えていくのが良いのではと思います。

 取り急ぎ気のついたところを書いてみました。

 Naoki_NT3

Image

 
投稿済 : 20/02/2024 11:27 pm
(@yoshia_yon)
投稿: 14
メンバー
 

なるほど、とても難しそうですね。僕は何処かに隠れているArduino Pro Microを捜索中です(笑)

 
投稿済 : 21/02/2024 5:42 pm
Naoki_NT3
(@naoki_nt3)
投稿: 283
メンバー Admin
Topic starter
 

 改めてMMJoy2を使って設定してみたらHat Switchの設定も含めて結構簡単に設定できました。設定の仕方や注意事項をまとめたので添付します。皆さんの参考になれば幸いです。以前私が失敗していたところは添付資料の赤字部分だったみたいです。

 Naoki_NT3

Image

 
投稿済 : 01/03/2024 9:10 pm
(@yoshia_yon)
投稿: 14
メンバー
 

いつも素敵な情報の共有をありがとうございます。FFB2は以前から使っていましたが、CHのスティックもコンディションの良いものを手に入れたので、同様の改造を試みる予定です。

ほぼ同じタイミングでVKBの安いスティックも入手しまして、そちらの操作感も素晴らしいので、どちらを使って行くか迷ってしまいます。

 
投稿済 : 05/03/2024 10:30 pm
Naoki_NT3
(@naoki_nt3)
投稿: 283
メンバー Admin
Topic starter
 

 追加情報です。最初の投稿で以前に作ったのはThrustmasterのグリップと書いたのですが、良く見るとCH Productsの製品でCH Pro Stickのボタン少ない版でした。二つの4方向ボタンが普通のボタンになったもので筐体は全く同じものでした。まぁボタンが少ないことでArduinoのデジタルピンに直結できる単純な様式です。今回ChatGPTを駆使して改めてJoystick Libraryを使ったスケッチ作成に挑戦、ついにHat Switchの搭載に成功したのでスケッチを載せておきます。for構文を使うともっとスマートなスケッチになると思いますが力技で長ったらしいスケッチになってしまいました。

 もう一つおまけでMSFFB2をベースにCH Productsのグリップを取り付ける時に使ったスティック延長軸の3Dプリンター用のデータも載せておきます。MSFFB2取り付け側は溝が切られていて回転止めになっていて、グリップ側は圧着ねじ止めなので簡単に取り付け出来ます。後は好みで長さを調整してみて下さい。

 近いうちにまた近所のファブラボに行って長さの違うものを作ってみようと思ってます。どなたか延長軸が欲しい方おられましたら連絡下さい。材料代+送料でお作りします。なんと、私が今住んでる田舎の町では市がフィギア製造で有名な海洋堂とコラボしてファブラボを運営しているのです。

Naoki_NT3

 

P.S. MMJoy2のFirmwareをアップロードしたArduino Pro Microを元のFirmwareに戻そうとして失敗して文鎮化してしまったのですが何とか回復できました。Pro MicroのブートローダーにはArduino IDEについてくるCatarina-Micro.hexをアップロードしないと行けないようです。最初Catarina-Leonardoをアップロードして失敗してしまいました。

Image

 
投稿済 : 06/03/2024 2:04 pm
共有: