Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho

Componentes e Materiais

SparkFun Pro Micro - 5V/16MHz × 1
Arduino Leonardo × 1
Chave Pushbutton 12mm SparkFun × 12
Resistor 10k ohm × 1
PCB Personalizado Gravado × 1
Componentes Eletrônicos UTSOURCE × 1

Ferramentas e Máquinas Necessárias

Pó de Cloreto Férrico
Impressora 3D (genérica)
Furadeira/Parafusadeira sem Fio

Aplicativos e Serviços Online

Arduino IDE
Autodesk Fusion 360

Sobre o Projeto

VÍDEO

INTRODUÇÃO

Este post é sobre um "Controle USB para Jogos DIY" no qual temos trabalhado recentemente no ElectroPunkz Labs.

A ideia é fazer um controle USB barato baseado no Atmega32U com botões e joysticks analógicos que pode ser usado para jogar jogos como NFS, GTA, Half-Life, LITTLE FIGHTER 2! etc.

Fizemos nosso controle em dois formatos: o primeiro baseado na configuração do PS1 ou SNES e o outro um controle USB estilo Xbox com sticks analógicos e botões (ainda não finalizado).

Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho

Vamos fazer a V1 neste post que é o Controle com Layout PS1!

É melhor se você assistir ao vídeo do projeto primeiro-

MATERIAIS

O hardware é bem simples e fácil de conseguir (exceto pelo PCB, você pode fazer o seu com o arquivo PDF do PCB anexado)

Obrigado UTSOURCE.net por oferecer componentes eletrônicos para este projeto! Você pode conferir UTSOURCE.net, eles lidam com todo tipo de componentes eletrônicos, como por exemplo todos os componentes usados neste projeto!

PROCESSO DE CONSTRUÇÃO(Fiação, montagem, etc)

A primeira coisa a fazer é preparar a Configuração Básica que é basicamente 12 Pushbuttons conectados em configuração Pull-Down com um Pro Micro, basicamente isto-

Testamos isso em uma protoboard e depois preparamos um PCB de acordo com o esquemático acima.

Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho

Após fazer o PCB (no OrCad Cadence) imprimimos a camada TOP em papel glossy.

Cortei o papel glossy no formato do PCB e coloquei sobre uma placa de cobre e apliquei calor para transferir a tinta do papel glossy para a placa de cobre. (Método Básico de Transferência de Tônner, assista meu vídeo sobre este tópico)

Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho

Após o PCB ficar pronto, mergulhamos em Solução de Gravação e gravamos o PCB, depois apenas furamos os furos para componentes, e nosso PCB DE CONTROLE DE JOGOS DIY estava pronto!

Então apenas colocamos tudo nele de acordo com o esquemático e o circuito estava pronto.

Após o circuito pronto, Desenhamos e Imprimimos em 3D o Gabinete/Caixa do PCB para o controle no Fusion360.

Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho

Agora só precisamos fazer upload do código e jogar alguns jogos com ele.

CÓDIGO

Faça upload do código fornecido no seu Pro Micro.

Palavra de conselho: primeiro teste sua placa/configuração completamente, verifique a resistência e conectividade das trilhas do PCB porque se algo estiver faltando isso causará muitos erros de teclado porque linhas de ground faltando enviarão sinais irregulares aos pinos e seu pro micro continuará pressionando teclas aleatórias o que tornará a reprogramação do Pro Micro muito difícil.

TESTE

A primeira coisa a fazer é Abrir o Bloco de Notas, e começar a pressionar as teclas do seu Controle e verificar se as teclas pressionadas estão exibindo as palavras corretas atribuídas.

Ou use qualquer app de teste de teclado web ou desktop.

Se tudo estiver funcionando de acordo com o código, abra qualquer jogo e comece a jogar com este CONSOLE DE JOGOS DIY!

Assista ao vídeo-

MELHORIAS FUTURAS

Bem, a primeira coisa que vou adicionar a esta configuração são Joysticks Analógicos para jogar jogos propriamente ditos que usam mouse para navegar o jogador, tipo XBOX ONE CONTROLLER.

V2 terá um PCB adequado com Layout de Controle Xbox One então fiquem ligados.

Deixe um comentário se tiverem algum problema!

Código

CÓDIGO C/C++

#include <Keyboard.h> 
int WPin = 2; // CIMA 
int SPin = 3; // BAIXO 
int APin = 4; //ESQUERDA 
int DPin = 5; //DIREITA 
int UPLpin = 7; //superior esquerdo Q 
int UPRpin = 9; //superior direito 
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); 
  } 
}

Peças Personalizadas e Gabinetes

Arquivos de design 3D para o gabinete do controle disponíveis no projeto original.

Esquemáticos

Esquemático do circuito e layout do PCB disponíveis nos arquivos do projeto.

Processo de manufatura

  1. Construa um Jogo em Tempo Real com Giroscópio: Arduino Nano + Sensor MPU-6050
  2. Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
  3. Construa um Jogo Tetris com Arduino Nano em Matriz LED 16×8 DIY
  4. Garrafa de Água Inteligente com Arduino – Monitoramento em Tempo Real e Alertas
  5. Pixel Chaser: Jogo LED Interativo de Um Toque com Arduino Nano
  6. Controlador Residencial Arduino com Alexa: Automação Inteligente Simplificada
  7. Jogo Pong Neon em Matriz NeoPixel com Arduino Nano
  8. Luva Inteligente de Gestos para Texto – Linguagem de Sinais
  9. Jogo Pong 1D com Arduino Nano e Fita LED WS2812 – Tutorial DIY Passo a Passo
  10. Controlador Testador Arduino DMX-512 – Kit Completo de Peças para Controle de Iluminação Confiável