BioSejo

esto es —como [casi] diría Voet,D. et al. en el subtítulo de su libro de bioquímica— "Mi Vida a Nivel Molecular"… blog de sejo con colaboración de la sejoina, la sejosa, la sejasa, el sejinTriFosfato, y otras c-osas y cos-inas más

(¿y qué demonios con el Proyecto del que tanto tuiteas, piensas, y en el que usas tu tiempo?)

Hola a todos

Quiero retomar mi blog para tratar de explicar lo que me mantiene  ocupado gran parte del tiempo – el proyecto de la materia Laboratorio Integral de Sistemas Digitales- porque se me dificulta hacerlo en menos de 140 caracteres.

En mi necesidad de expresión he tuiteado unas fotos al respecto, pero sé que no tienen mucho sentido para el público en general.

El proyecto se trata de conectarle una cámara de video y una pantalla a un “chip”, y hacer que ese chip vea el video, busque algún objeto específico, lo ubique y calcule cómo se está moviendo. En la pantalla se verá el video con algún cuadrito mostrando la ubicación del objeto (como en las cámaras que reconocen caras), y una línea que muestre cuál se espera que sea la trayectoria que siga.

El “chip” que usamos es algo especial, una tecnología en auge que lleva unos 20 años de existir: una FPGA . FPGA significa Field-Programmable Gate Array, lo cual no tiene mucho sentido si no nos metemos a hablar de teoría de Sistemas Digitales. No lo haremos, sólo cabe decir que una FPGA es un chip digital al cual uno puede decirle de qué forma conectarse por dentro para lograr diferentes funciones. Es “hardware no tan hard”, o “hardware modificable”

Lo que se hace para trabajar con ella es primero pensar en cómo realizar el sistema que se quiere, para entonces diseñarlo. Después, en una computadora, ese diseño se escribe (describe) en un lenguaje llamado VHDL (NO ES UN LENGUAJE DE PROGRAMACIÓN). La computadora entonces traduce ese diseño a un mapa de conexiones, y luego se lo envía a la FPGA para que ella tome la forma (literalmente) de ese sistema diseñado.

Mucho choro, qué onda con las fotos que has subido…

Estos días, lo que he diseñado hace lo siguiente:

  • controlar una salida “VGA” (la de los proyectores o monitores) para que pueda mostrar aproximadamente 16 millones de colores diferentes (para los que le saben más: colores de 24 bits)
  • leer información de cada pixel de un chip de memoria RAM y mostrarla en pantalla
  • recibir instrucciones que yo le mande desde una computadora a través de un cable [serial]
  • a través de ese cable, recibir imágenes BMP (las de Paint) en escala de grises y guardarlas en la memoria RAM

La primera foto que subí hace poco (3 días) muestra el resultado del sistema sólo hacía los dos primeros puntos. Lo que se ve en la pantalla es el contenido random de la memoria RAM al encenderse

La foto de hace rato ya muestra al sistema que hace los 4 puntos. Yo le mandé desde mi compu una imagen de Demi Lovato,  y él la guardó en la memoria (pixel por pixel) y luego la leyó y proyectó en el monitor

La tarjeta que se ve abajo a la izquierda tiene soldada a la FPGA y varias conexiones. Se aprecia el cable USB con el cual la compu le dice qué forma tomar, el cable serial con el que le mando la imagen, y el cable VGA hecho por nosotros con el que lo conectamos al monitor

¿Por qué Demi Lovato? Porque me gusta cómo se ve en esa foto, y era algo así como una buena recompensa al hacer que todo funcionara. Fue genial haber trabajado tanto en esto, enviarle la imagen desde la compu al chip, y ver cómo la mostraba tal cual 🙂

Luego profundizo más en los temas, en lo que vaya haciendo, “o así”

Saludos 🙂