Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance

Composants et fournitures

Outils et machines nécessaires

Applications et services en ligne

À propos de ce projet

Vidéo

Il est préférable de regarder la vidéo du projet d'abord.

Introduction

Cet article présente une "Manette de jeu USB DIY" sur laquelle nous avons travaillé récemment aux ElectroPunkz Labs.

L'idée est de créer une manette USB bon marché basée sur l'ATmega32U avec boutons et joysticks analogiques pour jouer à des jeux comme NFS, GTA, Half-Life, Little Fighter 2 ! etc.

Nous avons réalisé notre manette en deux formats : le premier basé sur une configuration PS1 ou SNES, et l'autre une manette USB style Xbox avec sticks analogiques et boutons (pas encore finalisée).

Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance

Nous allons réaliser la V1 dans cet article : la manette layout PS1 !

Matériel

Le matériel est assez simple et facile à trouver (sauf le PCB, vous pouvez faire le vôtre avec le fichier PDF joint du PCB).

Merci à UTSOURCE.net pour fournir les composants électroniques pour ce projet ! Vous pouvez consulter UTSOURCE.net, ils proposent tous types de composants électroniques, par exemple tous les composants utilisés dans ce projet !

PROCESSUS DE CONSTRUCTION (Câblage, assemblage, etc.)

La première chose à faire est de préparer la configuration de base : 12 boutons poussoirs connectés en configuration pull-down avec un Pro Micro, selon ce schéma :

Nous avons testé sur breadboard puis préparé un PCB selon le schéma ci-dessus.

Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance
Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance

Après avoir conçu le PCB (dans OrCad Cadence), nous avons imprimé son calque supérieur sur du papier glacé.

J'ai découpé le papier glacé selon la forme du PCB, je l'ai placé sur une plaque de cuivre et j'ai appliqué de la chaleur pour transférer l'encre du papier glacé vers la plaque de cuivre. (Méthode basique de transfert de toner, regardez ma vidéo sur ce sujet).

Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance

Après avoir préparé le PCB, nous l'avons plongé dans une solution de gravure, puis percé les trous pour les composants, et notre PCB MANETTE DE JEU DIY était prêt !

Ensuite, nous avons simplement placé tous les composants selon le schéma et le circuit était prêt.

Après avoir finalisé le circuit, nous avons conçu et imprimé en 3D le boîtier/coque du PCB pour la manette dans Fusion360.

Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance

Maintenant, il ne reste plus qu'à téléverser le code et jouer à des jeux avec.

Code

Téléversez le code fourni sur votre Pro Micro.

Conseil : Testez d'abord votre carte/configuration minutieusement, vérifiez la résistance et la connectivité des pistes du PCB car si quelque chose manque, cela causera beaucoup d'erreurs clavier car des lignes de masse manquantes enverront des signaux irréguliers aux broches et votre Pro Micro continuera d'appuyer sur des touches aléatoires, ce qui rendra la reprogrammation très difficile.

Test

La première chose à faire est d'ouvrir le Bloc-notes, et d'appuyer sur les touches de votre manette pour vérifier si les bons caractères assignés s'affichent.

Ou utilisez n'importe quelle application de test de clavier (web ou locale).

Si tout fonctionne selon le code, ouvrez n'importe quel jeu et commencez à jouer avec cette CONSOLE DE JEU DIY !

Améliorations futures

La première chose que j'ajouterai à cette configuration est des joysticks analogiques pour jouer à des jeux qui utilisent la souris pour naviguer le joueur, style MANETTE XBOX ONE.

La V2 aura un PCB proper avec layout manette Xbox One, restez à l'écoute !

Laissez un commentaire si vous avez des questions !

Code

CODE (C/C++)

#include <Keyboard.h>
int WPin = 2;   // HAUT
int SPin = 3;   // BAS
int APin = 4;   // GAUCHE
int DPin = 5;   // DROITE
int UPLpin = 7; // haut gauche Q
int UPRpin = 9; // haut droit E
int Xpin = 14;  // X
int Apin = 10;  // I
int Ypin = 15;  // Y
int Bpin = 16;  // B

void 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); }
}

Pièces personnalisées et boîtiers

Fichiers de conception Fusion360 pour le boîtier de la manette.

Schémas

Schéma électrique et fichiers PCB disponibles dans les pièces jointes.

Processus de fabrication

  1. Construire un jeu gyroscopique temps réel avec Arduino Nano et capteur MPU-6050
  2. Dé numérique Arduino sur écran LCD 16x2 – Générateur aléatoire à bouton poussoir
  3. Jeu Tetris sur Matrice LED 16×8 DIY avec Arduino Nano
  4. Bouteille d'eau intelligente Arduino : Suivi temps réel et alertes
  5. Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano
  6. Contrôleur domotique Arduino compatible Alexa : Automatisation intelligente simplifiée
  7. Jeu Pong sur Matrice NeoPixel avec Arduino Nano
  8. Gant intelligent geste-vers-texte pour langue des signes
  9. Jeu Pong 1D avec Arduino et bande LED WS2812 – Tutoriel DIY pas à pas