Olá Garagistas!!!
Neste tutorial iremos fazer um passo a passo de como transformar seu Arduino UNO R3 em um Joystick com o UnoJoy. Ele é totalmente compatível com as plataformas Windows, OSX e PS3, além de ser é capaz de simular todas as teclas do controle de PS3.
Iremos fazer todo o procedimento no Windows 7 x64
Lista de Materiais
1 x Joystick Shield
1 x Jumper
Softwares
No Windows você deve instalar o software Flip da Atmel (neste pacote já vem com JRE)
Baixe a pasta do projeto UnoJoy e descompacte onde preferir. Utilizamos os arquivos deste link:
Para outros sistemas operacionais veja a página do projeto.
Hardware
Neste tutorial a única montagem com Hardware necessária é colocar o Joystick Shield no Arduino Uno R3
Testando as teclas
Depois de instalar os softwares descritos acima e descompactar a pasta do UnoJoy, baixe este Sketch feito para o Joystick Shield e grave no seu Arduino.
Neste Sketch, fizemos algumas modificações no exemplo do UnoJoy para que funciona-se com o Joystick Shield.
Mantenha o Arduino Conectado na USB.
Agora execute o programa que esta na pasta que você descompactou o UnoJoy no caminho abaixo:
UnoJoyWin > UnoJoyProcessingVisualizer > UnoJoyProcessingVisualizer.exe
Ao fazer isto aparecerá esta tela.
Mexa o Joystick e você verá na tela as teclas sendo acionadas.
O botão Start pode ser acionado com um Jumper entre o pino D7 e o GND (deixamos ele no pino Aref pois não queremos o start sempre acionado).
Com a teclas testadas, retiramos o Arduino da USB e tiramos o Joystick Shield.
Transformando Uno em Joystick
Cuidados:
Reconecte o Arduino no PC e dê um curto nos pinos que são mostrados na imagem abaixo:
Tire o jumper de perto do Arduino para evitar curto-circuito (mas mantenha ele conectado ao PC).
Isto serve para poder ser reprogramado o chip de comunicação USB/Serial (ATmega8u2 ou ATmega16u2) e deixa-lo em modo DFU (Device Firmware Update).
No gerenciador de dispositivos o Arduino será reconhecido como mostra a figura abaixo:
Clique em:
UnoJoyWin > UnoJoyDriverInstaller.bat
E se o driver ainda não for instalado, mande procurar nesta pasta:
UnoJoyWin > Drivers
Instalado o dispositivo, certifique-se se você instalou o FLIP e execute o arquivo:
UnoJoyWin > TurnIntoAJoystick.bat
Uma tela como esta irá aparecer:
Desconecte o Arduino da USB e reconecte.
Clique no ícone do Windows e em Dispositivos e Impressoras.
Você verá que o Joystick esta instalado.
ATENÇÃO: Para reverter o processo, você deve repetir os passo do item "Transformando Uno em Joystick" e ao chegar no ponto de executar o arquivo "TurnIntoAJoystick.bat" execute "TurnIntoAnArduino.bat" que esta dentro da pasta do UnoJoyWin.
É isto pessoal!!! Agora configure seu UnoJoy em seu emulador preferido ou ainda em seu PS3 e ponha os dedos para trabalhar. Se gostaram do tutorial, ficaram com dúvidas ou tem algum comentário a fazer, deixe ele abaixo.
\o/
Referências
Comentar
olá boa tarde! estou fazendo um projeto de um volante com pedais usando o Arduíno Uno, para esse projeto comprei 4 potenciômetros sendo 1 multi-voltas de alta precisão de 2k linear para o volante e 3 potenciômetros B10k linear para os pedais, porem estou com dificuldades em estabilizar os potenciômetros no jogo, o volante e os pedais não estabiliza, dificultando o controle, já usei diversos Sketch e tutoriais no you tube, coloquei capacitores cerâmicos 104 e nada adiantou, não consigo calibrar em nenhuma tentativa, gostaria que alguém me ajuda-se!
Olá, estou utilizando botão a parte do módulo joystick... e estou com dificuldade, pois se eu colocar mais de 3 botões o arduino entra em curto. Não estou usando resistor nos botões, estou ligando do pino digital para o botão e do botão para o terra. Outra dúvida, estou criando um VR com MPU6050 mas não consigo zerar os parâmetros dele após o movimento da cabeça para cima por exemplo, como se eu quisesse ver o teto ou o céu do jogo... mas ele continua como se eu estivesse dando o comando no analógico e não para com minha cabeça parando, o analógico só retorno ao meio se eu centralizar minha cabeça e isso não tras sensação de VR...
Olá, eu fiz um volante com este projeto, jogava no ps3 e no pc com ele, agora tenho um xbox one, alguém pode me ajudar a funcioná-lo no xbox one?
Olá, quanto a transformar o arduino em joystick, gostaria de saber se com o arduino NANO v3.0(Microcontrolador: ATmega328), também seria possível mudar o modo como o PC o lê? de modo que reconheça-o como um controlador de jogos... sem que seja preciso programar...?
Agradecido!
Contribuindo o código abaixo eu fiz seguindo o do tutorial e fiz algumas alterações ele tem opção de usar 17 botões ou 15 botões e um manche ou 13 botões e dois manche. Basta comentar e tirar comentário de algumas linhas para a alterações mais vocês olhando o código vão perceber isto...
#include "UnoJoy.h"
void setup(){
setupPins();
setupUnoJoy();
}
void loop(){
dataForController_t controllerData = getControllerData();
setControllerData(controllerData);
}
void setupPins(void){
for (int i = 2; i <= 12; i++){
pinMode(i, INPUT);
digitalWrite(i, HIGH);
}
pinMode(A0, INPUT);
digitalWrite(A0, HIGH);
pinMode(A1, INPUT);
digitalWrite(A1, HIGH);
pinMode(A2, INPUT);
digitalWrite(A2, HIGH);
pinMode(A3, INPUT);
digitalWrite(A3, HIGH);
pinMode(A4, INPUT);
digitalWrite(A4, HIGH);
pinMode(A5, INPUT);
digitalWrite(A5, HIGH);
}
dataForController_t getControllerData(void){
dataForController_t controllerData = getBlankDataForController();
controllerData.triangleOn = !digitalRead(2);
controllerData.circleOn = !digitalRead(3);
controllerData.squareOn = !digitalRead(4);
controllerData.crossOn = !digitalRead(5);
controllerData.dpadUpOn = !digitalRead(6);
controllerData.dpadDownOn = !digitalRead(7);
controllerData.dpadLeftOn = !digitalRead(8);
controllerData.dpadRightOn = !digitalRead(9);
controllerData.startOn = !digitalRead(10);
controllerData.homeOn = !digitalRead(11);
controllerData.selectOn = !digitalRead(12);
controllerData.l1On = !digitalRead(A0);
controllerData.r1On = !digitalRead(A1);
controllerData.l2On = !digitalRead(A2);
controllerData.r2On = !digitalRead(A3);
controllerData.l3On = !digitalRead(A4);
controllerData.r3On = !digitalRead(A5);
//controllerData.leftStickX = map((analogRead(A0)),0,1023,0,255);
//controllerData.leftStickY = map((analogRead(A1)),0,1023,255,0);
//controllerData.rightStickX = map((analogRead(A2)),0,1023,0,255);
//controllerData.rightStickY = map((analogRead(A3)),0,1023,255,0);
return controllerData;
}
Ola! só para deixar registrado eu estava com o mesmo problema com meu Arduino UNO R3 (Não entrava em modo DFU ao fazer o jumper nos pinos indicados).
Depois de algumas pesquisas notei que o UNO R3 que eu estava usando não erra original.
Comprei outra placa Arduino UNO R3, porem desta vez comprei na loja do lab de garagem está chegou hoje e fiz todo o procedimento nesta placa para unojoy e funcionou tudo ok.
Moral final! Meu Arduino erra falsificado por este motivo não estava conseguindo colocar o UNO R3 como joystick... Quem sabe não e este o problema dos colegas... ai...
Estou tendo o mesmo problema UNO R3 não entra em modo DFU.
Se conseguiram diz ai o procedimento, pois o meu ao fechar o curto só reinicia e não entra em modo DFU.
Estou enfrentando o mesmo problema o migo ja conseguiu solucionar se sim me da uma força
Parabéns pelo post, muito bom, estava mesmo procurando informações sobre o unojoy em português, mais estou tendo um problema é por isso que venho aqui, ao fechar o curto no local indicado do arduino Uno ele da um reset e é novamente reconhecido como Arduino Uno R3, se souberem onde estou errando me ajudem resolver meu problema, isso vai mudar todo o projeto do meu TCC...Vlw e novamente parabéns pelo blog muito bom!!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)