miércoles, 6 de abril de 2016

Fabricando un adaptador para jugar a la N64


Hola, buenas a todos.

Hoy vengo con otra entrada electrónica. Esta vez un proyecto más avanzado, que comparto con vosotros por si os sirviera.

¿Quién no ha jugado alguna vez a la Nintendo 64 y ha sufrido con ese mando tan anti-anatómico? O simplemente, ¿quién no ha perdido los nervios con ese joystick tan malo? Existen múltiples soluciones: jugar a la N64 en un emulador, comprar un joystick "estilo Gamecube" o, la más creativa de todas, construirnos un adaptador para poder jugar a nuestra N64 con los mandos de GC.

Empecemos...

Necesitaremos los siguientes componentes:

  • Un microcontrolador PIC16F84A, de Microchip. Se trata de un microcontrolador muy común, de la gama media, que trabaja en 8 bits.
  • Un cristal de 20MHz.
  • Dos condensadores cerámicos de 22 pF.
  • Un condensador electrolítico de 0'1 µF.
  • Una resistencia de 1K.
  • Cables.
  • Extensores de cable de Nintendo64 y Gamecube. *
  • Programador de PICs. *
(Los elementos marcados con * son opcionales, aunque simplifican el trabajo y dan mejor resultado).

Dicho esto, vamos a detallar el proceso.


PASO 1: Programar el PIC.

Lo primero que debemos hacer es programar nuestro PIC de modo que podamos traducir el protocolo típico de Gamecube al de Nintendo 64, buscando una cierta equivalencia entre los botones (el A deberá ser el A, el B deberá ser el B, el joystick C deberá poder emular los botones C, etc.).

Para ello se ha programado esta traducción en lenguaje ensamblador. Una vez compilado el fichero con el programa, nos brinda el archivo .hex que necesitamos. Tan sólo hay que transferirlo al microcontrolador.

Para ello existen varias posibilidades: utilizar un programador de PICs (opción que aconsejo) o construirnos uno sobre la marcha. Hablaré sobre la primera opción, que os será de mayor utilidad a muchos. De la segunda poco puedo deciros, pero buscad en la red pues las fuentes son muy numerosas (podemos construir un programador de PICs empleando Arduino, construyendo nosotros mismos la placa programadora, o utilizando simplemente cables con el circuito adecuado).

Vamos con la opción del programador comercial. En mi caso adquirí un programador «K150» de "marca blanca" por así decirlo. Es una opción muy económica además de práctica. Aquí os dejo una review del programador.

Instalamos primero los drivers del programador. Conectamos el microcontrolador y le transferimos el fichero .hex (aconsejo ver el vídeo pues también tiene parte de tutorial). Y listo, con esto ya estará hecho este primer paso.




PASO 2: Construir el circuito

Una vez programado el micro, vamos a construir el circuito que podemos ver en la siguiente figura:


El condensador C3 que vemos es el condensador electrolítico, empleado para reducir los picos en la alimentación. Ni que decir que el terminal negativo es el que irá conectado a tierra, ¿no?...

Bueno y algunos comentarios sobre el circuito:
  • Corta en dos los extensores de mando y quédate con la mitad que tenga el conector macho (en el caso de la N64) y el hembra (en el caso de la GC). Pela el otro extremo de modo que puedas acceder a los cables que hay dentro. No respondo ante los colores que puedan tener esos cables, pues en función del fabricante pueden tener una forma u otra. Os recomiendo que comprobéis con el multímetro a qué número de pin corresponde cada cable (según la numeración del esquemático que os he dado).
  • El pin #1 de Gamecube puede ser alimentado a 5V (se necesitará una fuente externa) para poder contar con vibración. Todos aquellos juegos que usaran el Rumble Pack, emularán la vibración del mismo en nuestro mando de GC. Yo personalmente no lo he conectado, usando sólamente los 3'3V de alimentación que nos da el propio cable de N64.
  • Al pelar el cable de Gamecube veréis que únicamente aparecen 5 cablecitos. No os preocupéis, no se os ha ido la mano. Es que el pin #5, como podéis ver, no va conectado a nada.
  • Como dije, no necesitáis alimentar de manera externa con 3'3V vuestro circuito. De esto se encarga el pin #1 de N64, que nos dará 3'3V extraídos desde la propia consola (¡los mandos no tienen baterías, ¿de dónde sino iba a salir esa alimentación?!).
Y con esto estará ya todo listo. Nos queda el último paso...


PASO 3: Probarlo

Conectamos nuestro mando de Gamecube al conector hembra y nuestro conector macho a la consola N64. Asegurad antes que no se cortocircuite nada, pues cualquier corto podría dañar vuestra consola, que ya de por sí es una joyita.

Y ya está. Probad un juego y veréis cómo funciona. Si tenéis algún problema con un botón (por ejemplo, que no os guste la traducción empleada), podéis seguir el siguiente proceso:
  1. Con el juego encendido, presionamos los botones L y R sin llegar al fin del recorrido (al máximo que podamos sin oír el «click»). Los mantendremos pulsados hasta que os diga.
  2. Sin dejar de pulsarlos, presionamos START.
  3. A continuación pulsamos el botón cuya función deseamos transferir.
  4. Y por último, presionamos el botón que deseamos que reciba la función del anterior.
  5. Soltamos L y R.
Esta configuración se quedará guardada en el micro aunque apaguemos la consola.

Si haciendo esto nos equivocamos o nos quedamos sin botones disponibles, hay vuelta atrás. Para volver a la configuración inicial, usamos el siguiente proceso:
  1. Con el juego encendido, mantenemos presionados los botones L y R sin llegar hasta el «click».
  2. Presionamos Z.
  3. Soltamos L y R.
En ambos casos (tanto para intercambiar funciones como para reiniciar configuración), nuestro mando vibrará ligeramente si hemos conectado el motor, pin #1, a 5V. Es una confirmación de que ha recibido el comando, no os asustéis.


Y nada más. Si sois lo suficientemente TOP os recomiendo diseñar una PCB para dejar el montaje fijo. Yo personalmente lo he hecho, aquí tenéis el resultado.



Y nada más, como siempre gracias por vuestro tiempo.

Salu2

No hay comentarios: