SejoProyectos: Verano 2011

Thursday, May 19th, 2011

Ahora que empezaron las vacaciones, no hay que desaprovechar la gran oportunidad que se nos está dando para realizar proyectos sin presiones y distracciones de la escuela.

En este post describo varios proyectos que tengo ganas de realizar este verano, los publico porque pienso que estaría muy bien que colaboráramos entre varias personas para desarrollarlos.

Cada proyecto tiene su título, una pequeña descripción, y una lista de actividades generales que el proyecto implica. Cuando dice diseño de hardware digital se refiere a usar VHDL e implementarlo en FPGA. Las actividades que contienen la palabra software están pensadas para ser realizadas principalmente en C o en Python, aunque también se aceptaría Java. Diseño y elaboración de PCBs implica hacer esquemáticos y plantillas de PCBs (Printed Circuit Boards), además de armarlos físicamente.

Si están interesados en trabajar en alguno de ellos o si tienen otras propuestas, no duden en contactarme a través de los comentarios de este post, de Twitter (@SrSejo) o de Facebook.

Redes neuronales en hardware: reconocimiento de imágenes

Aprovechando la flexibilidad y paralelismo de las FPGAs, en este proyecto se implementarán redes neuronales en ellas. La idea es tener una respuesta inmediata al recibir un estímulo nuevo, lo que le permitiría un funcionamiento óptimo en aplicaciones donde se requiere velocidad. Tengo interés en usarlas para reconocimiento de imágenes, especialmente en reconocimiento de caracteres escritos.

Actividades / Temas:

  • Diseño de hardware digital.
  • Software de interfaz PC – hardware.

Analizador lógico de múltiples canales

Un analizador lógico es un dispositivo que presenta los estados de una señal digital en función del tiempo. En el laboratorio usamos osciloscopios con este fin, con la gran desventaja de que solo cuentan con dos canales debido a la naturaleza analógica de sus posibles entradas. Este proyecto consiste en diseñar un módulo de hardware digital que al conectarlo a una computadora cumpla la función de analizador lógico de múltiples canales.

Actividades / Temas:

  • Diseño de hardware digital.
  • Software de despliegue (graficación) de señales / datos.
  • Software de interfaz PC – hardware.
  • Diseño y elaboración de PCBs.

Brainfuck microcomputer

Brainfuck es un lenguaje de programación ‘esotérico’ consistente en solo ocho instrucciones de un caracter de longitud cada una. La idea de este proyecto es diseñar un procesador junto con hardware periférico mínimo (e.g. interfaz serial) para obtener una computadora que funcione a base de Brainfuck compilado.

Actividades / Temas:

  • Diseño de hardware digital.
  • Software ensamblador / compilador de Brainfuck.
  • Software de interfaz PC – hardware.

Ropa con LEDs

Inspirado en tendencias actuales, este proyecto interdisciplinario (ingeniería + diseño) tiene como fin desarrollar prendas de vestir con LEDs que se encienden por acción de un microcontrolador.

Actividades / Temas:

  • Programación de microcontroladores.
  • Diseño de modas / gráfico / industrial.
  • Diseño y elaboración de PCBs, arreglos de LEDs e interconexiones.
  • Software de interfaz PC – hardware.

Experimentación con distintos microcontroladores y microprocesadores

Más que un proyecto, quisiera hacer pruebas con las siguientes plataformas: ATmega16 (el microcontrolador que sustituirá al 8051 en la materia de Microcontroladores), MicroBlaze (soft-processor de Xilinx que se puede implementar en una FPGA), x86 y x86_64 en Linux

Actividades / Temas:

  • Programación en lenguaje ensamblador.

Engineering: making your dreams come true 😛

friends2list

Saturday, January 9th, 2010

Bien, ayer lo hice en PHP y hoy quise hacerlo en Python para poderlo distribuir. Me atrevo a decir que este, mi primer experimento con la API de Twitter, salió bien 😀

friends2list es un script en Python que tiene como función el crear una lista en la cuenta propia del usuario en Twitter y agregarle todos (bueno, máximo 499) los amigos de otro usuario que indiquemos. Claro está, no podemos agregar los amigos de alguien con perfil privado y que no nos ha autorizado. Y son máximo 499 por el límite que impone Twitter a las listas. La interfaz está en inglés para hacerlo más distribuible y porque me gusta cómo se ve el software en ese idioma 😛

Lo pueden descargar del siguiente link:

friends2list.py.zip (Versión 0.1.2, archivo zip)

Requerimentos: Una conexión a Internet estable. Al menos Python 2.6.4 (según yo es esa versión… pero tal vez alguien con una versión anterior lo puede refutar), que pueden descargar aquí. Si están en Linux o en Mac OS X entonces ya tienen Python, pero puede ser que no esa versión. En windows no sé cómo esté la onda, pero en la página veo que también se puede descargar…

Para ejecutarlo tienen que descargarlo, descomprimirlo, en una terminal (en Linux con GNOME: en Aplicaciones / Accesorios / Terminal, en Mac OS X: Aplicaciones / Utilidades / Terminal) dirigirse al directorio donde se encuentre el archivo, y escribir lo siguiente (dando “enter” después):

python friends2list.py

O de forma más general, en sistemas basados en UNIX (Mac OS X, Linux):

python /path/al/archivo/friends2list.py

Tal vez luego le haga una interfaz gráfica…

friends2list es software libre pues usa la GNU General Public License. Así que pueden usarlo, modificarlo y compartirlo -con o sin cambios- libremente :D… (Lo que descargan es el código fuente, por lo que con cualquier editor de texto lo podrán ver y cambiar)

Se aceptan comentarios, sugerencias, mejoras, bug reports…

¡Arriba el Software Libre!

Este programa va dedicado a Ella por alegrarme demasiado la vida, a @feitesmCCM por darme la idea de este programa por seguir a más personas del Tec que las que hay en mi lista, y a @Mini0n por darme la idea de hacer un blog aparte para proyectos ingenieriles 😛

UPDATES:

8 de enero de 2009, 22:35: Al parecer actualmente hay un problema con algunas cuentas de twitter por el cual hay un error cuando se quieren obtener más de 100 de sus amigos (más info aquí ). La versión 0.1.2 avisa de ese error, pero por el momento parece que no hay más que hacer…