目次:
- 用品:
- ステップ1:ライブラリをインストールする
- ステップ2:テストスケッチを作成して実行する
- ステップ3:図書館の有効性を確認する
- ステップ4:つまみとボタンをArduinoに接続する
- ステップ5:サムスティックをテストする
- ステップ6:値をライブラリに統合する
- ステップ7:最終結果をテストする
- ステップ8:詳細、バグなど
Arduino Leonardo、MicroまたはPro Microで使用されているチップATMega32u4には、カスタムUSB HIDディスクリプタを使用する機能があります。この機能により、Arduinoを一般的なゲームパッドにすることができます。
このライブラリにはPS2ゲームパッドを「シミュレート」するためのすべてのものが含まれています(2つのサムスティックと16のボタン)。
用品:
ステップ1:ライブラリをインストールする
ライブラリを正しく実行するには、Arduino IDE 1.6.6以降が必要です。
次にライブラリをダウンロードする必要があります。
すべてのデータと文書はGitHubリポジトリに保存されています。
github.com/GAMELASTER/ArduinoGamepad
ダウンロードするには、右側の「Download ZIP」ボタンをクリックしてください。
Documents> Arduino> librariesに「Gamepad」という名前の新しいディレクトリを作成し、ダウンロードしたZIPファイルの「ArduinoGamepad-master」ディレクトリからすべてのファイルをそのディレクトリにコピーします。
次にArduino IDEを起動すると、ライブラリのリストと例のリストにライブラリが表示されます。
ステップ2:テストスケッチを作成して実行する
画像のようにスケッチの例を開き、コンパイルしてArduinoにアップロードするだけです。
ステップ3:図書館の有効性を確認する
コントロールパネル> デバイスとプリンタの順に選択し、デバイスを検索します(私はArduino Leonardoです)>右クリック> ゲームデバイスの設定> プロパティ> テスト。
ボタンを段階的に有効/無効にしても、すべて問題ありません。
ステップ4:つまみとボタンをArduinoに接続する
ハードウェア、ArduinoとPCの間の実際の接続をテストするには、いくつかのボタンまたはつまみが必要です。
私は2つの親指+ 2つのボタン(親指を押すこと)を持っていて、それをPro Microに接続してArduinoスケッチを作ってみましょう。
Left Thumbstickを次の機器に接続しました。
- XからA2
- YからA3
- Z〜4
Right Thumbstickをに接続しました
- XからA0
- YからA1
- Zから3
ステップ5:サムスティックをテストする
tkkrlab.nl/wiki/Arduino_KY-023_XY-axis_joystick_module
シリアルモニタをコンパイル、展開、および開きます。
サムスティックを使って最小 - 最大まで動かしてみてください。クリックしてみてください。
サムスティックは違うことがあります。私には相対的な値があります。
軸の最小値は0、最大値は1000です。論理的には中心は500です。
私のサムスティックが問題になっているとき、中心はまだ(ほとんど)異なる値を持っています、それで我々が図書館との統合をするつもりであるとき、私たちは値の調整、安定化と最終フォーマットをしなければなりません。
そしてZ(押す)iは押されると0、解放されると1になります(これは真実ではなく、その反転、反転はINPUT_PULLUPを行います)。
ステップ6:値をライブラリに統合する
スケッチ:
github.com/GAMELASTER/ArduinoGamepad/blob/master/examples/ThumbsticksTest/ThumbsticksTest.ino
このスケッチでは、前の手順で参照したように、私は自分のサムスティックを統合しました。
それでは説明します。
- まずライブラリをインクルードする必要があります(7行目)
- 次に、すべての軸の中心値を定義する必要があります。デフォルトの中心になるので、すべて500に設定しました(10 - 13行目)。
- 値をフォーマットするための乗数を定義します。最大値は127なので、127を中心で割ると乗数になりますので、500(14行目 - 17行目)
- ゲームパッドクラスを初期化する(20行目)
- ピンモードを初期化する(23 - 28行目)
- サムスティックの調整が始まります(29行目)
- 変数を定義します。その他にも(72 - 73行目)
- しばらく…これは「サムスティックの軸を確認する」ためのもので、中央にある場合(74行目)
- 軸からアナログ入力を読みます(76 - 79行目)。
- 軸が "中央の領域"にあるかどうかをチェックする必要があります。私は100の範囲を選択しました(80行目から83行目)
- すべてが良いのであれば、8が良いことが再確認されるまでまた行きながら、我々は実際に本物の中心を得ます。 (84〜89行目)
- 軸の値をグローバル変数に設定し、すべての軸の乗数を再計算するので、realCenterを127で割った値になります。
- したがって、最初に軸の値を取得する必要があります。ここで、0は中心です。軸の値から軸の中心を引いたものです。
- それから軸乗数によるこの倍数
- そして安定させるために私達はそれを床に張ります
ボタンの数は上の画像で説明されています。
ステップ7:最終結果をテストする
コンパイル、デプロイしてゲームを始めましょう!
Mirrors Edgeを選択しましたが、Mirrors EdgeはXBOX 360ゲームパッドしかサポートしていません。これはX360CEをダウンロードすることで簡単に解決できます。
ステップ8:詳細、バグなど
このライブラリは私がカスタムハンドヘルドRaspberry Pi Retro Consoleを構築する私のプロジェクトの一部です。それが行われるときにここでInstructablesに投稿されるでしょう。今のところ私は私のブログで開発のブログを書いています。
ドキュメント、バグなどはGitHubにあります。
github.com/GAMELASTER/ArduinoGamepad/
それともコメントしてください。