Tabla de contenido:

DemUino - Ordenador / controlador doméstico: 7 pasos
DemUino - Ordenador / controlador doméstico: 7 pasos

Video: DemUino - Ordenador / controlador doméstico: 7 pasos

Video: DemUino - Ordenador / controlador doméstico: 7 pasos
Video: Part 1 - The Wind in the Willows Audiobook by Kenneth Grahame (Chs 01-05) 2024, Noviembre
Anonim
Image
Image
Quemando el cargador de arranque
Quemando el cargador de arranque

Una computadora inspirada en Arduino de DemeterArt Aproveche al máximo su antiguo teclado PS2. ¡Hackéelo en una computadora personal personalizada para controlar cosas! Siempre he querido construir mi propia computadora en casa, con un estilo retro, nada sofisticado pero con capacidades particulares adaptadas a mis preferencias. Entonces, lo hice con el MCU atmega328 y el kit de desarrollo Arduino.

Permítanme decirles que este proyecto habría tardado mucho más con resultados dudosos si no fuera por los fanáticos talentosos que, egoístamente, suministran las bibliotecas de software gratuito para que todos las usen. Gracias a todos:-)

visite mi sitio para leer la historia completa y descargar todos los archivos relevantes

www.sites.google.com/site/demeterart

Paso 1: características

  • Basado en ATMEGA328 con flash de 32KB, SRAM de 2KB y EEPROM de 1KB.
  • soporte para modos interactivos y por lotes
  • editor de línea y modo de lista durante la edición
  • 8 personajes personalizados para gráficos de usuario
  • 60 pasos de programa numerados 00,…, 99
  • Bucles "If" condicional, "while" y "for" más declaraciones "goto" y "sub" para la ramificación
  • Expresiones aritméticas y matemáticas básicas más pruebas booleanas
  • Las variables del sistema permiten eventos cronometrados, promedio, rms, valores mínimos y máximos de pines analógicos, etc.
  • 26 variables de usuario para interactuar con las variables y los comandos del sistema
  • 104 bytes de una matriz direccionable por el usuario o 52 enteros cortos
  • capacidad para leer / escribir datos de programas, así como codificar sobre la marcha (variable p)
  • aplicación de mini osciloscopio con caracteres personalizados para pseudo gráficos
  • guardar y cargar programas y datos hacia / desde EEPROM
  • cargar / guardar programas y variables desde / a la PC
  • autoexec para cargar y ejecutar un programa desde EEPROM después de cada reinicio
  • 9 pines GPIO (SPI incluido) disponibles en el conector DB15 externo
  • ZUMBADOR para efectos de sonido

Paso 2: Cosas que necesitará

Un viejo teclado ps / 2 lo suficientemente grueso como para albergar la pantalla de caracteres LCD de pcb (el formato paralelo popular) Chip MAX232 para puerto RS232 atmel atmega328PU Arduino kit de desarrollo con regulador IDE 1.0.1 LM7805 rectificador de puente de zumbador de 5 V, condensadores, un botón de reinicio, conectores, etc.

Paso 3: Grabar el cargador de arranque

Entonces, después de haber comprado un chip atmega328PU "vacío", hay que tomar una decisión. ¿Utilizo un programador especial, ya sea externo o ISP, o grabo el gestor de arranque Arduino en la bestia y hago que la unidad sea programable a través de su puerto UART? ¡Elegí este último para hacerme la vida más fácil! El nuevo gestor de arranque ocupa solo medio kilobyte de memoria flash dejando un poco más de 31 KB de programa de usuario y datos estáticos disponibles. El sitio de Arduino cubre el caso de quemar el cargador de arranque en un nuevo chip, cuando se trata de usar avrdude para quemar realmente el chip de destino, el proceso falló con un error que indica la identificación incorrecta para la MCU en particular. Entonces, después de buscar, encontré a este tipo que lo hizo bien y seguí su procedimiento. La única diferencia eran 2 archivos de configuración, avrdude.conf y boards.txt, necesarios para avrdude y arduino IDE 1.0.1 para hacerlo posible. Después de copiar los 2 archivos en sus ubicaciones adecuadas (primero haga una copia de seguridad de los antiguos), la opción 'arduino328' de herramientas-> Placa estaba disponible y avrdude procedió a quemar los fusibles y el gestor de arranque. ¡Ahora el chip está listo para ser programado desde la nueva máquina!

Paso 4: construcción de la unidad

Construyendo la Unidad
Construyendo la Unidad
Construyendo la Unidad
Construyendo la Unidad

Se utilizó una placa perforada con tiras de cobre como una solución de montaje rápido con enchufes DIP para los chips, ya sabes, ¡por si acaso! Luego, los agujeros y cortes para los conectores, el botón de reinicio y la pantalla LCD se abrieron a través del plástico extremadamente resistente y grueso del teclado. ¡Sí, eso fue construido hace 25 años! Siguió el lío de cables que emanaban de la placa de circuito impreso hacia los distintos periféricos. Una verificación de continuidad rudimentaria y luego se conectó el suministro sin chips poblados solo para verificar que los enchufes tengan los voltajes adecuados. Luego vinieron los 2 circuitos integrados y la caja del teclado se cerró firmemente a través de sus broches de plástico en la parte inferior. ¡La unidad estaba lista para grabar bocetos en el controlador!

Sugiero que se utilicen condensadores no polares de 1uF / 16V para las bombas de carga MAX232. Ubique los condensadores de desacoplamiento de 100nF para los dos chips lo más cerca posible de los respectivos pines VCC y GND. Utilice una conexión en estrella para la alimentación y la tierra con referencia al regulador LM7805. El interruptor 2 podría ser un puente dependiendo de la impementación, pero es bueno tenerlo, aunque solo sea para evitar reinicios no deseados de MCU desde la PC host en ciertos casos. En cualquier caso, el interruptor debe estar cerrado para permitir que Arduino IDE queme el boceto reiniciando la MCU de destino (pin DTR de RS232). En mi caso la conexión es permanente (siempre cerrada). Utilice una resistencia en serie para el zumbador para aislar los varios nF de capacitancia de la puerta de activación … nunca se sabe. Ubique el XTAL y los capacitores de carga de 18-22pF lo más cerca posible de los pines respectivos del controlador.

Debido al puente rectificador, la unidad puede ser alimentada por adaptadores de corriente CA y CC. En el caso de CC, hay una caída de voltaje de 1,5 V entre el adaptador y la entrada al regulador. En el caso de CA, la entrada del regulador es aproximadamente 1,4 veces la salida RMS del adaptador o menos debido a la carga. Si la diferencia entre la entrada del regulador y su salida (+ 5V) es grande, digamos 7 voltios, entonces la potencia consumida por el regulador se acerca a 0.5 vatios y es mejor usar un pequeño disipador de calor sobre el cual montar el chip (provisto hay espacio para él) para largas horas de funcionamiento en climas cálidos.

El fusible de entrada de CA puede seleccionarse dependiendo de sus cargas externas (a través del conector DB15). Otros factores que influyen en la elección del fusible son la resistencia limitadora de corriente para la retroiluminación LED de la pantalla LCD, el condensador puente para la corriente de carga y la capacidad de corriente del transformador de suministro.

Paso 5: ESQUEMA

ESQUEMÁTICO
ESQUEMÁTICO

Paso 6: SOFTWARE EJECUTANDO A BORDO

Este es el boceto que hace que todo suceda … ¡y 32 KB NO es suficiente! Puede usarlo sin modificar, en cuyo caso agradecería una referencia a mi nombre, o cambiarlo a voluntad y olvidarme de mí;-)

Esta es la documentación detallada sobre la máquina.

Resumen de comandos y expresiones

: Una línea de comentario no imprimible

ai: adjuntar interrupción 0 (pin D2)

ar: lectura analógica

aw: "escritura analógica" por arduino o más correctamente pwm

ca: captura analógica en una matriz

cl: borra la pantalla cno: return * Prgm índice del número de línea

di: espera una serie de pulsos y mide la duración y el tiempo

dl: retraso

hacer: junto con "wh"

dr: lectura digital de cualquier pin

dw: escritura digital en cualquier pin

ed: modo editor / cargar programa desde PC / renumerar líneas

el: función de acceso EEPROM

end: la sentencia END de un programa

ensb: finaliza la subrutina

es: Función de acceso a EEPROM

fl: filtro de media móvil simple

fr: bucle for-next (fr-nx)

ir: saltar al paso del programa

gosb: continuar la ejecución a la subrutina

gt: espera la entrada del usuario

si: prueba la condición y salta al paso

io: GPIO 1-9 bits

ld: programa de carga / fusión desde EEPROM

lp:: bucle controlado por teclado en modo interactivo

ls: modo de lista / enviar programa a la PC una línea a la vez

ml: obtener tiempo

mm: muestra la memoria libre

nos: convierte el número en una cadena

nx: junto con "fr"

pl: diagrama de matriz cxx

pm: establecer pines para entrada o salida

pr: imprime un mensaje o valor o carácter personalizado

rgc: comando de copia de rango para matrices

rgs: comando de conjunto de rango para matrices

rn: ejecuta el programa en RAM

rs: reinicio suave

rx: recibe un carácter a través de RS232

si: entrada serial síncrona con pines de reloj y datos

sm: mini aplicación de osciloscopio sno: convierte una cadena en un número

entonces: salida serial síncrona con pines de reloj y datos

sub: declara subrutina

sv: guardar programa en EEPROM

tn: bip un tono

tx: transmite un número a través de RS232

wh: un bucle do-while usado junto con "do"

Paso 7: Videoclip de la mini aplicación 'sm' en ejecución

visite mi sitio para leer la historia completa y descargar todos los archivos relevantes

www.sites.google.com/site/demeterart

Recomendado: