Arduino: Controle SNES para USB

Intro

Quem já teve a oportunidade de brincar um pouco com o Arduino já deve ter percebido que ele não é bombril, mas tem 1001 utilidades! :P

Desde que surgiu o Arduino vem ganhando uma imensa legião de fãs pelo mundo, e não é a toa pois ele é tão versátil que é possível criar um pequeno robo seguidor de linha até mesmo controlar a automação de uma casa inteligente, por exemplo.

Esses dias eu estava procurando um adaptador de controle de super nintendo para USB, e para minha surpresa todos que achei a venda aqui no Brasil passava de R$ 90,00!!

Inconformado com esse preço abusivo por um coisa tão simples, decidi dar uma Googada e procurar como fazer isso com Arduino, acabei encontrando o projeto do Anthony Burkholder, que transforma o Arduino em um controle para o PC!

Material necessário:

  1. Arduino Uno R1, R2 ou R3
  2. Controle de Super Nintendo
  3. 5 fios jump (macho-macho)
  4. Sketch Arduino-SNES-Controller

Esquema de ligação

Snes Controller

SNES Pins

Segue uma tablea DE/PARA de ligação:

SNES Arduino
Pino 1 Pino 5V
Pino 2 Pino 6
Pino 3 Pino 7
Pino 4 Pino 12
Pino 5 N/A
Pino 6 N/A
Pino 7 Pino GND

Equema de ligação:

Esquema de ligacao

Instalação

Baixe o Sketch que será usado, descompacte e dentro dele instale os drivers do UnoJoy para seu sistema operacional:

  • MacOS : Diretório UnoJoy OSX
  • Windows: Diretório UnoJoy Windows

No meu caso, instalei os drivers para OSX, no path: ./UnoJoy OSX/YosemiteUnoJoyDrivers

Depois disso, faço upload do sketch snes/snes.io para o Arduino.

Se der tudo certo, podemos prosseguir para o próximo passo, que é fazer o Arduino ser reconhecido pelo PC como um controle, para isso é necessário fazer um patch no firmware do Arduino, para isso precisamos colocar o Arduino em modo DFU (Device Firmware Update).

Para isso é necessário fechar 2 pinos no Arduino, ICSP1 pinos 5-6. Pode fazer com uma chave de fenda ou algo metalico, ao fechar os pinos, uma luz amarela irá piscar indicando que o Arduino está em modo DFU.

Mais detalhes sobre o procedimento, assista o video original.

Com o Arduino em modo DFU, acesse o diretório dos arquivos baixados e rode o script UnoJoy/TurnIntoAJoystick.bat

Pronto, agora desconecte o Arduino do PC e conecte novamente e ele será reconhecido como um controle USB.

Se quiser conferir, execute o comando lsusb e veja se existe o dispositivo:

Bus 020 Device 027: ID 10c4:82c0 Silicon Laboratories, Inc. UnoJoy Joystick `

Agora é só configurar o seu emulador de sua preferencia e curtir os games!

Referências

Github do Autor: https://github.com/burks10/Arduino-SNES-Controller

Post original (Inglês) - https://blog.arduino.cc/2016/05/13/turn-your-snes-gamepad-into-a-usb-controller/

Video original (Inglês) - https://www.youtube.com/watch?v=93oCS9nF_y0

UnoJoy - https://github.com/AlanChatham/UnoJoy



<ESC>:wq!