Entradas

Mostrando entradas de 2014

Pequeños tesoros "Made in El Salvador"

Imagen
Creo que lo he mencionado en entradas anteriores pero para refrescarles un poco la memoria: hace ya casi 14 años salí de bachiller técnico en electrónica. En El Salvador tenemos la opción de graduarnos en una especialización "técnica industrial" al salir de la escuela secundaria. Al tomar dicha especialización, uno asiste a clases técnicas asociadas a la especialidad que uno elija en paralelo a las materias básicas que exige el ministerio en bachillerato. Estas materias si se toman en un colegio o instituto donde la calidad de la educación es buena son equivalentes a las primeras asignaturas que uno cursa en una carrera universitaria superior.

¿Qué es un HASH?

El día de ayer leía a través de meneame.net una entrada de blog de una compañía que desarrolla un bloqueador de malware intentando explicar ¿Qué es un HASH?(Inglés). Dentro de la entrada, explicaban escencialmente algunas características del HASH MD5. En lo personal entiendo el motivo de la publicación, sin embargo, no me agradó demasiado que se mezclaran algunos conceptos que a la larga podrían dificultar la comprensión de un concepto que debería ser sencillo, por ejemplo la idea errónea que un "hash puede ser crackeado". Posiblemente si estás en esta página aún no tengas claro ¿Qué es? y ¿Para qué sirve un HASH?, así que en los próximos párrafos intentaré explicarlo de la manera más sencilla posible y te explicaré también porqué "crackear un hash" no tiene sentido.

Arduino y el XBee Series 1 - (Modo API)

Imagen
En una entrada previa, les mostraba un muy corto video donde explicaba como configurar una XBee Series1 (XBee S1) en modo transparente . Este modo de configuración permite crear un enlace entre dos XBee muy rápidamente y prácticamente sin mayor configuración Sin embargo, cuando queremos armar una red inalámbrica donde necesitamos que se comuniquen entre si varios dispositivos o simplemente queremos conocer algo tan sencillo como la dirección del dispositivo que nos está enviando datos, el modo transparente resulta sumamente limitado. En esta entrada explicaremos un poco el funcionamiento de las redes con XBee y además les compartiremos un código muy fácil de usar y entender para utilizar las XBee Series 1 en modo API. La entrada es un poco extensa pero para que se hagan una mejor idea de lo que se puede lograr con el modo API les dejo un corto video:

Reto Electoral para Desarrolladores

Imagen
Reto Electoral para Desarrolladores Como algunos sabrán (y tal vez otros no), soy de El Salvador y el día de ayer se realizaron las elecciones presidenciales con un margen extremadamente ajustado (approx 6,000) de votos de diferencia de entre casi 3,000,000 de votos. Al momento de escribir este post el ente colegiado encargado de organizar los comicios está comenzando el escrutinio final que dará el ganador definitivo. Sin embargo, ya que mi blog es de código, soy programador y aprovechando que por primera vez tenemos acceso de manera pública a todas las actas escaneadas enviadas al TSE, se me ocurrió la idea de que podría ser un bonito "reto electoral": Verificar de manera independiente, participativa y totalmente anónima los resultados de las elecciones. Este es el reto: " Desarrollar una herramienta crowd-sourced, totalmente anónima, capaz de verificar los conteos que se encuentran en las actas de las Juntas Electorales Enviadas al TSE " L...

Utilizando los XBee Series 1 en Modo Transparente.

Imagen
Las conexiones inalámbricas siempre resultan un poco complicadas de establecer. Buscando en Internet podemos encontrar módulos de conexión inalámbrica que funcionan a muy bajo nivel pero que tienen la desventaja que no podemos conectar varios entre sí o tenemos que implementar algún algoritmo para reducción de interferencia en caso que queramos leer datos desde distintos puntos a la vez. Las XBee son una solución sencilla de utilizar que es capaz de funcionar de paquete, toda la parte del establecimiento de red e interconexión es manejado por el módulo así que nos permite dedicarnos exclusivamente a trabajar en la aplicación. El módo más sencillo de utilización de este tipo de módulos es el modo "transparente", en este modo los módulos XBee funcionan como una conexión "serial" inalámbrica. Los datos serán enviados y recibidos a la dirección de los módulos que tengamos configurados en los mismos. Les comparto en esta entrada un cortísimo video sobre como ut...

Controlando una LCD de caracteres 16x2 con I2C y Arduino

Imagen
Actualmente estoy trabajando en un pequeño proyecto que requiere de una simple pantalla para mostrar información. Una de las formas más comunes de mostrar información es utilizar una simple pantalla de caracteres, siendo las más comunes las que pueden mostrar 16 caracteres en dos líneas, o las famosas "16x2". Es muy común encontrar este tipo de pantallas controladas por el driver HD44780 de interfaz paralela. Sin embargo el problema de lo anterior es que terminamos utilizando muchas líneas de nuestro Arduino que podríamos utilizar para hacer cosas más interesantes. En esta entrada vamos a utilizar un sencillo ATmega328 para controlar una de estas LCDs, pero lo más interesante es que lo vamos a configurar como "esclavo" en la interfaz I2C para que podamos utilizar este bus sin gastar los preciados pines de E/S digital de nuestro Arduino. ¡Comencemos!

Construyendo un Arduino Compatible pt2 - Diseñando la PCB

Imagen
En la entrada anterior les explicámos un poco acerca del funcionamiento básico de la Luxeon Triple Play Driver de SparkFun Electronics que utilizaremos para construir una lampara de LEDs de alta intensidad programable. En esta entrada nos vamos a centrar en el proceso de elaboración de la tableta impresa o PCB. Debo advertir que tal vez no sea una guía paso a paso sino más bien algunos comentarios sobre las decisiones de diseño que se tomaron y algunos "tips" que esperamos harán más fácil su vida al momento que les toque diseñar algo similar. Lo mejor de todo es que conoceremos las ventajas del Open Source Hardware ya que partiremos de un diseño previo, en este caso de la gente de SparkFun Electronics. Habiendo dicho eso ¡Comencemos!

Construyendo un Arduino Compatible pt1 - La historia de una lámpara

Imagen
Desde hace bastante soy alguien que siempre ha pensado que el conocimiento es útil cuando es libre y he apoyado siempre las iniciativas de fuentes abiertas/libres aunque lastimosamente por mi trabajo me toca que usar herramientas privativas. El año pasado tuve el encuentro con el "Open Source Hardware", o Hardware de Fuentes Abiertas. Esta filosofía intenta replicar un poco de las prácticas del Open Source en el ámbito del desarrollo de dispositivos electrónicos. Si algo me encanta del Open Source Hardware es la capacidad que te otorga para adaptar, crear e inventar soluciones a tu medida. El mes pasado, fuimos con mi novia al cumpleaños de una amiga de la universidad. El restaurante de comida mexicana que visitamos estaba decorado por unas lamparas colgantes hechas de mimbre que le encantaron a mi novia. Y me hizo la pregunta obvia: ¿Podemos fabricar una? De pronto, esa idea de una lámpara que comenzó como una cesta de mimbre se convirtió en un mini-proyec...

Reemplazando el bootloader en el ATmega328

Imagen
¡Hola de nuevo! Lastimosamente en los últimos meses mis responsabilidades laborales han ocupado la mayor parte de mi tiempo haciendo que sea muy difícil para mi el escribir entradas en el blog. Como tengo muchas cosas que quisiera compartir, he decidido dar un pequeño cambio radical a la forma en que presento las entradas en el blog. De ahora en adelante será una pequeña combinación entre video-log y entradas un poco más detalladas en el caso que sea necesario. En lo personal prefiero las entradas de texto ya que lo "obligan" a uno en expresarse de la mejor manera, además resulta complicado muchas veces seguir el "ritmo" en los videos o buscar una parte específica como referencia. Sin embargo prefiero seguir publicando las entradas en video a tener que dejar de escribir en este blog por largos períodos de tiempo. Habiendo dicho lo anterior, en el primer video que publicaré explico cómo reemplazar el bootloader en un ATmega328 para que podamos utilizar un...