Construyendo un mini-pc con Arduino en una caja de puros.

DSC_0277

Hola a todos. Tras la anterior entrada “Conectando un LCD + teclado ps/2 a un Arduino” , vamos a darle una vuelta mas de tuerca. Construiremos un pequeño Pc con soporte para teclado y lector de tarjetas SD.

Haciendo un pequeño homenaje a Steve Wozniak y Steve Jobs, que fabricaron su primer Apple 1 en una caja de madera, nosotros utilizaremos una caja de puros, que también es de madera 🙂

Todo lo referente al montaje del conector VGA y del conector PS/2 lo podéis encontrar aquí.

Este es el material que vamos a necesitar:

  • Un Arduino UNO (vale cualquiera).
  • Una caja de puros de madera.
  • Un LCD de 10″ (HSD100IFW1).
  • Una controladora VGA (RM3251C).
  • Conector VGA macho.
  • Conector ps/2 hembra.
  • Una fuente de alimentación de 12V 2A.
  • Conector DC para montaje en base.
  • Un interruptor y un pulsador.
  • 3 resistencias de 480 ohm.
  • 2 resistencias de 68 ohm.
  • Sd shield (dfrobot.com).

Unas imágenes de nuestro material:

  • Un Arduino :

ArduinoUno_R3_Front

  • Una caja de puros:

puros coibas

  • Un LCD, en este caso el modelo es HSD100IFW1 :

lcdlcd-tras

  • Controladora VGA para el LCD (RM3251C):

lcd-3451

  • Conector VGA macho:

conector-hpdb-15-macho-para-soldar-vga

  • Conector ps/2 hembra:

conector ps2

  • Fuente de alimentación 12V 2A:

12V500MAR

  • Conector DC para montaje en base:

dc_jack

  • Un interruptor y un pulsador:

boton-interruptor-redondoboton-interruptor-cuadrado

DFR0071

  • Resistencias:

resistencias

¡¡¡ Empecemos con el bricolaje !!!

Lo primero que tendremos que hacer es preparar nuestra caja de puros para poder acoplarle toda la electrónica necesaria.

  • Empezaremos preparando la tapa de la caja para motar el LCD:

DSC_0077

DSC_0079

DSC_0080

  • Ahora procederemos a preparar un lateral de la caja:

DSC_0083

De izquierda a derecha tenemos: Ranura para tarjeta SD, conector ps/2, conector de alimentación, botón de encendido y pulsador de reset (si, como buen ordenador, necesita un pulsador de reset).

DSC_0098

  • Prepararemos la base de la caja para alojar toda la electrónica:

DSC_0084

  • Ahora nos construiremos una pequeña shield casera para colocar el modulo SD, el conector ps/2 y el conector de alimentación.

DSC_0082

DSC_0281

  • Montaremos el resto de la electrónica: La placa Arduino y la controladora VGA.

DSC_0085

Llegados a este punto, nos falta realizar la conexiones electricas (mas abajo encontrareis los esquemas de conexión):

  • Conectar la controladora VGA al Arduino.
  • Conectar la SD shield al Arduino.
  • Conectar el ps/2 al Arduino

DSC_0088

A la hora de alimentar nuestro ordenador, tenemos 2 opciones: (¡¡¡ RECORDAD QUE TODAS LAS MASAS(GND) TIENEN QUE SER COMUNES!!!)

  • Primera: Alimentar la controladora a 12V (obligatorio) y el Arduino también a 12V(opcinal). Simplemente del conector DC, sacamos dos pares de cables(positivo y GND), pasando los positivos a traves del interruptor, a cada dispostivo. Asi tendremos un par de cables (positivo y GND) para el Arduino, y otro par de cables para la controladora VGA.
  • Segunda: Alimentar la controladora a 12V (obligatorio) y el Arduino a 5V.  Esta opción es fácil de llevar a cabo ya que la controladora VGA proporciona 5V en uno de sus conectores. En la cara inferior de la controladora, encontraremos las nomenclaturas de los pines.

vga 5 v

Por último, nos quedaría habilitar el pulsador de reset. Esto se consigue conectando el pin Reset de Arduino con GND a traves del pulsador.

Aquí tenéis una imagen con todo el montaje concluido:

DSC_0276

DSC_0100

Ahoro toca la parte de electrónica:

  • Conector VGA:

VGA_Output_10

  • Conector ps/2:

ps2keyboard_schematic

  • SD shield:

Pin MOSI ——> Pin 11 Arduino

Pin MISO ——> Pin 12 Arduino

Pin SCK ——-> Pin 13 Arduino

Pin SS ———> Pin 8 Arduino

Y por ultimo, el software:

Simplemente comentar que en este mini “sistema operativo” he implementado unos comandos muy básicos, los cuales comentaré a continuación:

  • about: Muestra información del programador, la versión y la fecha.
  • clr: Borra la pantalla.
  • ram: Muestra la cantidad de ram libre.
  • sd: Activa el modo tarjeta SD, esto es parecido a lo que en linux seria usar el comando “mount”.
  • ls: Muestra el contenido de la raiz de la tarjeta de memoria (el comando “sd” tiene que haberse ejecutado antes)
  • cua: Comando de prueba que simplemente muestra la palabra “cuadrado” por pantalla.

Hay que tener en cuenta que las limitaciones de Arduino son muy grandes para este tipo de proyecto, el consumo de RAM es muy alto, ya que tienen que cargarse en ella librerías de mucho peso. También hay tener en cuenta, que los sincronismos del LCD son muy delicados, de ahí que salgan “rayas” en el LCD cada vez que presionamos el teclado, el pequeño tiempo que se tarda en procesasar la interrupción generada por el teclado, afecta en el refresco del LCD.

Unas posible mejoras serían programar la navegación a traves de los directorios de la tarjeta SD, o crear un simple visualizador de ficheros txt. Recordad, el limite esta en la imaginación. Dejad volar vuestra creatividad.

Aqui teneis las librerias necesarias, recordad descomprimirlas en la carpeta “libraries” de nuestro IDE de Arduino: librerias

Y el skech para nuestro Arduino: sketch

Advertisements
This entry was posted in Arduino. Bookmark the permalink.

5 Responses to Construyendo un mini-pc con Arduino en una caja de puros.

  1. jaimegc says:

    Deberias de hacer un post diciendo como hacer algunos programas para este “mini ordenador” por ejemplo una calculadora etc..
    Un saludo adios.

  2. jaimegc says:

    hola cuando verifico el programa para cargarlo sin a ver tocado nada antes me da error y me dice lo siguiente: “byte screen_font [8] [256] progmem = { ” por favor ayudame intenta corregir tu el programa o al menos dime donde esta el error y dime como solucionarlo. Espero respuesta, gracias de antemano.Adios

  3. jaimegc says:

    perdon esque tengo el corrector automatico en el movil queria decir o almenos dime donde esta el error y como solucionarlo

  4. arduyectos says:

    Hola, he mirado el codigo, que tienes colgado en la pagina, y no da ningun error, es mas, la linea que da error no esta en el codigo. Seguramente tengas mal las librerias, asegurate que son las correctas.

    Saludos.

  5. jaimegc says:

    hola gracias pero creo que el problema es la memoria porque ocupa 9megas y el arduino uno tiene 2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s