Arduinoジョイスティック
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
| |||
| ||||
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
Arduinoジョイスティック+フライングクリエーション <図>
この記事では、Arduinoを使ったプロジェクトを実現します。具体的には、ジョイスティックを模したハンドルを作ります。
これは、Steamで使用できるコントローラーのようなものです(デジタル著作権管理、マルチプレイヤー、通信モード)。このプロジェクトを実行することは情熱的なレースだと思いました。常にキーボードまたはジョイスティックで遊んで、ドライビングシミュレーターを比較するためにアマゾンに行ったのと同じでしたが、価格は少し高かったです。私は私が楽しんだ数日でした。このプロジェクトを改善する方法について何か提案があれば、遠慮なく私に連絡してください!!!
Arduinoをコントローラーに変えるつもりですか?
この記事では、Arduino通信チップをフラッシュしてUSBゲームパッドとして認識できるようにする予定です。手順は安全で元に戻すことができますが、問題や誤動作が発生した場合、私はいかなる状況においても責任を負いません。
まず、最新バージョンのUnoJoyをダウンロードします。これは、特別なファームウェアのおかげで、USBジョイスティックとして検出可能なデバイスに変わるライブラリです。 UnoJoyを使用するには、最初に、ダウンロードしたフォルダーにあるInstallUnoJoyDrivers.batファイルを実行して適切なドライバーをインストールする必要があります。
また、Arduino通信チップのファームウェアをフラッシュするために、「UnoJoy」ライブラリで使用されるATmelFLIPツールをインストールする必要があります。
Arduinoにファームウェアをロードしますか?
まず、ArduinoをDFU(デバイスファームウェアアップデート)モードにして、USBソケットの隣にある6つの突き出たピンのグループのさらに前にある2つのピンの間をステップします(写真の2つのピンを見ることができます)。 Arduinoのファームウェアをフラッシュしました。 2つのピンを接触させることにより、さまざまなArduinoLEDが短時間点灯します。ここで、UnoJoy TurnIntoAJoystick.batのファイルを実行する必要があります。Arduinoコンピューターを切断して再接続すると、ArduinoではなくJoyStickとして検出されます。標準のArduinoに戻すための手順は同じですが、今回実行するファイルはTurnIntoAnArduino.batです。
シンプルなコントローラー <図>
コントローラーを構築するには、この場合、それがステアリングホイールの構造であるため、ピンA0に接続された10Kオームのポテンショメーターが必要になります(下の図を参照)。代わりに、コードをUnoJoyライブラリに転送するため、UnoJoy.hファイルをスケッチを保存するフォルダーにコピーする必要があります。
Steamでプレイ
XBOX360のゲームパッドとしてSteamを完成させ、仮想XBOX360用のゲームパッドにUSBコントローラーをマッピングできるプログラムがあります:x360ce。プレイしたいゲームに応じて、64ビットまたは32ビットバージョンをダウンロードします。解凍したら、ファイルx360ce.exeをゲームの実行可能ファイルを含むフォルダーにコピーし、コピーしたばかりのx360ce.exeを起動すると、USBジョイスティックが存在します。
ハンドルも作りたい場合は、YouTubeチャンネルでビデオチュートリアルを作成しました。以下のリンクがあります。
ご不明な点がございましたら、アドバイスからこちらからご連絡いただくか、YouTubeの動画の下にコメントを残してください。
将来のプロジェクトで更新されたものを返すには、チャンネルをクリックして「ここ」をクリックしてください!!
コード
- コード
コード C / C ++
/ * ArduinoUSBジョイスティックHIDデモ* // *作成者:DarranHuntパブリックドメインにリリースされました。アナログポートとデジタルポートを使用するための2014年3月25日のRICLAMERによる更新このコードはArduinoUNO(6軸および13ボタン)で使用されますこのコードはArduinoMegaと互換性があります。* // *インストールそれぞれにPOTをインストールするだけですアナログポート。 _Grnd _Analog _5VArduinoを使用します。この画像のように:http://arduino.cc/en/uploads/Tutorial/joy_sch_480.jpgボタンを設定するには、GNDとポートデジタル02〜13の下に好みのボタンスイッチを取り付けるだけです。 Flipを使用して、このファームウェアDFUを消去して書き込みます:https://github.com/harlequin-tech/arduino-usb/blob/master/firmwares/Arduino-big-joystick.hex ArduinoR3とAtmega16U2を使用しました。* /# undef DEBUG#define NUM_BUTTONS 40 //この値を変更する必要はありません#defineNUM_AXES 8 // 6軸をUNOに、8軸をMEGAに変更します。 UNOを使用している場合は、この値を変更する必要はありません。typedefstructjoyReport_t {int16_t axis [NUM_AXES]; uint8_tボタン[(NUM_BUTTONS + 7)/ 8]; //バイトあたり8ボタン} joyReport_t; joyReport_t joyReport; uint8_t btn [12]; int fulloff =0; void setup(void); void loop(void); void setButton(joyReport_t * joy、uint8_t button); void clearButton(joyReport_t * joy、uint8_t button); void sendJoyReport(joyReport_t * report); void setup(){//ピンを入力ボタンに設定for(int portId =02; portId <13; portId ++){pinMode(portId、INPUT_PULLUP); } Serial.begin(115200); delay(200); for(uint8_t ind =0; ind <8; ind ++){joyReport.axis [ind] =ind * 1000; } for(uint8_t ind =0; indaxis [ind]); Serial.print( ""); } Serial.println(); for(uint8_t ind =0; ind ボタン[ind]、HEX); Serial.print( ""); } Serial.println();#endif} //ボタンをオンにするvoidsetButton(joyReport_t * joy、uint8_t button){uint8_t index =button / 8; uint8_tビット=ボタン-8 *インデックス; joy-> button [index] | =1 < button [index]&=〜(1 <
カスタムパーツとエンクロージャー
volante_iDt4RqmPLZ.dwg volante_idt4rqmplz_hakHRvVNYD.dxf 回路図
製造プロセス