Botones maquina recreativa mediante USB

Hola.
Estoy en proceso de crear una maquina recreativa (Arcade, de las de Metal Slug y demas) mediante Raspberry.

El problema viene al intentar crear el mando para jugar, ya que para conectarlo a la Raspberry tiene que ser via USB, por lo cual he creado un montaje simple con los cables del interior del USB y un arduino UNO

Los cables rojo y negro irian conectados a la alimentacion de 5V y a tierra respectivamente, y los datos serian enviados a traves del cable blanco (D+) o eso creo.
Mi intencion es pulsar los botones( 10 en este caso, pero no simultaneos) y que de alguna forma, mediante las salidas del Arduino pudiese saber que boton esta pulsado y esa informacion se mandase a traves del USB.

Otra forma que se me habia ocurrido era mandar los datos a traves del propio USB del arduino( Puerto Serial), pero buscando por internet solo he encontrado tutoriales en los que habia que mandar los datos a un PV y de ahi a la Raspberry, lo cual veo del todo improductivo. Otra opcion es mediante Phyton, transmitir los datos del arduino al Serial.Monitor y de ahi leerlos con Phyton en la raspberry, pero por lo que tengo entendido de esta forma no podria tener el SO de la recreativa activo dado de tendria que tener Phyton activo en la Raspberry( un lio vaya).
Y por ultimo queda la opcion del BootLoader, en la cual me pierdo entero...

Acudo al foro por que llevo mas de dos semanas intentando hacer un codigo funcional y realmente no encuentro ninguna forma, postearia el codigo que llevo pero realmente me he topado con callejones sin salida en todos los casos por lo que ahora estoy en blanco.
Agradeceria cualquier ayuda, ya sea via codigo o simplemente ideas.
Muchas gracias :slight_smile:

Deberías darnos mas detalle sobre esa aplicacion que llamas Recreativa, algun enlace para saber de cual hablas.
Tal vez alguien la conozca (no es mi caso), y analizar que posibilidades de comunicación entre el UNO y la Raspi hay usando esa aplicación.

si no lo consigues ,hay soluciones comerciales.Yo use algo parecido a esto ,pero con un pc,no se si valdra para raspberry,aunque indica que no necesita drivers:

blitzake:
Hola.
Estoy en proceso de crear una maquina recreativa (Arcade, de las de Metal Slug y demas) mediante Raspberry.

El problema viene al intentar crear el mando para jugar, ya que para conectarlo a la Raspberry tiene que ser via USB, por lo cual he creado un montaje simple con los cables del interior del USB y un arduino UNO

Los cables rojo y negro irian conectados a la alimentacion de 5V y a tierra respectivamente, y los datos serian enviados a traves del cable blanco (D+) o eso creo.
Mi intencion es pulsar los botones( 10 en este caso, pero no simultaneos) y que de alguna forma, mediante las salidas del Arduino pudiese saber que boton esta pulsado y esa informacion se mandase a traves del USB.

Otra forma que se me habia ocurrido era mandar los datos a traves del propio USB del arduino( Puerto Serial), pero buscando por internet solo he encontrado tutoriales en los que habia que mandar los datos a un PV y de ahi a la Raspberry, lo cual veo del todo improductivo. Otra opcion es mediante Phyton, transmitir los datos del arduino al Serial.Monitor y de ahi leerlos con Phyton en la raspberry, pero por lo que tengo entendido de esta forma no podria tener el SO de la recreativa activo dado de tendria que tener Phyton activo en la Raspberry( un lio vaya).
Y por ultimo queda la opcion del BootLoader, en la cual me pierdo entero...

Acudo al foro por que llevo mas de dos semanas intentando hacer un codigo funcional y realmente no encuentro ninguna forma, postearia el codigo que llevo pero realmente me he topado con callejones sin salida en todos los casos por lo que ahora estoy en blanco.
Agradeceria cualquier ayuda, ya sea via codigo o simplemente ideas.
Muchas gracias :slight_smile:

ciñendome a lo que pides puedes descartar ese cable que has fabricado y mirar de usar un arduino leonado, con la libreria adecuada se conecta al rasp o a un ordenaro y lo detecta como teclado estandar, solo tendras que leer los pulsadores y asignarles a cada uno una letra y enviarla

Fíjate en este enlace https://brainy-bits.com/tutorials/leonardo-arcade-controller/

No queria comprar nada mas debido a que no quiero subir el coste total simplemente por no complicarme la vida, y de paso asi aprendo algo mas.
He intentado lo del link https://brainy-bits.com/tutorials/leonardo-arcade-controller/ pero me da error al compilar(Solo copiando y pegando el programa) me dice que no he incluido la libreria Keyboard.h, y aunque escriba #include <Keyboard.h> me dice el mismo error.
Gracias a todos los comentarios :slight_smile:
"Edito: Da este error al programar sin seleccionar ni arduino Leonardo/micro, si cambias las opciones de compilacion en Herramientas se soluciona"

Para usar esa Liberia tienes que usar un arduino Leonardo que es lo que te sugerí, pero no es el que tienes

ups.. Al parecer es mas difícil hacerlo con mega o uno. Encontré este enlace, pero hay que cambiar el firmware del arduino

Si no es complicado pero necesitas otro arduino para usarlo como isp y necesitas que sea un arduino original por que los chinos llevan (suelen llevar) un Ch340 al cual no puedes cambiar el firm.

Me quedé pensando sobre este tema: para que un arduino? La raspberry se pueden cablear botones y mediante alguna librería simular el teclado como pyautogui de python.
Salufdos

Habia pensado usar un Arduino por que era la idea mas "sencilla" con los conocimientos que tengo.
Si que he leido en varios sitios lo de simular un teclado con Python pero realmente no tengo ni idea de como, de todas formas buscare un par de tutoriales a ver si me aclaro un poco.
Muchas gracias :slight_smile:

Si has de cambiar de placa cambia a Leonardo! Muy barata y sirve para lo que quieres incluso has encontrado ya la librería