blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Qual a diferença do Pro Micro?
  • Especificações da Placa
  • Projeto
  • Materiais
  • Desenvolvimento
  • Conclusão
  • Sobre o Autor
Projetos

Gamepad de PC: Arduino Pro Micro

Eletrogate 11 de agosto de 2020Atualizado em: 15 abr 2022

Introdução

Aqui no nosso blog já usamos e fizemos posts de diversas placas microcontroladas, que resultaram em vários posts legais e bastante aprendizado. Só para citar alguns exemplos, já utilizamos por aqui a placa:

  • Arduino Uno
  • Arduino Mega
  • Arduino Nano
  • Arduino Pro Mini
  • NodeMCU ESP8266
  • ESP-01

Hoje será a vez de apresentar uma placa sensacional, que é o Arduino Pro Micro!


Qual a diferença do Pro Micro?

Olhando rápido, ela parece muito ser uma fusão do Arduino Nano com o Arduino Pro Mini, pois ela é tão pequena quanto Arduino Pro Mini e ainda vem com o conector MicroUSB, que facilita nossa vida para mandar os programas (diferente do Pro Mini, não precisa de um conversor USB externo). Mas se formos olhar detalhadamente para ela, veremos que ela possui um Chip Atmega32U4, o que faz ela uma placa extremamente poderosa, muito mais que o Arduino Pro Mini.

Se caso você conheça a placa Arduino Leonardo, certamente saberá que ela é famosa justamente por conseguir emular dispositivos USB como mouse, teclado e outros periféricos, te dando a possibilidade de fazer com que o Arduino mande comandos para o computador e o “engane”, fazendo se passar por um humano.

O Arduino Pro Micro funciona exatamente como o Arduino Leonardo, tendo a vantagem de ser extremamente compacto. Você pode ter ficado na dúvida se isso significa que essa placa só serve para controlar o computador, certo? E a resposta é não! Tanto a placa Leonardo e a Pro Mini funcionam como qualquer outro Arduino para projetos gerais, mas essas possuem esse poder adicional.

A verdade é que o Arduino Pro Micro está para o Arduino Leonardo assim como o Arduino Pro Mini está para o Arduino Uno. Ambos funcionam como miniaturização da placa maior.

Se caso seu projeto precise/demande também várias portas analógicas, o Arduino Pro Micro pode ser a pedida certa também, porque ela possui 9 portas analógicas, contra 6 Arduino Uno.

 


Especificações da Placa

Aqui está as especificações da placa:

  • Microcontrolador: Atmega32U4;
  •  Regulador 5V integrado;
  • Tensão de operação: 5V;
  • Tensão de entrada: 5-12V;
  • Corrente Máxima de saída: 150mA;
  • Proteção de sobre-corrente e polaridade reversa;
  • Conexão USB; – Digital I/O Pins: 12 (dos quais 5 oferecem saída PWM);
  • Pinos de entrada analógica: 9;
  • Memória Flash: 32 KB (dos quais 2 KB são usados pelo carregador de inicialização);
  • SRAM: 2 KB;
  • EEPROM: 1 KB;
  • Clock Speed: 16 MHz;

E aqui é o seu pinout, com a função de cada pino:

Onde você pode observar os pinos de comunicação serial, SPI e I2C.

Se caso você entenda diagramas esquemáticos e queira dar uma olhada nos detalhes construtivos da placa no sentido de ligações elétricas, clique aqui. Clicou e não entendeu nada? Clique aqui e aprenda sobre diagramas esquemáticos


Projeto

Com a placa devidamente apresentada, vamos ao projeto de hoje. Imagina que chegou uma visita na sua casa, e é uma pessoa querendo jogar algum jogo no computador com você, mas você só tem um controle. O que fazer? Não seria legal você mostrar seus conhecimentos e montar ali mesmo na hora um controle completamente funcional e se divertir com ele?

O projeto do Joystick explorará as principais características do Pro Micro: Ser pequeno a ponto de ser encaixado em uma protoboard e conseguir simular para o computador um dispositivo USB do tipo Gamepad. Com isso, iremos utilizar coisas simples como pushbuttons e um joystick para fazer este projeto.


Materiais

  • 1 – Protoboard 400 Pontos
  • 1 – Arduino Pro Micro
  • 6 – Push Buttons
  • Jumpers em U
  • Barra de Pinos macho – 180°
  • Materiais para realizar soldagem

Desenvolvimento

Montagem

O primeiro passo é remover os pinos 90° que vieram no módulo original, e soldar no lugar pinos 180°, que você adquiriu

 

No meu caso, o módulo possuia ilhas de solda na parte superior, mas pode acontecer de o módulo ter ilhas somente na parte inferior, o que dificultará um pouco, mas dará para realizar a soldagem normalmente. Você precisará de um apoio para segurar o módulo e a barra de pinos, e realizar a soldagem por baixo, como na foto abaixo:

 

Créditos: Samuel Martins

 

Recomendo que você tire a peça preta depois da soldagem, fazendo ficar dessa forma:

 

Créditos: Samuel Martins

 

Com os pinos devidamente soldados, você poderá realizar a montagem abaixo, optando sempre por utilizar jumpers em U, ou fazer seus próprios jumpers utilizando fios regidos finos.

 

A montagem real ficou assim, se caso você queira se inspirar nela:

 

Com a montagem concluída, podemos partir para a programação do módulo.

Código

Para o projeto, iremos utilizar uma biblioteca desenvolvida pelo Matthew Heironimus, no qual o Github da biblioteca pode ser consultado clicando aqui.

Para fazer o download da biblioteca na versão que estamos utilizando, clique aqui.

Para instalar ela, vá na Arduino IDE em “Sketch> Incluir Biblioteca > Adicionar biblioteca .ZIP”

Selecione o arquivo “ArduinoJoystickLibrary-master.zip” e dê um abrir. A Arduino IDE irá instalar a biblioteca automaticamente.

Abra a Arduino IDE e copie o seguinte código:

/*
 * Gamepad com o Arduino Pro Micro
 * Eletrogate 2020   //   Arduino versao 1.8.12
 */

#include <Joystick.h>

#define Joystick_GND  21 // Setando o pino 21 como o GND do nódulo Joystick
#define Joystick_VCC  20 // Setando o pino 20 como o Vcc do nódulo Joystick
#define Joystick_VRX  A1 // Setando os pinos abaixo cada um com sua função
#define Joystick_VRY  A0
#define Joystick_SW   15
#define Button_B      5
#define Button_Y      4
#define Button_A      10
#define Button_X      16
#define Button_Start  3
#define Button_Select 2

// Criando um objeto do tipo Joystick, onde simulará um gamepad.
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,JOYSTICK_TYPE_GAMEPAD, 
  11, 0,                  // Quantidade de botões, Numero de Hat Switch
  true, true, false,     // Eixos X e Y no joystick, mas não o eixo Z
  false, false, false,   // Sem Rx, Ry, ou Rz
  false, false,          // Sem rudder ou throttle
  false, false, false);  // Sem acelerador, freio, ou direção
  
void setup() {
  Serial.begin(9600);
  pinMode(Joystick_GND, OUTPUT); // Setendo Joystick_GND como saída, já que ele deverá jogar o valor 0V para o módulo.
  pinMode(Joystick_VCC, OUTPUT); // Setendo Joystick_VCC como saída, já que ele deverá jogar o valor 5V para o módulo.
  pinMode(Joystick_VRX, INPUT); // Setando como entrada porque este pino deverá ler o valor do joystick
  pinMode(Joystick_VRY, INPUT); // Setando como entrada porque este pino deverá ler o valor do joystick
  pinMode(Joystick_SW , INPUT_PULLUP); // Todos os botões abaixo estão setados como INPUT_PULLUP, dispensando resistores.
  pinMode(Button_B , INPUT_PULLUP);
  pinMode(Button_Y , INPUT_PULLUP);
  pinMode(Button_A , INPUT_PULLUP);
  pinMode(Button_X , INPUT_PULLUP);
  pinMode(Button_Start , INPUT_PULLUP);
  pinMode(Button_Select , INPUT_PULLUP);
  digitalWrite(Joystick_VCC, HIGH);// Setendo o valor de 5V no VCC do Joystick
  digitalWrite(Joystick_GND, LOW); //Setendo o valor de GND no GND do Joystick
  
  Joystick.begin();
  Joystick.setXAxisRange(-127, 127); // Definindo os limites dos eixos do gamepad. Deixe esse valor padrão
  Joystick.setYAxisRange(-127, 127);
  
}

void loop() {
  //Setando os valores dos eixos e butões
  Joystick.setXAxis(map(analogRead(Joystick_VRY),0,1023,-127,127)); // Utilizando a função Map para que o sinal original de 0 1023 seja adequado a -127 a 127
  Joystick.setYAxis(map(analogRead(Joystick_VRX),0,1023,127,-127)); // Utilizando a função Map como no exemplo anterior, mas utilizando a vantagem da inversão
  Joystick.setButton(0, !digitalRead(Button_X)); // Como estamos usando INPUT_PULLUP, o valor precisa ser invertido.
  Joystick.setButton(1, !digitalRead(Button_A));
  Joystick.setButton(2, !digitalRead(Button_B));
  Joystick.setButton(3, !digitalRead(Button_Y));
  Joystick.setButton(9, !digitalRead(Button_Start));
  Joystick.setButton(8, !digitalRead(Button_Select));
  Joystick.setButton(10, !digitalRead(Joystick_SW));
  delay(10); // Um pequeno delay na ordem de fração do nosso movimento dos dedos.
}

A explicação de cada linha está nos comentários do código.

Para carregar seu código, selecione a opção “Arduino Micro”. Você poderá selecionar também a opção “Arduino Leonardo” se desejar.

Selecione a Porta COM correta, e envie o código. O computador irá fazer um sinal de que um dispositvo foi desplugado, mas não se preocupe, é comum.

O seu Sistema Operacional pode demorar alguns instantes para reconhecer e configurar o novo dispositivo, mas assim que identificado tudo estará pronto para ser testado.

 


Conclusão

Abra um jogo qualquer, configure os controles para o seu GamePad Arduino Micro com cada função individual, e se divirta. Se tudo deu certo, você poderá comemorar o fim do projeto fazendo igual eu, jogando Rayman Legends com seu controle novo.

https://blog.eletrogate.com/wp-content/uploads/2020/08/vid_20200810_172241.mp4

 


Gostou tanto a ponto de querer fazer um controle assim permanente para você? Que tal utilizar uma Placa Perfurada para você soldar tudo e ter o seu próprio controle DIY?

Você realizou a montagem e gostou muito? Posta lá no instagram e nos marca: @eletrogate 

Achou legal mas não entende nada sobre Arduino? Não fique triste! Agora temos um canal no Youtube fresquinho, e acabamos de lançar um vídeo falando sobre o que é Arduino, confere lá e se inscreve.

Dúvidas e sugestões, utilize a parte dos comentários! Não se esqueça de avaliar o post aqui embaixo.

Muito obrigado por ter lido até aqui. Abraços e até a próxima!


Sobre o Autor


Gustavo Nery

Cursando Engenharia de Controle e Automação pela UFMG. Apaixonado por eletrônica, computação e tecnologias na área de sistemas embarcados. Nos tempos livres me divido entre desenvolver pesquisa na universidade, adquirir novos conhecimentos e estar com a família.


Eletrogate

11 de agosto de 2020 Atualizado em: 15 abr 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2022 - Todos os direitos reservados. Termos de uso e Política de privacidade.