PiStation – Conectando los mandos

En este artículo voy a explicar cómo conectar dos mandos de PlayStation a la Raspberry Pi usando la interfaz GPIO.

2 mandos conectados
2 mandos conectados

Tengo que decir que me llevó varios días de navegar por Internet hasta que encontré una solución que funciona. Requiere algo de cableado y de configuración de software. Al principio lo conectaré todo usando jumpers y una breadboard, y una vez lo tenga todo listo lo soldaré en una protoboard usando cables. Obviamente no lo soldaré a los mandos sino a los conectores de la consola que podéis ver aquí debajo.

Conectores de los mandos
Conectores de los mandos

Comencemos primero con el hardware. El conector de la PS1 tiene nueve cables pero sólo utilizaremos seis de ellos. Creo que uno de los otros tres que no vamos a usar es para el dual shock pero no tengo ni idea de para qué son los otros dos. Justo debajo podéis encontrar un esquema muy básico de cómo hay que conectar los dos mandos a los pines GPIO de la Raspberry.

Esquema de conexiones
Esquema de conexiones

El GPIO que he dibujado tiene sólo 25 pines porque lo probé usando una Raspberry 1, pero las conexiones son las mismas para una Raspberry con 40 pines como la Raspberry Pi 3.

Como podéis ver cinco de los seis cables de los dos mandos tienen el mismo color, lo que significa que tienen que ir al mismo pin. Las únicas excepciones son los cables para la señal de datos, coloreados en marrón para el primer mando y en morado para el segundo mando.

Además, necesitaremos una resistencia de 4,7k para cada mando. Lo he probado también sin usar la resistencia pero, cuando funciona, lo hace de forma errática, así que es mejor usarlas.

Conexiones
Conexiones

Una vez todo está conectado en la breadboard viene la parte de la configuración de software. Al igual que en mi último proyecto, usaré RetroPie como sistema operativo. Eso hace las cosas un poquito más fáciles ya que podemos usar el driver requerido desde su menú. Sólo hace falta ir a Manage packages > Manage driver packages > gamecondriver > Install from binary

Instalación del driver
Instalación del driver

Una vez lo hemos descargado e instalado necesitaremos configurarlo. Como el gamecondriver nos permite usar mandos muy distintos como los de la NES o la Super Nintendo, necesitamos decirle que estaremos usando dos mandos de PlayStation. Para hacerlo, primero tenemos que presionar F4 para salir de la interfaz gráfica o ir al menú y seleccionar Quit > Close EmulationStation. Después, necesitamos editar el fichero de configuración escribiendo sudo nano /etc/modprobe.d/gamecon.conf. Ahí añadiremos la siguiente línea: options gamecon_gpio_rpi map=7,7,7,7,7,7. Realmente esta línea le está diciendo al sistema que estaremos usando seis mandos de PlayStation, pero da lo mismo. Guardamos el fichero presionando CTRL+X, luego presionamos Enter para mantener el mismo nombre de fichero y después presionamos Y para confirmar.

Como podéis ver los mandos funcionan bien. Sin embargo, una vez reiniciamos la Raspberry descubrimos que los mandos ya no funcionan, y eso es porque el driver no se ha cargado al iniciar. Para poder hacer eso, necesitamos añadir el driver al fichero de módulos. Lo haremos ejecutando sudo nano /etc/modules y añadiendo la línea gamecon_gpio_rpi al final del fichero.

Y eso es todo. Ahora que todo está funcionando es momento de meterlo todo dentro de la caja de la PlayStation y hacerlo todo permanente. Ya os enseñaré eso en el siguiente artículo de la serie.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

*