Volante joystick de PS2 com Arduino Leonardo
Após meu pai me desafiar, resolvi elaborar esse projeto de volante que funciona com um controle de PS2.
Falaremos sobre a atualização de um volante antigo de PC/PS2 para USB
Olá a todos! Aqui é o Leonardo Hilgemberg, o criador da AthenasArch.
Recentemente, embarcamos em um projeto empolgante - revitalizar um antigo volante de PC, tornando-o compatível com emuladores de PS2 ao conectá-lo via USB. Este projeto incrível foi desenvolvido usando a versatilidade do Arduino e, em breve, planejamos incorporar o ESP32!
Uma Nova Vida para o Antigo Volante de PC
Nosso objetivo era simples: tornar o volante de PC obsoleto novamente funcional, oferecendo uma nova vida a um dispositivo que, de outra forma, teria sido deixado de lado. Estou feliz em compartilhar que o projeto foi bem-sucedido, com nosso código fornecido funcionando perfeitamente para essa tarefa!
O Projeto ArduinoLeonardo-Joystick
O cerne deste projeto foi a utilização do Arduino Leonardo como um driver HID (Human Interface Device) para controlar joysticks de PS2. Utilizamos duas bibliotecas externas principais: a PS2X_lib.h e a Joystick.h. A primeira coleta os protocolos do PS2, permitindo que o Arduino interprete as informações, enquanto a segunda converte as informações do Arduino em um formato que o PC possa reconhecer como um dispositivo legítimo.
Quando se trata da organização do projeto, aqui está como dividimos as coisas:
src/: Aqui, você encontrará os arquivos de código desenvolvidos por mim e suas respectivas implementações, incluindo arquivos como main.cpp e outros arquivos .cpp e .h.
doc: Essa pasta contém arquivos e documentos importantes para o projeto.
lib: Aqui estão as bibliotecas completas, externas de outros desenvolvedores e do meu próprio trabalho.
test: Arquivos de teste do projeto.
examples: Exemplos de uso geral do projeto.
O Hardware
No Arduino Leonardo, adicionamos um LED de status ao pino 8. Este LED serve como um indicador visual do estado atual do Arduino:
LED desligado: O Arduino não reconheceu um controle.
LED piscando a cada 500ms: O Arduino reconheceu um controle e está funcionando perfeitamente no PC.
LED sempre aceso: O controle foi reconhecido pelo PC, mas perdeu a comunicação com o controle.
Desmontamos mais de 5 controles diferentes de PS2, volantes e até guitarras, todos seguindo uma ordem de cores consistente. Você pode conferir o diagrama de cores aqui.
O Projeto em Ação
E, é claro, nenhuma postagem de blog estaria completa sem algumas fotos do projeto em ação! Confira abaixo algumas fotos do nosso projeto ArduinoLeonardo-Joystick!