見出し画像

キーボードジョイスティックのプログラム書き換え方法(キーボード出力)

どうも、マサヨシと言います。
キーボードジョイスティックというデバイスを売っています。

弊デバイスの見た目

海外のGMKというメーカーが作っているデバイスにインスピレーションを受けて作ったものです。
メルカリや、Boothで販売しています。

どうやら、フォートナイトでコントローラーとキーボード及びマウスとの併用がうまく動かなくなったようです。

■■■240525追記■■■
この記事で行う対策は恒久対策ではありますが、万人向けではありません。
もっと簡単に暫定対策をする方法としてjoy to keyやanti macroを使う方法が提案されています。そちらを先に試すことをお勧めします。
■■■■■■■■■■■■

そこで、従来のコントローラー出力のものをキーボード出力の変更する手順を公開いたします。

この記事の注意点は下記です。
・急いで書いているので、画像は流用しています。一部最新の情報と食い違う可能性があります。ごめんなさい。
・デバイスの分解が必要です。
・開発環境をインストールする必要があります。
・デフォルト品以外を購入の方はプログラムを書き換える必要もあります。
・わかんねー場合は、俺にDMしてください。

私のデバイスを買い直すのがもったいない方向けの資料です。


1,分解の手順

1-1,必要な道具

分解に必要な道具は六角レンチかドライバーです。
ねじの形を見て、六角の穴であれば幅が2.5㎜の六角レンチを、十字の穴であればドライバーを用意してください。

1-2,分解手順

まず弊デバイスを裏返して、下の赤丸の部分のネジを緩めます。

新しめのバージョンのネジ位置
古めのバージョンのねじ位置

新しいバージョンではねじを外せばそのまま綺麗に分解できますが、古めのバージョンでは下記のようにスライドする必要があります。

スライドする様子

この状態になったらOKです。
戻したいときは逆の手順を行ってください。

ジョイスティックのコア部分

2,開発環境構築

パソコンにプログラムを書き換えるための開発環境をインストールしていきます。

2-1,Arduino IDEのインストール

弊デバイスはArduino互換機を使用して作っています。
ですので、Arduino用の開発環境を作る必要があります。
まず下記のページにアクセスします。


『SOFTWARE』を押します。

リンクの位置

PCの種類を選択します。(大半の人はおよそwindows10だと思います。)

ダウンロードオプションの位置

寄付をお願いされます。寄付をしたい場合は金額を、しない場合は『JAST DOWNLOAD』を押します。

JAST DOWNLOADの位置

ダウンロードしたものをクリックすると下記のような画面になるので、問題がなければ『同意する』を押してください。

インストール手順①

インストールするユーザーを聞いてきますので、どちらか好きなほうを選択し、『次へ』を押してください。

インストール手順②

インストール先がここで良いかを確認し、『インストール』を押してください。

インストール手順③

2-2,Arduino IDEの設定 日本語化

起動するといろいろインストールするか聞かれるのでOKを押します。
日本語化するために『Fire』→『Prefernses』を押します。

日本語化手順①

『Language』で『日本語』を選択して『OK』を押します。

日本語化手順②

これで開発環境の構築は終了です。

3,プログラムの書き換え方

3-1,プログラムの初期化

この作業はコントローラータイプをキーボードタイプに変更する場合のみ必要な手順です。

一度コントローラーとして書き込むと、プログラムを簡単に書き換えることができなくなっています。
一度初期化の状態にすることで、書き換えタイミングが簡単になります。
少し複雑な手順ですので気を付けてください。

名前を付けて保存で、適当な場所にファイルを保存します。

名前を付けて保存

キーボードジョイスティックをパソコンに接続してから、GNDとRSTと書いた部分を金属の棒などで触って導通させます。これをリセットすると呼称します。
リセットして、7~8秒以内に『Arduino Leonardo』と表示される部分からポートを選択します。(ポート番号は環境によって異なります。名前で選択してください。)

リセットの様子
ポートの選択

再びリセットを行い、7~8秒以内に『→』ボタンを押します。

初期化の書き込み

『Waiting for upload port…』という表示が出たら、もう一度リセットをします。
これで初期化は完了します。

再びリセット

3-2,プログラムの書き込み

『ツール』→『ボード』→『Arduino AVR Boards』→『Arduino Leonardo』を押して、ボードを選択します。

ボードの位置

『Arduino Leonardo』と表示される部分からポートを選択します。

ポートの選択

後述されるプログラムソースを開いて、『→』ボタンを押して書き込みます。

ソースの置き換えと書き換え

4,プログラムソース

下記がプログラムソースです。

4-1,オプションスイッチがある場合のソース変更点

オプションスイッチがある場合は、下記の『//』を削除します。『//』はコメントアウトの記号です。
オプションスイッチが1個の場合は、『//#define SW2』の『//』を削除、2個の場合は『//#define SW3』の『//』も削除といった具合です。
ちなみに、SW1はスティック押し込みのことを指しているため、SWは2からカウントしています。

//#define SW2
//#define SW3
//#define SW4

4-2,オプションスイッチとスティック押し込みの割り当て変更

オプションスイッチとスティック押し込みの割り当てを変更したい場合は、下記の部分を修正します。

 #define  SW1_OUT '0' #define  SW2_OUT '9' #define  SW3_OUT '8' #define  SW4_OUT '7'

'0'等の部分を変更することで、ボタンの割り当てを変更できます。
特殊なキーを割り当てたい場合は下記を参照してください

4-3,ジョイスティック閾値の変更

ジョイスティックの感度を変更したい場合は、下記の部分を修正します。
511が100%としたときの切り替わってほしい位置の数字を入力します。
小数点が使えないため、気を付けてください。

 #define  LOWER_THRESHOLD 170 //0.333*511
//#define LOWER_THRESHOLD 102 //0.2*511
//#define LOWER_THRESHOLD 77 //0.15*511

4-4,ジョイスティックの前方変更

弊デバイスは真横に倒すことで前進の出力を行いますが、方向を切り替えたい場合、またはジョイスティックがデフォルトタイプではない場合にはこの部分を切り替える必要があります。
また、矢印タイプか、WASDタイプかを切り替えるのもここです。

WASDのタイプの場合

 #define  W_OUT 'w' #define  A_OUT 'a' #define  S_OUT 's' #define  D_OUT 'd'

矢印タイプの場合

 #define  W_OUT KEY_UP_ARROW #define  A_OUT KEY_LEFT_ARROW #define  S_OUT KEY_DOWN_ARROW #define  D_OUT KEY_RIGHT_ARROW

上に倒して前進させたい場合(矢印タイプ)

 #define  W_OUT KEY_DOWN_ARROW #define  A_OUT KEY_RIGHT_ARROW #define  S_OUT KEY_UP_ARROW #define  D_OUT KEY_LEFT_ARROW

取り急ぎこんな感じです。

この記事が気に入ったらサポートをしてみませんか?