Autor Tema: DIY Spinner con arduino  (Leído 4827 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Antolin

  • VIP
  • *
  • Mensajes: 386
  • Gracias 48
  • Ciudad: Oviedo, Asturias
DIY Spinner con arduino
« en: Febrero 14, 2021, 10:45:03 pm »
Advertisement
Salu2, siguiendo los pasos de este post, podrás crear tu propio spinner para utilizar con MAME y así poder disfrutar de los juegos que lo utilizaban originalmente de la forma más fiel y satisfactoria.




Materiales necesarios:
Quiero que quede claro que no tengo ninguna relación con Amazon ni con los vendedores de los links, sólo los pongo a modo de ayuda. Ya sabemos que podemos conseguirlos en diferentes sitios y a diferentes precios.

-Arduino leonardo o micro, siempre que lleven el chip ATmega32u4 (también puede hacerse con otros arduinos pero es más lioso)
Link de compra Amazon


- Encoder de 600P/R 5V-24V
Link de compra en Amazon


- Perilla de Aluminio Sólido: esto va a gustos ya que hay muchos modelos, es importante que sea metálica, ya que el peso genera más inercia al girarlo.
Link de compra Amazon


- Botones arcade: El máximo de botones que utilizaba un juego arcade con spinner eran cuatro, aunque la mayoría solamente utilizan uno. En mi caso yo utilizé tres
Link de compra Amazon


- Pulsadores 12mm: Yo utilizé unos que tenía por casa, pero pueden utilizarse botones arcade o cualquier otro pulsador.
Link de compra Amazon


- Caja para montar nuestro spinner: Si quieres montarte tu spinner en una caja en lugar de montarlo en un cpo, algo así te será útil. Yo utilicé una carcasa de hd multimedia que tenía por casa.

Link de compra Amazon

También necesitaremos unos cables y soldador de estaño o conectores fastón.

Para construir nuestro spinner lo único que necesitamos es el arduino, el encoder y la perilla, el resto de materiales anteriores serian para hacerse uno tipo al mío.

Conexiones

Una vez que tenemos los materiales necesarios los montamos en la caja o cpo y procedemos a conectarlos de la siguiente forma:



Con el código que vamos a subir al arduino podemos colocar hasta 8 botones. En mi caso yo solamente conecté cinco, pero os dejo la lista de pines a los que podéis conectar los ocho botones.

- Conectamos uno de los pines de cada botón a una línea que conectamos en un pin GND del arduino.
- El otro pin de cada botón lo conectaremos a uno de los siguientes pines del arduino:
Pines 4,5,6,7,8,9,10 y 15 (el pin 10 es el recomendado para "insert coin/select" y el 15 para "start").
- En mi caso, el encoder es el mismo del enlace de amazon y trae cuatro cables; rojo, negro, verde y blanco (en la etiqueta del encoder te suele venir marcado lo que es cada cable).
Conectamos el cable negro a un pin GND del arduino, el rojo a un pin 5v del arduino, el blanco al pin 2 y el verde al pin 3.

Ahora nos vamos al siguiente LINK y descargamos e instalamos el Arduino IDE.

Conectamos el arduino leonardo por usb al pc y abrimos el arduino ide.



Lo primero es seleccionar el tipo de placa arduino que tenemos (en este caso Arduino leonardo)



Ahora seleccionamos el puerto al que está conectado el arduino.



Ahora tenemos que descargar el siguiente zip que contiene la librería de joystick para arduino.

A continuación instalaremos la librería que acabamos de descargar.

Programa > Incluir librería > Añadir biblioteca zip



Seleccionamos el zip que descargamos antes



Ahora ya debería aparecernos "joystick" dentro de archivo > ejemplos con varios ejemplos que trae la librería.



Lo siguiente que necesitamos es descargar es siguiente archivo y lo descomprimimos (en el escritorio mismamente).

Vamos al arduino ide  "archivo > abrir" y seleccionamos el archivo "Spinner_8-Button.ino" que encontramos dentro de la carpeta que nos acabamos de descargar.



Primero hacemos clic en verificar



Una vez que verifica el código le damos a subir y empezará a pasar el código al arduino.



Cuando termine (tarda poco), desconectamos el usb y volvemos a conectarlo al pc, Windows nos reconoce el dispositivo y ya podemos utilizarlo con MAME.



Si hacemos clic derecho sobre "arduino leonardo", podemos seleccionar "configuración del dispositivo de juego"




El siguiente paso sería configurar el spinner y los botones en MAME. Debido a que cada juego utilizaba diferentes spinners, yo recomiendo ajustar la sensibilidad del mismo para cada juego en particular.

Arrancamos MAME y lanzamos el juego que queramos configurar (en este ejemplo "Arkanoid").
Pulsamos la tecla "Tab" y nos vamos a "input this machine"



Aquí podemos asignar los botones para coin, start,, los botones de acción que utilice cada juego y el spinner como Dial Analog.



Ahora necesitamos ajustar la sensibilidad para este juego en concreto, esto lo hacemos en el menú "Analog controls"



En este menú sólo tenemos que ajustar "Dial sensitivity"



Esto podemos hacerlo a base de prueba y error hasta que lo dejemos a nuestro gusto o bien hacerlo de la forma correcta para que nuestro spinner actúe lo más fiel al juego original.

Para esto existe una fórmula que nos permite saber el valor que tenemos que usar.

Sensitivity = 100 * pasos por vuelta del spinner original / pasos por vuelta de nuestro spinner

Para este ejemplo del Arkanoid y con mi encoder de 600 pasos por vuelta el cálculo sería 100*486/600=81
Por lo que tendríamos que ajustar el "dial sensitivity" en 81.

Podéis encontrar mas información sobre este tema en el siguiente LINK. Además tenéis los pasos por vuelta de diferentes juegos para que puedas calcular la sensibilidad para tu spinner.

Ya no tienes escusa para fabricar tu propio spinner y así disfrutar de los juegos como fueron pensados originalmente.

Tengo planeada una modificación para este spinner que me fabriqué para darle aún más utilidad, pero eso ya lo publicaré cuando esté lista  ;)

1SaluDT
« Última modificación: Febrero 15, 2021, 01:04:41 am por Antolin »



Desconectado treme

  • Moderador global
  • *
  • Mensajes: 4679
  • Gracias 159
  • No robes,al gobierno no le gusta la competencia
  • Ciudad: Calera y Chozas
  • Iniciales nick: CCO
Re: DIY Spinner con arduino
« Respuesta #1 en: Febrero 15, 2021, 08:22:22 am »
Fenomeno,ahora ya nadie tiene excusa para no fabricarse uno y jugar a los arkanoid como dios manda
No robes....al gobierno no le gusta la competencia

Desconectado Pegafun

  • VIP
  • *
  • Mensajes: 183
  • Gracias 17
  • Ciudad: Lorca
  • Pais: España
  • Iniciales nick: PGF
Re: DIY Spinner con arduino
« Respuesta #2 en: Febrero 15, 2021, 08:26:56 am »
¡Magnífico tutorial! Al final me voy a hacer forofo de los Arduinos, la de cosas chulas que se pueden hacer con ellos! Sólo una pregunta, ¿Se podrá usar otro encoder? La verdad es que veo un poco caro 20€, al final sale el spinner por el mismo precio que comprado hecho...

Desconectado Antolin

  • VIP
  • *
  • Mensajes: 386
  • Gracias 48
  • Ciudad: Oviedo, Asturias
Re: DIY Spinner con arduino
« Respuesta #3 en: Febrero 15, 2021, 09:57:40 am »
Salu2, imagino que si podrás usar otro encoder, lo que no se es si te servirá el mismo código que os pongo en el tutorial. Pero viendo la cantidad de sensores que pueden conectarse al Arduino pienso que no será la única opción, eso sí, imagino que hay que escribir un código "compatible" con el sensor que utilicemos.
La primera alternativa que se me ocurre es con un sensor hall y un par de imanes, aunque también hay encoders tipo potenciómetro mucho más baratos aunque no creo que giren tan libremente como este.

De todas formas, puedes encontrar el mismo encoder que yo utilicé en AliExpress por 5€, la única diferencia es que tardan un mes en llegar.

1SaluDT
« Última modificación: Febrero 15, 2021, 10:03:35 am por Antolin »

Desconectado Pegafun

  • VIP
  • *
  • Mensajes: 183
  • Gracias 17
  • Ciudad: Lorca
  • Pais: España
  • Iniciales nick: PGF
Re: DIY Spinner con arduino
« Respuesta #4 en: Febrero 15, 2021, 10:38:05 am »
De todas formas, puedes encontrar el mismo encoder que yo utilicé en AliExpress por 5€, la única diferencia es que tardan un mes en llegar.

¡Hombreeeee! ¡Esto ya es otra cosa!

https://es.aliexpress.com/i/32828367835.html

A mí no me importa esperar, jejeje.

Desconectado Antolin

  • VIP
  • *
  • Mensajes: 386
  • Gracias 48
  • Ciudad: Oviedo, Asturias
Re: DIY Spinner con arduino
« Respuesta #5 en: Febrero 15, 2021, 12:00:16 pm »
Si no te importa esperar puedes pedir ahí también el resto de componentes y te sale tirado de precio, el Arduino lo tienes por unos 3€ en AliExpress.
1SaluDT

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2218
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re: DIY Spinner con arduino
« Respuesta #6 en: Febrero 15, 2021, 05:51:26 pm »
¡¡Muy buen tutorial!!

Desconectado Antolin

  • VIP
  • *
  • Mensajes: 386
  • Gracias 48
  • Ciudad: Oviedo, Asturias
Re: DIY Spinner con arduino
« Respuesta #7 en: Febrero 15, 2021, 09:20:53 pm »
Gracias compi  :)
1SaluDT

Desconectado elbitxo

  • Usuarios normales
  • *
  • Mensajes: 71
  • Gracias 7
  • Ciudad: Madrid
  • Pais: Xpain
Re: DIY Spinner con arduino
« Respuesta #8 en: Febrero 19, 2021, 12:25:03 am »
buah brutal, qué accesible además! me interesa un montón porque tengo muy poca idea de electrónica y casi ninguna herramienta. Si se usan botones tipo sanwa se conectarían a la arduino de la misma forma? tengo por aquí botones de sobra de esos y varios cables de los que son fastón a JST, no sé si me valdrían.

Muchas gracias por el post tan detallado.

Desconectado Antolin

  • VIP
  • *
  • Mensajes: 386
  • Gracias 48
  • Ciudad: Oviedo, Asturias
Re: DIY Spinner con arduino
« Respuesta #9 en: Febrero 19, 2021, 08:41:43 am »
Gracias compi.
Si, puedes conectar los botones sin problema. La ventaja de los sanwa es que necesitas menos altura en caso de montarlos en una caja en lugar de en un cpo.
1SaluDT

Desconectado elbitxo

  • Usuarios normales
  • *
  • Mensajes: 71
  • Gracias 7
  • Ciudad: Madrid
  • Pais: Xpain
Re: DIY Spinner con arduino
« Respuesta #10 en: Febrero 19, 2021, 10:33:22 am »
bueno, estoy ya casi encargando los componentes al aliexpress jaja. Solo un par de dudas más, valdría también para Raspberry con Retropie y para Ubuntu (RGBUNTU)? que son los SO que uso con CRT. Y luego, el encoder ofrece alguna resistencia al giro o va sin freno como un spinner arcade comercial?

He visto un par de placas imprimibles en 3D para montar un encoder más fácilmente en CPO o caja de madera:
https://www.thingiverse.com/thing:4460070

Mira que daba por perdida la idea de hacerme un spinner hasta que alguien sacase un buen producto plug&play de precio asequible, y ésto me ha devuelto las ganas.
« Última modificación: Febrero 19, 2021, 01:12:52 pm por elbitxo »

Desconectado Antolin

  • VIP
  • *
  • Mensajes: 386
  • Gracias 48
  • Ciudad: Oviedo, Asturias
Re: DIY Spinner con arduino
« Respuesta #11 en: Febrero 19, 2021, 08:26:54 pm »
Salu2,  el encoder por dentro creo que es óptico, por lo que la única resistencia que ofrece es la que pueda hacer el rodamiento que sujeta el eje (que es prácticamente nula), eso sí, el peso para generar la inercia en el giro te lo da la perilla que le pongas, por eso recomiendo utilizar una metálica.
Respecto a si funciona con Linux, creo recordar haber leído que si que es compatible. De todas formas mañana lo pruebo con la Raspberry y te lo confirmo.
1SaluDT

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21714
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re: DIY Spinner con arduino
« Respuesta #12 en: Marzo 11, 2021, 11:10:28 am »
Salu2, siguiendo los pasos de este post, podrás crear tu propio spinner para utilizar con MAME y así poder disfrutar de los juegos que lo utilizaban originalmente de la forma más fiel y satisfactoria.




Materiales necesarios:
Quiero que quede claro que no tengo ninguna relación con Amazon ni con los vendedores de los links, sólo los pongo a modo de ayuda. Ya sabemos que podemos conseguirlos en diferentes sitios y a diferentes precios.

-Arduino leonardo o micro, siempre que lleven el chip ATmega32u4 (también puede hacerse con otros arduinos pero es más lioso)
Link de compra Amazon


- Encoder de 600P/R 5V-24V
Link de compra en Amazon


- Perilla de Aluminio Sólido: esto va a gustos ya que hay muchos modelos, es importante que sea metálica, ya que el peso genera más inercia al girarlo.
Link de compra Amazon


- Botones arcade: El máximo de botones que utilizaba un juego arcade con spinner eran cuatro, aunque la mayoría solamente utilizan uno. En mi caso yo utilizé tres
Link de compra Amazon


- Pulsadores 12mm: Yo utilizé unos que tenía por casa, pero pueden utilizarse botones arcade o cualquier otro pulsador.
Link de compra Amazon


- Caja para montar nuestro spinner: Si quieres montarte tu spinner en una caja en lugar de montarlo en un cpo, algo así te será útil. Yo utilicé una carcasa de hd multimedia que tenía por casa.

Link de compra Amazon

También necesitaremos unos cables y soldador de estaño o conectores fastón.

Para construir nuestro spinner lo único que necesitamos es el arduino, el encoder y la perilla, el resto de materiales anteriores serian para hacerse uno tipo al mío.

Conexiones

Una vez que tenemos los materiales necesarios los montamos en la caja o cpo y procedemos a conectarlos de la siguiente forma:



Con el código que vamos a subir al arduino podemos colocar hasta 8 botones. En mi caso yo solamente conecté cinco, pero os dejo la lista de pines a los que podéis conectar los ocho botones.

- Conectamos uno de los pines de cada botón a una línea que conectamos en un pin GND del arduino.
- El otro pin de cada botón lo conectaremos a uno de los siguientes pines del arduino:
Pines 4,5,6,7,8,9,10 y 15 (el pin 10 es el recomendado para "insert coin/select" y el 15 para "start").
- En mi caso, el encoder es el mismo del enlace de amazon y trae cuatro cables; rojo, negro, verde y blanco (en la etiqueta del encoder te suele venir marcado lo que es cada cable).
Conectamos el cable negro a un pin GND del arduino, el rojo a un pin 5v del arduino, el blanco al pin 2 y el verde al pin 3.

Ahora nos vamos al siguiente LINK y descargamos e instalamos el Arduino IDE.

Conectamos el arduino leonardo por usb al pc y abrimos el arduino ide.



Lo primero es seleccionar el tipo de placa arduino que tenemos (en este caso Arduino leonardo)



Ahora seleccionamos el puerto al que está conectado el arduino.



Ahora tenemos que descargar el siguiente zip que contiene la librería de joystick para arduino.

A continuación instalaremos la librería que acabamos de descargar.

Programa > Incluir librería > Añadir biblioteca zip



Seleccionamos el zip que descargamos antes



Ahora ya debería aparecernos "joystick" dentro de archivo > ejemplos con varios ejemplos que trae la librería.



Lo siguiente que necesitamos es descargar es siguiente archivo y lo descomprimimos (en el escritorio mismamente).

Vamos al arduino ide  "archivo > abrir" y seleccionamos el archivo "Spinner_8-Button.ino" que encontramos dentro de la carpeta que nos acabamos de descargar.



Primero hacemos clic en verificar



Una vez que verifica el código le damos a subir y empezará a pasar el código al arduino.



Cuando termine (tarda poco), desconectamos el usb y volvemos a conectarlo al pc, Windows nos reconoce el dispositivo y ya podemos utilizarlo con MAME.



Si hacemos clic derecho sobre "arduino leonardo", podemos seleccionar "configuración del dispositivo de juego"




El siguiente paso sería configurar el spinner y los botones en MAME. Debido a que cada juego utilizaba diferentes spinners, yo recomiendo ajustar la sensibilidad del mismo para cada juego en particular.

Arrancamos MAME y lanzamos el juego que queramos configurar (en este ejemplo "Arkanoid").
Pulsamos la tecla "Tab" y nos vamos a "input this machine"



Aquí podemos asignar los botones para coin, start,, los botones de acción que utilice cada juego y el spinner como Dial Analog.



Ahora necesitamos ajustar la sensibilidad para este juego en concreto, esto lo hacemos en el menú "Analog controls"



En este menú sólo tenemos que ajustar "Dial sensitivity"



Esto podemos hacerlo a base de prueba y error hasta que lo dejemos a nuestro gusto o bien hacerlo de la forma correcta para que nuestro spinner actúe lo más fiel al juego original.

Para esto existe una fórmula que nos permite saber el valor que tenemos que usar.

Sensitivity = 100 * pasos por vuelta del spinner original / pasos por vuelta de nuestro spinner

Para este ejemplo del Arkanoid y con mi encoder de 600 pasos por vuelta el cálculo sería 100*486/600=81
Por lo que tendríamos que ajustar el "dial sensitivity" en 81.

Podéis encontrar mas información sobre este tema en el siguiente LINK. Además tenéis los pasos por vuelta de diferentes juegos para que puedas calcular la sensibilidad para tu spinner.

Ya no tienes escusa para fabricar tu propio spinner y así disfrutar de los juegos como fueron pensados originalmente.

Tengo planeada una modificación para este spinner que me fabriqué para darle aún más utilidad, pero eso ya lo publicaré cuando esté lista  ;)

1SaluDT


Compañero,

simplemente MAGNÍFICO!!! Mil gracias por compartir!

Desconectado elbitxo

  • Usuarios normales
  • *
  • Mensajes: 71
  • Gracias 7
  • Ciudad: Madrid
  • Pais: Xpain
Re: DIY Spinner con arduino
« Respuesta #13 en: Marzo 14, 2021, 02:05:21 pm »
joderrr, me la liaron los de la tienda de Aliexpress. Pillé un encoder que tanto en la foto como en la descripción era igual al que has usado tú, pero me mandaron uno distinto. Para empezar de 26V en lugar de 24V. Al probarlo con la arduino puedo instalarla, me la reconoce como dispositivo de juego y tal, pero al intentar configurar en MAME se vuelve loco el chisme, me jode todos los inputs. No sé si tengo que conectar de forma distinta los cables, o es que el código a de ser distinto, o que directamente no vale. Agradecería alguna ayuda con ésto. Con el cable plateado que no aparece en el esquema qué se hace, se deja suelto?

En todo  caso voy a reclamar la devolución en la tienda. Aquí dejo la foto del encoder que me han mandado:
« Última modificación: Marzo 14, 2021, 02:20:44 pm por elbitxo »

Desconectado Antolin

  • VIP
  • *
  • Mensajes: 386
  • Gracias 48
  • Ciudad: Oviedo, Asturias
Re: DIY Spinner con arduino
« Respuesta #14 en: Marzo 15, 2021, 03:49:16 pm »
Salu2, en princio el voltaje que usamos es de 5v, por lo que no creo que afecte que sea 5-26v o de 5-24v. El cable plateado es una malla de tierra. Yo la corté al ras (no la utilizo), ya que usamos el cable negro como tierra.
El spinner lo reconoce como ratón, lo que reconoce como joystick son los botones. En Windows, al girar el spinner, el cursor debería de moverse de izquierda a derecha (o de derecha a izquierda, depende de cómo lo estemos girando). Si al girarlo a la derecha el cursor va a la izquierda o viceversa, cambiando el orden de los cables verde y blanco se debería solucionar. Una vez que esto te funcione correctamente pasa a la configuración en MAME, ahí sólo deberías cambiar los parámetros que indico en el tutorial.
Dices que te jode los inputs, específica un poco más a ver si puedo ayudarte.
1SaluDT

 


* Salón Recreativo #55 (27-04-2024 / 26-05-2024)  Autor: jose365 Foro: Salón Recreativo FaseBonus 28/04/2024 (08:24)
* Retro 320 - Wizard of wor  Autor: empardopo Foro: Competiciones y concursos 27/04/2024 (21:48)
* Recopilatorio Retos: Desde el 1 hasta .....  Autor: empardopo Foro: Competiciones y concursos 27/04/2024 (21:43)
* Info sobre MARP  Autor: empardopo Foro: Records y wolfmame 27/04/2024 (21:01)
* Aprende a hacerte un PORTABLE de tu juego arcade favorito  Autor: empardopo Foro: Records y wolfmame 27/04/2024 (19:40)
* [Recomendacion] Series para ver  Autor: arquillos Foro: Offtopic 25/04/2024 (19:51)
* Screenshot de empardopo  Autor: empardopo Foro: Otros programas 24/04/2024 (19:42)
* Homenaje a Locomalito  Autor: empardopo Foro: Otros programas 24/04/2024 (19:37)
* Concurso Bytemaniacos 2025  Autor: empardopo Foro: Creación de juegos 23/04/2024 (21:46)
* La inteligencia artificial ha llegado a la música  Autor: empardopo Foro: Offtopic 23/04/2024 (21:43)
* Retro Portable Maker ArcadeSpain (RPMA)  Autor: empardopo Foro: Otros programas 21/04/2024 (19:16)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: empardopo Foro: Offtopic 21/04/2024 (18:47)
* ¿A qué estáis jugando ahora mismo?  Autor: joselopez Foro: Offtopic 19/04/2024 (00:02)
* Hacer fondos de pantalla con Excel para Spectrum  Autor: empardopo Foro: Creación de juegos 18/04/2024 (19:33)
* Salón Recreativo FaseBonus - Preparativos y Sugerencias  Autor: Zael Foro: Salón Recreativo FaseBonus 17/04/2024 (00:17)
* Retropixel 2024  Autor: Zael Foro: Eventos Arcades 14/04/2024 (12:24)
* [N3DS] Red Viper - Emulando Virtual Boy como Dios manda  Autor: Zael Foro: Noticias de emuladores 14/04/2024 (12:17)
* Ofertas Amazon  Autor: empardopo Foro: Offtopic 11/04/2024 (20:29)
* Restauración Terminator 2 + LightGun Gun4IR  Autor: HeroTonma Foro: Diario de construccion de tu arcade 04/04/2024 (14:18)
* Ojo con telegram  Autor: Zael Foro: Noticias 29/03/2024 (19:30)
* Patrocinador para el foro ArcadeSpain  Autor: Zael Foro: Noticias 24/03/2024 (21:01)
* Galería de fotos en ArcadeSpain - sube las fotos a nuestro servidor -  Autor: empardopo Foro: Noticias 24/03/2024 (16:49)
* Flipando con la desinformación en el caso del emulador Yuzu  Autor: Zael Foro: Offtopic 22/03/2024 (20:13)
* Salón Recreativo FaseBonus - Recopilatorio Salones  Autor: Zael Foro: Salón Recreativo FaseBonus 22/03/2024 (12:36)
* Mirad lo que acabo de recibir para mi Powkiddy A12... Os va a molar  Autor: Zael Foro: Powkiddy A12/A13 18/03/2024 (21:02)
* Ayuda, algún app para poner imagen a un mo3  Autor: gucaza Foro: Otros programas 16/03/2024 (06:03)
* Recta final de la maquina  Autor: beaches Foro: Attract Mode 12/03/2024 (00:22)
* Saludos desde Madrid   Autor: gabibb Foro: Presentate al Foro 11/03/2024 (19:52)
* Problema con placa zero delay..   Autor: catapum Foro: Seccion C.P. 07/03/2024 (11:46)
* Música y artistas aptos para nuestra jukebox  Autor: Zael Foro: Offtopic 03/03/2024 (20:47)

Countdown
Buscaunchollo.click