Tabla de contenido:
- Paso 1: características
- Paso 2: Cosas que necesitará
- Paso 3: Grabar el cargador de arranque
- Paso 4: construcción de la unidad
- Paso 5: ESQUEMA
- Paso 6: SOFTWARE EJECUTANDO A BORDO
- Paso 7: Videoclip de la mini aplicación 'sm' en ejecución
Video: DemUino - Ordenador / controlador doméstico: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
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
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
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:
PIR práctico para uso doméstico: 7 pasos (con imágenes)
PIR práctico para uso doméstico: como muchos de ustedes que trabajan con proyectos de automatización del hogar, estaba buscando construir un sensor PIR funcional para automatizar algunos giros en las esquinas en mi propia casa. Aunque los sensores PIR del interruptor de luz hubieran sido óptimos, no se puede doblar una esquina. Thi
Agregar un monitor de uso a un termostato doméstico: 4 pasos
Agregar un monitor de uso a un termostato doméstico: Hace mucho, mucho tiempo, mucho antes de que existiera algo llamado "inteligente" termostato, tenía un termostato en casa que daba un total diario (creo que, tal vez semanal) de " a tiempo " para mi sistema de calefacción y aire acondicionado. Las cosas cambiaron … Las últimas
Controlador de juegos de bricolaje basado en Arduino - Controlador de juegos Arduino PS2 - Jugar a Tekken con el gamepad DIY Arduino: 7 pasos
Controlador de juegos de bricolaje basado en Arduino | Controlador de juegos Arduino PS2 | Jugar a Tekken con DIY Arduino Gamepad: Hola chicos, jugar juegos siempre es divertido, pero jugar con su propio controlador de juego personalizado DIY es más divertido. Así que haremos un controlador de juego usando arduino pro micro en este instructivo
Controlador Arduino HRV (Intercambiador de aire doméstico) con economizador de aire: 7 pasos (con imágenes)
Controlador Arduino HRV (Intercambiador de aire doméstico) con economizador de aire: Controlador Arduino HRV con economizador de aire Así que mi historia con este proyecto es que vivo en Minnesota y mi placa de circuito está frita en mi LifeBreath 155Max HRV. No quería pagar los $ 200 por uno nuevo, siempre quería algo con un economizador de aire sin
YABC - Otro controlador Blynk más - Controlador de temperatura y humedad en la nube de IoT, ESP8266: 4 pasos
YABC - Otro controlador Blynk más - Controlador de temperatura y humedad de la nube de IoT, ESP8266: Hola fabricantes, recientemente comencé a cultivar hongos en casa, hongos ostra, pero ya tengo 3x de estos controladores en casa para el control de temperatura del fermentador para mi cerveza casera, esposa también está haciendo esto de Kombucha ahora, y como termostato para calor