2009-03-31 9 views
14

私はXBox 360コントローラから入力を取得する必要があるプログラムを書いています。入力は、私が構築しているRCヘリコプターに無線で送信されます。XBox 360コントローラからの入力を取得するにはどうすればよいですか?

これまでのところ、DirectXのXInputライブラリ、またはXNAのInputフレームワークのいずれかを使用してこれを行うことができます。

他にも利用可能なオプションがあるのでしょうか?私のプログラムの範囲はかなり小さく、DirectXやXNAのような大規模なゲームライブラリをインストールしなければならないことは過剰なようです。さらに、私はプログラムがクロスプラットフォームであり、Microsoft特有のものではないことを望んでいる。

私はPythonのようなものでコントローラの入力を取得できますか?

編集いくつかのコメントに答えるために:

ヘリコプターが3同軸ペアに配置された合計6つのプロペラを、持っています。基本的にはthisと非常によく似ていますが、15,000ドルではなく1,000ドルほどです。オンボード処理にはArduino、ワイヤレス制御にはZigbeeを使用します。

360コントローラが設計されているため、360コントローラが選択されました。非常に人間工学的で、必要な制御入力がすべてあります。ヘリコプターのコントロールに精通している人にとって、左のジョイスティックは集合体を制御し、右のジョイスティックはピッチとロールを制御し、アナログのトリガーはヨーを制御します。アナログトリガは、360コントローラの大きな特徴です。 PSとそれ以外のほとんどの人はそれらを持っていません。

私はプロジェクト用のウェブページを持っていますが、それでもかなり疎です。私は全体の設計を文書化する計画を立てるので、最終的には面白いでしょう。
http://tricopter.googlecode.com
Googleノートでは、googlecodeプロジェクトのブログ機能をGoogleに提供していませんか?

可能であれば、360コントローラの入力プログラムをLinuxとWindowsの両方で実行したいと思います。結局のところ、私はコンピュータを通過する必要がないように(Arduinoのような)組込みマイクロコントローラボードにコントローラを直接接続したいが、それは現時点では最優先事項ではない。

+0

本当にxBox 360コントローラにする必要はありますか?なぜもっと標準的なコンピュータジョイスティックではないでしょうか。 360コントローラの特色は何ですか? – Kibbee

+1

ブログを終了したり、書き終えたら書き留めますか?あなたはそれにリンクする必要があります、私は興味があるでしょう:) – alex

+2

多分彼は360コントローラを所有していますが、標準のコンピュータジョイスティックではありません。 (私は個人的には標準的なコンピュータのジョイスティックを所有している人は誰も知りません) –

答えて

6

PyGameは、X360コントローラがPC上に表示するジョイスティックを読み取ることができます。

+0

PyGameはDirectInputを使って実際にスティックを読み取っていませんか?あなたがDInputを必要としないようにしたいのであれば、それはうまくいかないでしょう。 –

+0

私は昨晩PyGameを試してみました。私はかなり簡単にコントローラ入力を取得することができました。私はまだLinuxでそれをテストしていない。 – bengineerd

+1

PyGameは本質的にSDLの上にあるPythonレイヤーです。私はそれがdirectXの依存関係を持っているとは思わない。 SDLと同様に、力のフィードバックもできません。また、2つのアナログトリガを1つの軸として扱います。私はDirectInputが同じことをすると信じています。 XInputとXNAだけがフル機能の使用を許可します。 – bengineerd

1

実際、DirectXに依存関係を追加したくない場合は、プラットフォームSDKの古いWindows Joystick API - Windows Multimedia - > Joystick Referenceを使用できます。

標準のフリークロスプラフォームゲームライブラリは、もともとUnix(Linux)システムにWindowsゲームを移植するために書かれたSimple DirectMedia Layerです。これは非常に基本的で軽量なAPIで、各システムの機能の最小限のサブセットをサポートする傾向があり、ほとんどの主要言語にバインドされています。それは非常に基本的なジョイスティックとゲームパッドのサポート(例えば、力のフィードバックはありません)がありますが、あなたのニーズには十分かもしれません。以下のために、ライブラリは必ず、あまりにも重い重量であることについて懸念限り
http://code.google.com/p/monoxna/

:あなたが探していたクロスプラットフォーム機能を提供する

0

おそらくMono.Xnaライブラリが追加されましたゲームパッドのサポート、このオプションは本当かもしれませんが、将来的には素晴らしい視覚化の機会を開くことができます。

免責事項:私はmono xnaプロジェクトのステータスに精通していないため、まだこの機能を追加していない可能性があります。しかし、それでもなおオプションです:-)

8

それほど難しいことではありません。先ほど触れたように、SDLライブラリを使ってXboxコントローラのステータスを読んだり、あなたが好きなことをすることができます。

SDLチュートリアル:http://sdl.beuc.net/sdl.wiki/Handling_Joysticksがあります。これはかなり便利です。

  • 2つのジョイスティック:Xboxのコントローラは、以下があること

    • 左ジョイスティックは、軸0 & 1です。
    • 左トリガーは軸2です。
    • 右ジョイスティックは軸3 & 4;
    • 右トリガはそれらの5
  • 1ハット(Dパッド)
  • 11 SDLボタン
    • 2軸ジョイスティック中心は
  • 2つのトリガ(行為としてを押圧しています軸、上を参照)

今後のSDL v1.3では、力のフィードバック(別名h aptic)。

このスレッドは数年前のことだと思いますが、既に何かをしているので、この投稿は主に将来の訪問者に通知するものです。

関連する問題