Joystick Arcade

Apr 21, 2024

Construye tu propio Joystick Arcade con Pro Micro

Mejor que Zero delay!

Tranquilo, a vos te va a salir mejor!!!


¿Qué vamos a utilizar?

Plantillas

Empecemos por conseguir las plantillas para elegir el diseño básico de nuestro Joystick

Este fue el que elegí, me pareció ergonómica la posición de los 4 botones, te quedan los dedos apoyados en cada botón, muy cómodo.

Una vez elegida la plantilla que te haya gustado, hay mas de 100!!!, paso siguiente es empezar a dibujar con precisión nuestro acrílico o madera, en mi caso tenía un pedazo de madera mdf de cotillón(Si tus botones se ajustan con rosca, podes usarla, si es con traba como los míos, olvídate! Utiliza una madera de verdad, igual sirve! pero se me hundió al colocar los botones, pero al ser de solo 4mm de espesor, no tuve problemas para re acomodarla). Recomiendo que al realizar los orificios coloquemos otra madera debajo, para que el final de la perforación quede prolijo, además hacerlo de la parte visual hacia la parte que contendrá las conexiones.

También podes imprimir la plantilla en tamaño real y simplemente agujerear donde corresponde, pero si no tenes ganas de imprimir y perder unos minutos más o darle más cariño al diseño, empieza por la ubicación del Joystick, teniendo en cuenta que por debajo no te quede mal o que luego no te encaje porque lo colocaste muy al borde. Además, da lugar de apoyo a tus muñecas, vas a estar jugando un buen rato, no querés causarte daño físico a largo plazo, dejando las muñecas en el aire(ergonomía tomada de la utilización del mouse) , si no me crees, lee la nota del hiperlink. Una vez elegida la posición del Joystick solo marca un punto(La punta de la mecha de paleta vino ideal para realizar una marca real, a mano), luego, lo dicho ahora es en base a mi elección, la tuya puede diferir, vemos en la plantilla que, el joystick está exactamente a la misma altura y paralelo al segundo botón, la distancia hacía la derecha la observamos y obtenemos 95mm+31.75mm. Aquí marcamos el punto principal de lo que serán nuestros botones, la altura la sacas de el diametro de tu botón los míos son de 30mm, hay chicos de 24mm, asi que, tengo un radio de 15mm que dibujaremos con el compás. Hecho esto, ya tendremos nuestro primer botón dibujado, acto seguido podemos tomar varias direcciones, en mi caso fui por el botón superior a este, el segundo de la fila superior, desde nuestro centro, el siguiente punto a marcar se encuentra hacía arriba, unos 18,25mm+9mm+9mm como podemos observar en nuestra plantilla, nuevamente, realizaremos con el compás, una circunferencia de radio 15mm, para exactitud podemos ayudarnos de una escuadra escolar de 90 grados o una escuadra de carpintería. 

Ahora, marcamos una línea entre estos puntos, y marcamos solo con el lápiz, de arriba hacía abajo, un punto a los 9mm, otro a los 18mm. Desde el punto de 9mm trazamos una recta perpendicular(90°) ayudados con la escuadra, hacía la derecha, no te preocupes por el largo. Trazamos otra línea, esta vez hacía la izquierda y hacía la derecha, ya que el primer y cuarto botón de la línea superior se encuentran a la misma altura, desde el punto marcado a los 18mm desde el centro del segundo botón superior.

Repetiremos el mismo procedimiento desde el centro del segundo botón de la fila inferior.

Trazamos los puntos centrales de los botones en las líneas trazadas, desde la linea a 9mm hacía la derecha, mediremos 35,5mm, para marcar el centro del tercer botón, de la fila superior, repitiendo lo mismo, para el tercero de la fila inferior.

Luego bajamos al punto que marcamos a los 18mm y hacía la izquierda medimos 31,75mm para marcar el centro del primer botón superior y hacía la derecha, 71mm para marcar el centro del cuarto botón de la fila superior, realizamos lo mismo, en la fila inferior. Luego marcamos el resto de circunferencias de radio 15mm con el compás en el resto de botones.

Marcado de puntos y dibujo de los círculos

Una vez trasladada la plantilla, procedemos a presentar los botones sobre nuestra plantilla, y si te convence, empezas a realizar las perforaciones, si no tenes perforador y estás usando mdf de 4mm como el que tenía, podes hacerlo a mano, con mucha paciencia.

Presentamos los botones sobre nuestra plantilla

Si no queda otra, a mano, con broca de pala de 30mm, para el joystick puede ser más chica.

Primeros agujeros, solo tenía broca de 28mm y una de 22mm que use para el Joystick

Al fin los agujeros hechos, pero...

Hubo que lijar los 2 mm restantes, además de suavizar los bordes.

Paciencia o comprate mejor los que traen rosca. Esa pestaña se cierra hasta los 30mm, luego se abre tras pasar el agujero, no hace falta realizar mucha fuerza, sigue lijando y probando, si no tenes la broca de 30mm.

Y un día más tarde... no no, 10 minutos después ya estaban todos los botones colocados(No use agujereadora)

Agregue un botón, a ojo, intentando que este paralelo y en fila con los botones, además corte el rectángulo que será la parte visual del Joystick, recordá dejar espacio para tus muñecas y para agregar botones.

Luego de presentarlo, o mejor antes, si mejor antes!!! Procede a pegarle un plotter lindo, en mi caso tenía un papel contact del proyecto de Radio WiFi, y lo use, y lo puse mal, se más prolijo, se puede!!!

Primer versíon, aun me faltaba conseguir botones

A la Izquierda, primer versión digamos:

Joystick, 8 botones, uno hace de Select y Hotkey, y el botoncito de Start.

A la derecha, Joystick, 8 botones, A, B , L1, R1, R3 fila inferior, Fila superior C, D, L2, R2, L3. Superior: Select, Start, Futuro Hotkey.

Luego de conseguir botones, puestos a ojo, intentando una fila a la izquierda, y un paralelismo con los botones. Salvedad, el primer botón que coloque, antes de conseguir el resto, tiene un diámetro de 12mm contra los 10mm de los demás, con lo cuál me quedo un botón sin ser leído por el programa aun.

Hasta aquí, hemos realizado la parte mecánica del Joystick, en la parte inferior, intenta colocar una caja de madera, con una base que sea pesada o hazla pesada, para que tengas cierta firmeza a la hora de realizar trucos en juegos de lucha en Neo Geo o Sega. No la realices de la misma superficie que la parte visual, aunque eso es cuestión de gustos, ahora, en lugar de desperdiciar una Raspberry Pi solo para esta tarea, utilizaremos un microcontrolador Pro Micro.

La electrónica

Clon de Sparkfun Pro Micro

Pinout del microcontrolador Atmega 32U4

Pinout Visual

Al utilizar este microcontrolador Atmega32U4, nos ahorramos tener que agregar una interfaz USB, en el caso de usar por ejemplo un PIC con capacidad USB HID, lo que no quita que puedas realizarlo con otro microcontrolador, pero en este articulo usamos el Pro Micro.

Por otro lado, he elegido, crear cables con sus terminales pala y dupont, por la simplicidad para el cambio de una parte defectuosa, igualmente puedes optar por soldar los cables al Pro Micro y a cada botón, incluido los del Joystick, aunque ya trae su cable y terminal.

Los terminales  pala a terminal hembra dupont(Cable Naranja) y un GND Comúna cada botón, comenzando en un Hembra Dupont(Cables Negro), todos soldados solo a la terminal pala y sujetados los cables con las pestañas que poseen los terminales pala hembra.

Cortando un cable dupont, dejando la parte hembra sana para poder conectar a la placa Pro Micro, y el extremo cortado soldado y sujetado a la terminal de pala hembra

Armaremos 12 cables como éste, para GND soldaremos cables entre cada Terminal pala hembra y solo saldrá uno hacía la Pro Micro. Para el Joystick podemos usar simples dupont Hembra-Hembra, o el que viene más dupont Macho-Hembra.

Conexiones:

Basados en la documentación original, pero podemos cablear como deseemos.

Ejemplo de la documentación.

Por si no te quedaba clara la documentación oficial, mi manera de documentarlo.

Una vez realizadas las conexiones, tenemos, por el código, un límite de 12 botones, lo cuál no quiere decir que no puedas mejorarlo y poner más botones, además, se pueden utilizar sin problemas menos botones, para Atari solo bastan 2 botones.

Código:

Lo descargamos del github oficial, aquí solo lo muestro para comodidad, la única modificación realizada, fue cambiar:

Porqué el Joustick pegaba saltos en el menú de EmulationStation, pesé a funcionar perfectamente en los juegos y en RetroArch.  

Una vez cargado el código en Arduino IDE, la placa será vista como un Arduino Leonardo. Una vez subido el Sketch ya estamos listo para probarlo, directamente en nuestro RetroPie, Recalbox, Batocera, BoBcera, Pi Wizzard, PC, PlayStation, Xbox, NeoGeo, etc. Obviamente, luego, en cada emulador debemos configurar los botones a nuestro parecer y guardar la configuración por cada consola.

Espero muchos logren armarse uno y comprobar que es mejor que usar la zero delay o desperdiciar una Raspberry Pi, además que nos servirá para cualquier consola ya que es detectado como un USB HID. En el futuro, tal vez haya una extensión del tutorial explicando un poco la declaración de los pines en el código y un paso a paso sobre cómo subir el sketch, igualmente es un paso muy sencillo que lo puedes ver aquí.

GitHub ProMicro:

Datasheet Atmega 32U4: