sábado, 9 de junio de 2018

Cómo hacer un mando para un ZX Spectrum 48k

   Como vimos en la entrada anterior, ya tenemos el ZX Spectrum funcionando (Yeah!).
Sin embargo, nos encontramos con un problema.....nuestro Joystick no es el mejor interfaz para jugar a según qué juegos......
¡Vamos a ponerle remedio!

Un sueño retro....pero no siempre la mejor opción.



   En aquella época, hablamos de 1982, no existían mandos para los ordenadores tal y como los conocemos hoy.
   Con ello me refiero a este tipo de mandos:

Genial mando de Nintendo y que usaremos como mando donante.

Es cierto que hubo muchos predecesores que allanaron el camino:

Historia de los primeros joysticks.

   En 1908, el ingeniero aeroespacial francés Louis Bleriot's Bleriot VIII, desarrolló un sistema mecánico de palanca y pedales como medio para controlar sus aeroplanos.

   En 1926, el "Laboratorio de Investigación Naval de los Estados Unidos" patentó un ingenioso interfaz eléctrico (aún no se llamaba joystick) para dirigir aeroplanos.

   En 1944 se desarrolló el que puede considerarse el primer mando de producción. Lo crearon, cómo no, los alemanes para con la nada ociosa intención de dirigir su misil Henschel Hs 293.
Disponía de una palanca con dos estados, encendido y apagado (Ein-Aus):

Henschel Hs 293 Palanca de control. Via http://www.lietadla.com/vyzbroj/hs-293.htm

   Un operador mandaba la señal a través de un cable, medio que se mejoraría al implementar en los misiles un receptor de radio, ¡tenemos nuestro primer mando wireless!

   Para cuando llegó la década de 1960, el uso joystick ya era habitual en aeronáutica


Historia de los primeros joysticks...en videojuegos.

    En 1972, Magnavox Odissey incluyó dos mandos analógicos como parte de su sistema que disponían de dos potenciómetros para controlar la posición de la raqueta en, nada más y nada menos que el Pong:


Via http://thevideogamesystems.blogspot.com/2011/05/history-of-video-game-systems-knowing.html

   A partir de aquí, diversos fabricantes fueron añadiendo funcionalidad a los mandos haciéndolos cada vez mejores:
   Sega introdujo el botón de disparo, Taito añadió 4 direcciones a su mando y en 1977 Atari introdujo "El Joystick":

El Atari CX40, con millones de unidades vendidas.
   Atari usó un interfaz barato de nueve pines, basado en el conector de tipo D, que se convirtió en el estandard duarante casi dos décadas.

D-subminiatur, 9 pin D-sub...lo veremos más adelante.

Bien. Hasta aquí una pequeña introducción a la historia del joystick (o palo de placer) y del conector 9D-sub.
El tiempo que lleva en la industria el joystick, más de 100 años, demuestra su utilidad.

Sin embargo.....


El mando con cruceta.

   Es casi imposible encontrar hoy en día un mando de juegos que no disponga de cruceta de control.
Esta, permite al jugador con un ligero movimiento de pulgar, una muy alta precisión a la hora de manipular elementos en la pantalla, como podía ser un coche, una moto....o a un fontanero italiano en el primer juego con control de cruceta:


Cruceta de control (inferior-izquierda)

   Este diseño se mantuvo, y aún se mantiene, como principal interfaz para su inventora, Nintendo. Teniendo que pagar la patente cada compañía que quiera introducir su idea en sus controladores.

Lo que nos lleva a esto:


El mando con cruceta ....en mi ZX Spectrum.


   El joystick es genial para muchos de los juegos de los que disponemos para el ZX Spectrum. Pero hay muchos otros que no permiten desplegar todo mi arsenal asesino debido a las limitaciones del mismo.
   Hago una búsqueda en diferentes tiendas online intentando buscar un mando que se adapte a lo que necesito.....pero no existen mandos para el ZX.

Mando de la "Master System" de Sega. Usa conector D de 9 pines.

    Leyendo descubro que el interfaz del que dispongo en mi Spectrum , el "9 pin D-sub" es perfectamente compatible con el mando de la "Master System" de Sega.
Genial!!
Teniendo esta opción me dispongo a buscar uno...

Pero no es tan fácil....
   Encuentro de segunda mano pero por precios que no estoy dispuesto a pagar....parece que hay una moda retro que dispara los precios.

   También descubro que el mando de la Sega "Mega Drive" también tiene el mismo conector......pero me parece muy feo, no pega con el Spectrum.
Por estas razones....decido hacerme yo mismo un mando!
Al ataque.

    Necesitamos una carcasa, pero no tengo impresora 3D para poder hacérmela a medida, así que decido usar uno como donante:


Mando que usaré como donante.

   Compro un par de mandos en una conocida tienda online de China, en total salen por 1.5€ cada uno con gastos de envío incluidos.
 Pero estos mandos son USB, así que no me valen. ¿qué hacemos?
Como vimos antes, necesitamos un conector de 9 pines D, el serial de toda la vida.:

Adaptador de puerto de expansión del Spectrum a conector D-sub.

Mi ZX con el adaptador.



También necesito un cable que lleve las señales desde el mando:

Cable serial, con conector D-sub.







Con estos componentes necesarios nos ponemos manos a la obra:


Reemplazando la pegatina del mando.

   Aunque me gusta mucho el "arte" que tiene el mando de la NES de Nintendo, o el de su copia china, queremos que nuestro mando tenga más aire Spectrum. Por ello procedemos a despegar la pegatina con cuidado:

Con cuidadito.



   Es importante despegar la pegatina con delicadeza, ya que esta pegatina original nos servirá como plantilla a la hora de diseñar nuestro reemplazo.

   A continuación escaneamos y abrimos el resultado con Photoshop:

Resultado del escaneo de la pegatina del mando que nos servirá como plantilla.

   Tengo en mente replicar el diseño del ZX Spectrum.
Nada muy complicado.
Con esto como referencia dibujo esto:

Diseño para mando de control para ZX Spectrum.

   Me gusta el color rojo para "Sinclair". Lo demás no tiene mucho misterio.....el arcoiris (o espectro...haciendo referencia a los colores del ZX) en el lateral derecho, el modelo "ZX Spectrum" en blanco como en el original...aunque esta vez en medio del mando, leyenda "Fire" para el botón de acción (el ZX sólo dispone de una entrada de acción).
   El detalle de la firma con el tipo de letra usado en el ZX en color rojo.
¿Os gusta?
A mí sí...así que me lo quedo.

   Para la parte trasera, creo una versiòn adaptado en miniatura:

Diseño para parte trasera del mando de control para ZX Spectrum.

   No tengo acceso a imprenta cerca de donde vivo, así que pruebo comprando papel pegatina satinado brillo de buena calidad.

Cuadra el tamaño....bien.

   Imprimo varias copias por si acaso rompo algo o por si hago más mandos.

   Antes de pegar es importante limpiar la superficie del mando donde irá pegada, si no lo hacemos habrá irregularidades en la superficie y no quedará bien:

Limpiando la superficie del mando.

   Una vez limpio, tenemos que recortar de la pegatina la parte que corresponde a los botones y la cruceta, de nuevo con cuidado y usando un cutter de precisión atómica:

Es conveniente usar un regla, a ser posible de metal para no dañarla.

El resultado es este:

Estado final de la pegatina antes de pegarla.

   Los bordes blancos son por la "rebaba" del papel después de cortar...los limpiaremos antes de pegarla.


Las tripas del mando.

   Bueno, ahora otro tipo de disciplina artística. Recablear el mando donante con el cable que hemos comprado.

Desmontamos el mando:

Vista trasera del mando chino USB de la NES

   Y nos encontramos esto:

PCB del mando USB

   Incluimos una pequeña descripción de lo que tiene:

PCB del mando con leyenda.

- ¿ Y cómo conectamos esto al Spectrum?
Bien, tenemos el "pin out" del conector:

"pin out" del conector del ZX Spectrum.

   El dibujo de la izquierda representa la parte del Spectrum, a la que vamos a conectar. Es macho.
   El de la derecha representa el extremo del cable que tenemos que conectar. Es hembra.

   La idea es cortar el cable, sacar los cablecitos y comprobar cuál se corresponde con el conector:

Etiquetado de los "cablecitos" con su correspondiente pin.

   Con la ayuda de un multímetro y mi pequeño ayudande Lucas, conseguimos sacar cuál es cuál.
Perfecto.

- ¿Y ahora?...pero yo no tengo ni idea de hacer que funcione, ¿cómo funciona?.

   No es muy complicado.
Cada contacto de la PCB tiene dos terminales,
  1. Una que es común a todos los contactos, se llama "masa", "tierra" o "GND".
  2. Una para cada contacto: Arriba, abajo, izquierda, derecha y disparo.
Lo podemos ver aquí:

Detalle de los contacto de la PCB del mando

   Cada vez que se pulsa un botón, lo que hacemos es conectar cada señal (Arriba, abajo, izquierda, derecha y disparo) con masa (GND). Si por ejemplo pulso arriba, estoy conectando el contacto "arriba" (el circulito verde superior de la imagen) con masa. De esa manera, al caer la señal a 0 ("se va a masa") el Spectrum interpreta que tiene que hacer algo....en este caso, ir a arriba.

   Como el Spectrum sólo tiene una señal de disparo y yo tengo dos botones, uno los contactos y así cualquiera de los dos funcionará,

   Una vez sabemos a qué corresponde cada pad, o contacto, ...y esto no es muy difícil, a la izquierda vemos los que corrresponden a las direcciones y a la derecha los de disparo (slect y start no los usaremos, el ZX no controla más de 5 entradas), procedemos a ver qué cablecito debe ir en cada pad.

   El Spectrum espera esto:






   Así que soldamos cada extremo al punto que le corresponde de la PCB:

Detalle de los contacto de la PCB del mando con su conexión al cable.

Soldamos:

Cables soldados a cada punto.

Cables soldados a cada punto, recortados los sobrantes para que cierre bien la carcasa.
   Hay que procurar siempre comprobar después de cada caso, así que una vez hemos comprobado que cada cable está en su sitio procedemos a montar de nuevo la PCB modificada en su carcasa y colocamos la pegatina que hicimos en el paso anterior:

Estado final del mando.


   Todo parece indicar que no hay ningún problema, pero no habrá éxito hasta que se compruebe en el ZX:

Mi ayudante haciendo de Tester

Y.....
¡¡¡Funciona!!!

Fenomenal, ahora no tendremos rival....

Gracias por leer y hasta la próxima.

PS: Si tenéis alguna pregunta no dudéis en ponerla en comentarios.
Y si os gusta el diseño lo puedo compartir si quieréis también-








4 comentarios:

  1. Buenas!!! , acabo de leer tus peripecias con el spectrum..... me gustaria saber si me puedes fabricar otro mando como el que hiciste tipo nes para mi (por su puesto pagandote religiosamente lo que me digas)... pertenezco al grupo "el mundo del spectrum" de facebook pero lamentablemente soy muy torpe con la electronica y no podria hacermele yo.... mi mail es bechasny@hotmail.es para que contactes conmigo, un saludo.

    ResponderEliminar
    Respuestas
    1. Respondo por aquí también para que quede.
      Claro que se puede!
      ya está en proceso de fabricación!

      Eliminar
  2. Funciona si, pero poner el spectrum en un LCD es una guarrada. Un teletubo para honrar al aparato como se merece....... Solo si juegas en crt podras decir que no tienes rival. Como el poli del retro te pille! Por cierto, estoy intentando hacerme uno, pero no funciona absolutamente ninguna direccion, ni siquiera juntando los cables del puerto. Quiza solo tenga el mio jodido, es un 128+

    ResponderEliminar
    Respuestas
    1. Deberías tener claro cual es el protocolo de tu Spectrum. Solamente he ojeado por encima el artículo, pero parece que usa el protocolo de Atari y quizá tú uses el de interface 2. empieza por comprobar eso y de ser distinto, realiza las modificaciones de conexionado pertinentes.

      Eliminar