ホーム >> RSSセンター >> GamePort用CH Pro StickのグリップをUSB仕様に改造する

RSSセンター

  メイン  |  簡易ヘッドライン  

link Japan Virtual Soaring Club Japan Virtual Soaring Club (2024/11/2 18:41:30)

feed GamePort用CH Pro StickのグリップをUSB仕様に改造する (2024/2/20 10:35:03)
 先頃CH Pro Stickを改造目的で購入された方がおられたので、配線について記します。ご参考になれば幸いです。
 
 CH Pro Stickは古いスティックでGame Port接続のものなのでグリップだけ外してボタンの配線だけ使います。このグリップには4個のボタンと4個の4方向スイッチがついているので合計20個のボタン操作が出来るのですが、このグリップの良いところはボタンマトリクスを作成するのに必要なダイオードが全てグリップ内に組み込まれているので後はグリップから出てくる配線を直接Arduinoに接続するだけで良いのです。
549
(Arduinoは直接入力では12個のボタンしか接続できないので、ボタンマトリクスを使ってそれ以上の数のボタンを認識できるようにします。ボタンマトリクスについては こちらのサイト を参照下さい。)
 
 なお、 私が初めてジョイスティックの改造に使ったThrustmasterのグリップは12個しかボタンがなく、内部的にもマトリクスは使っていなかったのでグリップ内のボタンから直接配線をはわせてArduinoに接続。その場合はArduinoのPIN番号とスイッチが一対一の対応をするのでスケッチも単純でした。
 
今回私が使ったスケッチはこちら
550
 
グリップからでてくる配線と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から作成を進めて下さい。
https://youtu.be/wkY1NsbWj5I?list=PLACkwYMYeZAb31yan1cgX9JZ4YgHGpik7
 
 なお、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 = {
  {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 = {2,3,4,5}; //change "?" to the pins the rows of your button matrix are connected to
byte colPins = {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書き込みソフト
https://www.arduino.cc/en/software
Joystick Library:Arduinoでジョイスティックを設定するためのLibrary
https://github.com/MHeironimus/ArduinoJoystickLibrary
Keypad Library:ボタンマトリクスを使うためのLibrary
https://playground.arduino.cc/Code/Keypad/#Download
 
 
 
Naoki_NT3

execution time : 0.007 sec