工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoゲームコントローラー

コンポーネントと消耗品

>
SparkFun Pro Micro-5V / 16MHz
× 1
Arduino Leonardo
× 1
SparkFunプッシュボタンスイッチ12mm
× 12
抵抗10kオーム
× 1
カスタムエッチングPCB
× 1
UTSOURCE電子部品
× 1

必要なツールとマシン

塩化第一鉄粉末
3Dプリンター(汎用)
ドリル/ドライバー、コードレス

アプリとオンラインサービス

>
Arduino IDE
Autodesk Fusion 360

このプロジェクトについて

ビデオ

イントロ

したがって、この投稿は「DIYゲーミングUSBコントローラー」に関するものになります。 最近ElectroPunkzLabsで取り組んでいます。

ここでのアイデアは、ゲームのプレイに使用できるボタンとアナログジョイスティックを備えた安価なAtmega32UベースのUSBコントローラーを作成することです

NFS、GTA、半減期、リトルファイター2! など

コントローラーは2つのフォームファクターで作成されています。1つはPS1またはSNES構成に基づいており、もう1つはアナログスティックとボタンを備えたストレートアップXbox USBコントローラーです(まだ完成していません)

<図>

この投稿では、PS1レイアウトコントローラーであるV1を作成します!

プロジェクトのビデオを最初に見る方が良いです-

材料

ハードウェアは非常にシンプルで入手が簡単です(PCBを除いて、PCBの添付PDFファイルを使用して独自に作成できます)

  • Arduino Leonardo / Pro Micro / Atmega32U
  • ボタン(ティックタックスイッチ)
  • カスタムエッチングされたPCB(ボタンマトリックスPDFが添付されています)
  • 10K抵抗器
  • ジャンパー線

ありがとう UTSOURCE.netは、このプロジェクトに電子部品を提供します! UTSOURCE.netを確認できます。たとえば、このプロジェクトで使用されているすべてのコンポーネントなど、あらゆる種類の電子部品を扱っています。

構築プロセス (配線、組み立てなど)

最初に行う必要があるのは、基本セットアップを準備することです。これは、基本的には、ProMicroを使用してプルダウン構成で接続された12個のプッシュボタンです。基本的にはこれです-

これをブレッドボードでテストし、上記の回路図に従ってPCBを準備しました。

<図> <図>

PCBを(OrCadケイデンスで)作成した後、そのTOPLayerのPDFを光沢紙に印刷しました。

光沢紙をPCBの形状に合わせてカットし、銅製のコート紙の上に置き、熱を加えて、光沢紙から銅製のコート紙にインクを転写します。 (基本的なトーン転送方法、このトピックに関する私のビデオをご覧ください)

<図>

PCBの準備ができたら、エッチング液に落とし、PCBをエッチングします。その後、コンポーネントと DIYゲームコントローラーPCB にドリルで穴を開けました。 準備ができました!

次に、回路図に従ってすべてをその上に置くだけで、回路の準備が整いました。

回路の準備ができたら、Fusion360のコントローラー用のPCBハウジング/ケースを設計して3Dプリントしました。

<図>

コードをアップロードして、ゲームをプレイするだけです。

コード

ProMicroで提供されているコードをアップロードします。

アドバイスの言葉、最初にボード/セットアップを徹底的にテストし、PCBトレースの抵抗と接続性を確認します。何かが欠落していると、接地線が欠落しているとピンに不規則な信号が送信され、プロマイクロが維持されるため、キーボードエラーが多く発生します。ランダムキーを押すと、Promicroの再プログラミングが非常に困難になります。

テスト

最初に行う必要があるのは、メモ帳を開き、コントローラーのキーを押し始め、プレスのキーが割り当てられた正しい単語を表示しているかどうかを確認することです

または、キーボードテストアプリまたはウェブアプリを使用します。

すべてがコードに従って機能している場合は、ゲームを開いて、このDIYゲームコンソールでプレイを開始してください!

ビデオを見る-

さらなる改善

さて、このセットアップに最初に追加するのは、XBOX ONE CONSOLEのように、プレーヤーをナビゲートするためにマウスを使用する適切なゲームをプレイするためのアナログジョイスティックです。

V2にはXBOXOne Controllerレイアウトを備えた適切なPCBが搭載されているので、しばらくお待ちください。

何か問題があればコメントを残してください!

コード

  • コード
CODE C / C ++
 #include  int WPin =2; // UP int SPin =3; // DOWNint APin =4; // LEFT int DPin =5; // RIGHTint UPLpin =7; //左上のQintUPRpin =9; //右上のXpin =14; // xint Apin =10; // iint Ypin =15; // yint Bpin =16; // bvoid setup(){pinMode(WPin、INPUT); pinMode(SPin、INPUT); pinMode(APin、INPUT); pinMode(DPin、INPUT); pinMode(UPLpin、INPUT); pinMode(UPRpin、INPUT); pinMode(Xpin、INPUT); pinMode(Apin、INPUT); pinMode(Ypin、INPUT); pinMode(Bpin、INPUT); digitalWrite(WPin、HIGH); digitalWrite(SPin、HIGH); digitalWrite(APin、HIGH); digitalWrite(DPin、HIGH); digitalWrite(UPLpin、HIGH); digitalWrite(UPRpin、HIGH); digitalWrite(Xpin、HIGH); digitalWrite(Apin、HIGH); digitalWrite(Ypin、HIGH); digitalWrite(Bpin、HIGH); Keyboard.begin(); } void loop(){if(digitalRead(WPin)==0){Keyboard.write( 'W'); delayMicroseconds(1); } if(digitalRead(SPin)==0){Keyboard.write( 'S'); delayMicroseconds(1); } if(digitalRead(APin)==0){Keyboard.write( 'A'); delayMicroseconds(1); } if(digitalRead(DPin)==0){Keyboard.write( 'D'); delayMicroseconds(1); } if(digitalRead(UPLpin)==0){Keyboard.write( 'q'); delayMicroseconds(1); } if(digitalRead(UPRpin)==0){Keyboard.write( 'e'); delayMicroseconds(1); } if(digitalRead(Xpin)==0){Keyboard.write( 'x'); delayMicroseconds(1); } if(digitalRead(Apin)==0){Keyboard.write( 'i'); delayMicroseconds(1); } if(digitalRead(Ypin)==0){Keyboard.write( 'y'); delayMicroseconds(1); } if(digitalRead(Bpin)==0){Keyboard.write( 'b'); delayMicroseconds(1); }} 

カスタムパーツとエンクロージャー

回路図


製造プロセス

  1. MPU-6050を搭載したArduinoジャイロスコープゲーム
  2. Arduino Digital Dice
  3. 自家製16x8マトリックス上のArduinoNanoTetr​​isゲーム
  4. Arduinoを搭載したウォーターボトル
  5. ピクセルチェイサーゲーム
  6. Alexaによってアクティブ化されたArduinoホームコントローラー
  7. NeoMatrix Arduino Pong
  8. スマートハンドグローブ
  9. WS2812LEDストリップを備えたDIYArduino1Dポンゲーム
  10. ArduinoDMX-512テスターコントローラー
  11. LEDルーレットゲーム