Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Kit Simulador Altair 8800 Basado en Arduino: Construye y Programa un Computador Retro

Componentes y Suministros

Arduino Mega 2560 × 1
Arduino Due (alternativa al Mega, no se necesitan ambos) × 1
LED genérico × 36
Transistor NPN de uso general × 36
Resistencia 10 kΩ × 36
Resistencia 150 Ω × 36
Interruptor basculante mini SPDT On-On (16 para direcciones + 1 de encendido) × 17
Interruptor momentáneo SPDT (On)-Off-(On) (para funciones RUN/STOP/EXAMINE...) × 8
Chapa metálica para panel frontal × 1
Módem Bluetooth SparkFun BlueSMiRF Silver (opcional, para terminal serie vía Bluetooth) × 1
Tarjeta microSD con adaptador (opcional, solo para emulación de unidad de disco) × 1

Aplicaciones y Servicios en Línea

Sobre el Proyecto

Durante mucho tiempo quise tener un computador Altair 8800 para experimentar. Pero los Altair originales funcionales son raros y caros (1500–2500 $). Existen alternativas como altairclone.com, pero cuestan unos 600 $. Afortunadamente, Mike Douglas (creador del Altair Clone) puso a disposición de la comunidad toda la documentación y el software que recopiló, lo que permite entender el funcionamiento interno del Altair y sus periféricos más populares.

Al revisar las especificaciones del Arduino Mega 2560, me pregunté si tendría suficientes pines I/O para conectar directamente los LEDs e interruptores del panel frontal del Altair y escribir mi propio emulador. Resulta que el Mega tiene exactamente el número justo de pines. Así que decidí crear mi propio clon del Altair.

Kit Simulador Altair 8800 Basado en Arduino: Construye y Programa un Computador Retro

Usar el Arduino Mega funcionó bien y fue sencillo de configurar, pero la emulación corre solo al ~25 % de la velocidad original y ofrece solo 6 KB de RAM emulada (aunque en la época eso era mucho). El almacenamiento permanente también es limitado: la EEPROM del Mega solo almacena 4 KB.

El Arduino Due, en cambio, tiene memoria suficiente para 64 KB de RAM emulada y corre mucho más rápido. Además, puede guardar datos en la memoria flash en tiempo de ejecución, permitiendo usar hasta 32 KB de almacenamiento semipermanente para cargar y guardar programas y datos en el emulador.

Con el Due ahora tengo un simulador Altair 8800 que funciona a velocidad original, proporciona 64 KB de RAM, incluye mucho software histórico y aún ofrece 32 KB de almacenamiento permanente.

Aspectos Destacados

Importante: En el Due, todos los datos capturados o guardados en el simulador se borran al subir un nuevo sketch, porque se almacenan en memoria flash que se borra al reprogramar. Si se usa tarjeta SD, los datos se guardan allí y no se pierden al actualizar el firmware.

Documentación

Como el simulador funciona igual que el Altair 8800 original, la documentación original (fácil de encontrar en Google) proporciona toda la información necesaria para operar los interruptores del panel frontal.

Sin embargo, el simulador incluye funciones extra y software integrado accesibles mediante los interruptores AUX1/AUX2 del panel frontal (presentes en el original pero sin uso). Esa funcionalidad se explica en un documento aparte (Documentation.pdf en el repositorio), demasiado extenso para incluir aquí.

Instrucciones de Montaje

El objetivo era usar la mínima circuitería de apoyo. Tanto el Mega como el Due tienen suficientes pines I/O para cablear directamente todos los elementos del panel frontal. Solo se necesitan transistores y resistencias para pilotar los 36 LEDs (si se conectaran directamente a los pines del Arduino, la corriente total al encender muchos simultáneamente superaría los límites del microcontrolador).

En lugar de esquemas completos (tediosos y repetitivos: 36 circuitos idénticos de driver LED, cableado de 32 interruptores), el documento de esquemas contiene tablas detalladas de qué elementos van a qué pines del Arduino y los esquemas de los subcircuitos (drivers de LED). También se incluye un archivo Fritzing que muestra la disposición de los componentes en la placa de tiras (stripboard).

Para el panel frontal, partí de un escaneo de alta calidad del panel del Altair (disponible en vintage-computer.com) e imprimí en cartulina en una copistería. Como soporte usé una chapa de 22 gauge, taladrando los agujeros para LEDs e interruptores con un taladro normal. Los circuitos de driver de LED se sueldan en tiras de stripboard que se sueldan directamente a los LEDs, sujetados por la chapa metálica.

El panel se sostiene verticalmente con una caja de madera simple, menos profunda que el Altair original porque solo aloja el panel y el Arduino.

Kit Simulador Altair 8800 Basado en Arduino: Construye y Programa un Computador Retro

El interruptor de encendido del panel frontal se cablea añadiendo un conector de alimentación (igual que el del Arduino) a la caja, conectándolo al interruptor del panel y de ahí a un enchufe que va al Arduino.

Con el Arduino Due, la emulación de hasta 16 unidades 88-DCDD puede activarse conectando una tarjeta SD al puerto SPI del Due. La última página del documento de esquemas muestra el cableado detallado.

Antes de subir el sketch al Due, cambie la optimización del compilador de Arduino a "performance" (por defecto está en "size"). Edite el archivo platform.txt (ruta típica: c:\Users\[usuario]\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\platform.txt) y reemplace todas las ocurrencias de -Os por -O3. Si omite este paso, el simulador irá significativamente más lento.

El software también puede ejecutarse en un Arduino "pelado" (Mega o Due) sin panel frontal. Esto permite correr muchos programas incluidos (los que usan principalmente terminal serie). Para ello, edite config.h y establezca #define STANDALONE 1. Consulte la sección "Debugging capabilities" en la documentación para operar el panel frontal virtual. No es el uso previsto; si no quiere construir el hardware, use emuladores basados en PC. El archivo config.h contiene interruptores para incluir/excluir funcionalidades; los valores por defecto funcionan bien.

Agradecimientos

Foro de Discusión

Chris Davis (Altairduino.com) ha creado un grupo de Google para discutir dudas sobre Altair-Duino:
https://groups.google.com/forum/#!forum/altair-duino

Código

Código del simulador Altair 8800 para Arduino

https://github.com/dhansel/Altair8800

Esquemas

En lugar de esquemas completos (muy repetitivos), este documento describe qué pines conectar a qué elementos del panel frontal y proporciona esquemas de los subcircuitos (drivers de LED, etc.). Incluye archivo Fritzing ledstrip_4OVCpRyKQS.fzz que muestra la disposición en la stripboard (importante: los componentes de cada LED ocupan máx. 5 pistas para mantener el tamaño original del panel).

Proceso de manufactura

  1. Panel de control para Flight Simulator 2020 con Arduino Nano: Pantallas LCD y CDI
  2. Construye un Spybot controlado por Bluetooth con Arduino
  3. FlickMote: Mando IR por gestos para Smart Home
  4. TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
  5. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
  6. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  7. Soluciones de Alimentación Optimizadas para Proyectos Arduino
  8. Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
  9. Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
  10. Construye un volante joystick personalizado con Arduino para gaming
  11. Construye una Máquina CNC Totalmente Funcional con Arduino Nano R3