Resucitar un viejo ZX Spectrum


Para los nostálgicos  el famoso ZX Spectrum es uno de  los primeros ordenadores personales     de  8 bits para el gran publico siendo  la evolución  con salida a color   de  maquinas anteriores (  el  ZX81 y ZX82 tenian salida de video  en  blanco y negro ) siendo  uno de los primeros ordenadores convencionales público de viviendas en el Reino Unido, similar en importancia para el Commodore 64 en los EE.UU.
El Spectrum fue lanzado  en  ocho modelos diferentes, que van desde el modelo de nivel de entrada con 16 KB de RAM lanzado en 1982 , hasta   el ZX Spectrum +3 con 128 KB de RAM    que fue  construido por fn con una unidad de  disquete  1987.  En total todos   juntos llegaron   a  venderse  más de 5 millones de unidades en todo el mundo (sin contar los numerosos clones )
En cuanto al hardware, este  se basaba  en un Zilog Z80  funcionando a 3,5 MHz (o NEC D780C-1 clon)con  16 KB (16 × 1024 bytes ) de ROM y, o bien 16 KB o 48 KB de RAM .  La salida de vídeo se   hacía  con  un modulador RF    con una resolución   de 256 × 192 con las limitaciones mismo color.  Para ahorrar memoria, el color se almacenaba separado del píxel de mapa de bits en una resolución baja, 32 × 24 superposición de la red, correspondiente a las celdas de caracteres. En la práctica esto significaba que todos los píxeles de una cuota de un bloque de color de primer plano el carácter de 8×8 y un color de fondo.La salida de sonido  se hacia con un convesor D/A  en la propia máquina siendo  capaz de producir un canal con 10 octavas.  La máquina también incluía un bus de expansión con conector de borde y conectopres  de 3,5 mm de audio para los puertos de entrada / salida para la conexión de una grabadora de cassette para cargar y guardar programas y datos. El puerto «out» era para los auriculares y el puerto «mic» proporciona nivel de línea  salida de audio que podría ser amplificado.

 

Este  es el aspecto de   un original Sinclair ZX Spectrum

My "new" ZX Spectrum

El problema para poder usar esta maquina  en los tiempos actuales  en un televisor moderno: resulta que el Spectrum utiliza un modulador RF – lo que le permite trabajar con conjuntos disponibles de televisión en los años 80/90 – por  lo  que se trata de una simple cuestión de omitir este componente , ya que el Spectrum genera vídeo compuesto de todos modos. Incluso hay un video en YouTube que a describe el proceso.

 

A pretty early model

El propio mod  es  funcional  y solo basta hacer  bypass en el modulador:

A bit of soldering work to bypass the RF Modulator

 

Después de conseguir que funcione con un moderno aparato de televisión, el siguiente reto es  conseguir algunos juegos cargados en ella. Casi cualquier juego que haya jugado o escuchado por el Spectrum está disponible en línea en formato digital, aunque debe tenerse en cuenta que la mayoría todavía están protegidos por derechos de autor. World of Spectrum tiene una gran colección , y si va más lejos se puede encontrar archivos «completos» que la gente ha enviado.

Los juegos para el ZX Spectrum se cargaban originalmente de cinta de cassette a través de un conector de audio. Muchos de estos juegos están disponibles en línea , pero en formato digital.

Un proyecto de futuro es utilizar uno de los servicios públicos relacionados con cinta- para crear un montón de WAV o MP3 para los juegos que se quieran cargar y luego ponerlos en un viejo iPod o un reproductor de Mp3,  de modo que pueda volver a vivir la experiencia de la carga y los juegos.

Para aquellos de ustedes que nunca han experimentado la carga de un juego de Spectrum, vale la pena echar un paso echar  un paso atrás en el tiempo y mirar que en más detalle …

Mono tape player De vuelta en el día, juegos de ZX Spectrum fueron comprados   en casete de audio. Para cargar uno en el equipo, había necesidad de colocarlo en un reproductor de cinta  y conectar  los enchufes de auriculares desde el reproductor  al  Spectrum a través de un conector de audio de 3,5 mm.

Esto siempre fue un poco confuso: la toma de «Ear» en el Spectrum se utiliza para la entrada de audio, mientras que «Mic» fue para la salida … pero en fin. Por lo general, intentado uno o el otro primero y cambiado si no funcionaba.

Más tarde los modelos Spectrum se habían integrado reproductores de casetes, 

Había que pensar en la limpieza de cabezales, bajo, agudos y volumen y aún había sólo algunos juegos que algunos reproductores  simplemente no les gustaba y no se cargaban con exito . No tengo otra forma de explicar por qué: algunos podrían nunca simplemente cargar desde ciertos resprioductores.

La carga de los juegos era, por tanto, una fiesta de la anticipación. Se conecta el reproductor de casetes, escriba LOAD «» y pulsa Intro en el teclado de goma, y ​​es de esperar que verías una alternancia de borde rojo y cian en la pantalla   hasta terminar.

Después vendría una serie de tonos – señales piloto – seguido de ráfagas de datos (lo que provocaba la frontera para ir locamente con un montón de rayas azules y amarillas:-). Era muy común que las pocas cuadros iniciales de datos para contener un «splash screen» – una imagen muy simple – que luego erán exhibidos mientras que el juego en sí estaba cargada.

Así que la estructura de los datos no era tan sencillo como simplemente estar sobre el código para ser cargado y ejecutado.

Con el tiempo – después de 3-6 minutos para un juego 16-48K o alrededor de 20 minutos para un juego 128K – el proceso de carga sería ya  éxito o no con un mensaje completamente devastador «error de carga R Tape». Dependiendo del resultado que podría o bien empezar a jugar o repetir el último proceso con otro jugador y varios otros dedos cruzados.

Ahora, en los tiempos actuales  nadie  quiere volver a cargar juegos desde la cinta para lo cula la idea seria ovtener datos de audio en cinta equivalente en formato MP3,  desde un reproductor de MP3 (relativamente) moderno.

El primer truco es conseguir que los juegos esteb  en un formato apropiado: los que están disponibles en formato TZX son generalmente adecuados, ya que tienen los bloques de carga codificados básicamente, ya que se almacenaron en la cinta. Esto significa que en esencia puede convertir de nuevo a formato WAV o MP3 y esperar que para ser cargable en un espectro físico (en lugar de trabajar con un emulador que, mientras que diversión, es una experiencia mucho menos espiritual).

Así que hay que  para convertir los diversos archivos TZX en un formato de audio de algún tipo. Una vez más, World of Spectrum tiene una gran lista de servicios públicos relacionados con cinta .En esta ocasión   se selecciono  winTZX , ya que parecía más adecuado.

winTZX in action

Esta procedimiento   permite crear un montón de MP3 desde los diversos archivos TZX que quiera cargar (puede buscar algo de inspiración de esta lista ). Terminando  de convertirlos uno por uno, puede que  no tenga mucho éxito con el modo por lotes de la utilidad winTZX.:lo ideal sería un enfoque más automatizado para poner hacia fuera MP3s de archivos TZX, pero esto  es suficiente para probar el concepto, por lo menos

Una vez tenga los  MP3, hay que encontrar una manera de conseguir que a través de un iPod  se pueda transferir  al Spectrum  así que puede usarse una herramienta llamada SharePod ,  que permite manipular el contenido del dispositivo más manualmente.

SharePod managing my iPod Photo

Entonces ya es  un «simple» cuestión de conectar el iPod al ZX Spectrum a través de un cable de audio y reproducir  el archivo seleccionado al ejecutar el LOAD «» comando. El hablar de «simple», es porque que hay que usar  algunos trucos  para conseguir que funcione bien:

  • Utilizar un divisor de audio para enviar el audio a través de un equipo de música – en realidad no es lo mismo si no puede escuchar a los datos que se cargan.
  • Cambiado la configuración a «pequeños altavoces» en el iPod ecualizador, para reducir los graves . Otras opciones, como «para audiolibros» también podrían haber hecho el truco, aquí.
  • A medida que el iPod no tiene una configuración de equilibrio,  tirar de la clavija de audio ligeramente desde el divisor con el fin de obtener la salida a mono. Este era endiabladamente difícil de hacerlo bien: demasiado poco o demasiado lejos y la señal no sería detectado.

iPod Photo loading Horace and the Spiders

Y aquí está la carga y reproducción de un viejo clásico de Spectrum, Horacio y las arañas:

 

Fuente  aqui

Luces intermitentes con un Digispark


 Digisparks   es   el resultados de la financiación de un proyecto en Kickstarter en 2012 .El DigiSpark no esta pensado para igualar las capacidades de un Arduino Uno, por ejemplo. Su ventaja está en la portabilidad ,bajo coste(menos de 10$) , reducidisimas dimensiones  y la familiaridad de uso ,pues ocupa el mismo Arduino IDE (aunque no es compatible con todos los sketchs).

Sus principales características son:

  • Soporte para el Arduino IDE 1.0+ (OSX, Windows  y Linux)
  • Alimentación via USB o fuente Externa – 5v or 7-35v (selección automática – 12v o menor es recomendado)
  • Regulador USB incorporado de 500ma 5V
  • 6 Pines de I/O (2 se usan para USB solo si el programa se comunica activamente via USB, de otra manera se pueden usar los 6)
  • 8k de Memoria Flash (cerca de 6k despues del bootloader)
  • I2C y SPI (via USI, Universal Serial Interface)
  • PWM en 3 pins (es posible mas usando Software PWM)
  • ADC en 4 pines
  • LED de alimentación y Test/Status LED (en Pin1)

Digispark posee un microcontrolador Atmel Attiny 85 en una placa muy pequeña(17,5 x16mm) ,  además tiene shields especiales para hacer demostraciones o para extender las funciones básicas.

El kit viene con sus piezas separadas y se deben soldar, lo que no toma mucho tiempo y es fácil de hacer.

El Digispark es una placa muy barata, con desarrollo USB (y producción) mediante plataforma Arduino compatible pequeñito-minúsculo,». Y como se puede ver aquí, realmente es muy pequeña (confía en mí – Tengo las manos bastante de tamaño medio;-).

The Digispark - it's really tiny

El chip en sí es  compatible con el estándar de Arduino y herramientas: la descarga del controlador viene con la versión 1.0.3 del IDE de Arduino (que se  usa con  proyectos de Arduino -lo cual permite reemplazarlo con esta versión de   subconjunto de Digispark. El Digispark tiene un ATtiny85 microcontrolador (mientras un Arduino Uno R3 tiene un ATmega328P , para la comparación), y, en general claramente tiene menos capacidad que la plena Arduino .

En relación al software lo mejor es bajar el siguiente archivo trae versión personalizada y otros ejecutables. Este es el link, asi evitamos conflictos con instalaciones anteriores.

Primero se instalan los drivers. Se descomprime el archivo que se baja, se va a la carpeta Digispark-> Windows Driver, ejecutar el archivo InstallDriver.exe.

Ahora se va a la carpeta \DigisparkArduino-Win32\Digispark-Arduino-1.0.4 y se ejecuta Arduino.exe ese es nuestro IDE.

Pero para los pequeños proyectos como luces parpadeantes – esta vez sólo con 6 LEDs, pues  tiene menos pines que trabajar – lo hace muy bien:

Digispark blinking LEDs

 

En el arduino IDe se selecciona Tools->Boards->DigiSpark y Tools->Programmer->DigiSpark

En la iamgen ser ver aquí que  se puede usar un cable de extensión USB para evitar conectar el dispositivo directamente al  PC: cuando se desarrolla con el Digispark necesita desenchufar el aparato antes de cada compilación y carga – volver a enchufarlo sólo cuando se trata ha sido hecho – lo cual sin duda puede dañar  el conector si no se usa una extensión  pues  ademas oportar el peso de este.

Este paso adicional hace que sea un poco más incómodo, al principio, pero enseguida se puede  acostumbrar a él. También vale la pena teniendo en cuenta que, dada la naturaleza de la Digispark, es naturalmente menos robusto que un Arduino completo, así que se debe tener cuidado al trabajar con ella: un corto circuito podría dañarlo irremediablemente, por ejemplo.

La programación no es igual que Arduino pues se debe compilar el programa y luego se conecta el Digispark, tienes 5 segundos para conectar, por eso es util o bien adquirir el cable usb extensor  o bien el  accesorio  de programación que trae un interruptor para el USB.

Asimismo  hay disponible  una caja en kit   de acrílico con las piezas  cortadas con láser :

Building the laser-cut cases

Y luego probado uno pequeño como parte de este proyecto:

Inside one of the acrylic cases

El ajuste fue bastante bueno, aunque la cantidad modesta de soldadura inexperto que realiza para unir los conectores macho significaba la ranura para el conector USB obligado al Digispark a estar en un ángulo. Probablemente se podría aplanar la parte inferior mediante la reducción de los pines y la soldadura de un poco más de cuidado, espero.

Fuente   aqui