09 agosto 2015

LEDs, Matrices y Garras en CONSUMA 2015

Esta semana tuvimos la oportunidad de participar de CONSUMA 2015 con una pequeña mesa de demostración con los productos disponibles en la Tienda TeUbi.co.

En la mesa tuvimos tres proyectos divertidos que puedes construir muy fácilmente y en esta corta entrada te explicaremos como hacerlos funcionar.

VUMeter con tiras y matrices de LED programables WS2812

Los WS2812 son LEDs RGB programables, estos incluyen un pequeño microcontrolador que se encarga de controlar tanto los colores como la intensidad. La razón por la que estos LEDs se han vuelto ta populares es porque se pueden encadenar fácilmente unos con otros y se puede controlar tiras larguísimas abriendo increibles posibilidades de interactividad.

Este tipo de LED se conecta normalmente como se muestra en la siguiente imagen:


Ya que queríamos añadir un poco de interactividad, incluimos un sensor de sonido de Sparkfun Electrónics para detectar el nivel de sonido y el resultado (con la Matriz 8x8 de Adafruit) fué el siguiente:

Un vídeo publicado por Mario Gomez (@mxgxw) el
El control se realiza con un Teensy v3.1 y la biblioteca OCTOWS2811 que permite controlar hasta ocho tiras o matrices diferentes.

Para construir este divertido proyecto solo necesitas los siguientes materiales:

  • 1x Teensy v3.1
  • 1x Sensor de Sonidos de Sparkfun Electronics
  • 1x Tira de LED WS2811/12
  • 1x Matriz de LED WS2812 8x8 de Adafruit Industries Inc.
  • Fuente (Con capacidad de entregar hasta 5V@6A)*
*Importante: Estas tiras de LED son extremadamente luminosas, asegúrate de no mirarlas directamente y de tener una fuente que provea suficiente potencia para su encendido.

La conexión se realiza de la siguiente manera:

El código original esta basado en el ejemplo Rainbow de la biblioteca OCTOWS2811 y se ha modificado para que habilite el número de leds e función del nivel leído de la señal "Envelope" del sensor de sonidos de Sparkfun Electronics.

Descarga el código de esta dirección:


Cálculando dígitos con EXCEL para la Matriz de LED

La matriz de LED 8x8 con el integrado MAX7219 es un producto popular de la tienda, incluye una pequeña matriz y su controlador más los componentes básicos necesarios para hacerla funcionar.


Para construir este proyecto necesitas los siguientes componentes:
  • 1x KIT de Matriz de LED 8x8 MAX7219
  • 1x Sparkfun RedBoard o Arduino UNO
Conecta tu RedBoard o Arduino UNO como se muestra en el diagrama:

Dibujar los dígitos implica hacer algunos cálculos en binario que pueden resultar complicados si no estás acostumbrado a la lógica binaria. Así que creamos una pequeña tabla en Excel que te permitirá calcular las imágenes y figuras a desplegar en la matriz:


Para utilizarla solo abre el Excel como se muestra en la imagen:

Descarga el código de ejemplo de la siguiente dirección:


Luego copia los dígitos en el IDE Arduino como se muestra en el ejemplo:

Luego solo tienes que subir tu sketch a Arduino y repetir el procedimiento para todas las figuras diferentes en las que estés interesado. 

Garra Robótica con Sensor Ultrasónico o el "Desnarizonador"

Queríamos aprovechar el tiempo y hacer un proyecto sencillo de robótica, para ellos armamos el siguiente componente al que bautizamos como "El Desnarizonador":
Un vídeo publicado por Mario Gomez (@mxgxw) el
Para construir este proyecto necesitas los siguientes componentes:

  • Sparkfun RedBoard o Arduino UNO
  • Garrar robótica metálica
  • Servo pequeño con engrane metálico
  • Sensor ultrasónico de distancia
Conecta los componentes de la siguiente manera:

Descarga el sketch de la siguiente dirección y cargalo en tu Arduino, el sketch:


¡Y diviértete acercándote lo más posible sin que te quiten la nariz!

¿Quieres conocer más sobre Arduino y proyectos? Síguenos en Facebook para mas noticias y tutoriales.

05 marzo 2015

Reto Electoral para Desarrolladores V2

Viene otro año y se viene un nuevo reto electoral. Para los que siguen mi blog recordarán como el año pasado elaboramos el Reto Electoral para Desarrolladores que permitió desarrollar contemosnosotros.org un sistema completamente abierto y anónimo que funcionó para validar los cerrados resultados electorales de las elecciones presidenciales de El Salvador en el año 2014

Para este año el reto electoral tiene un par de niveles extra de complejidad:

El primer nivel de complejidad es el hecho de que se congregan tres tipos de elecciones en una sola votación:

  1. Elecciones de consejos municipales que se eligen de manera similar a las presidenciales.
  2. Elecciones de diputados de la asamblea legislativa.
  3. Elecciones del PARLACEN.

Las últimas dos representan el segundo nivel de complejidad ya que se implementa el voto por rostro no-partidario (o voto cruzado) por lo que las actas no solo incluyen el total de votos por partido sino el total de votos individuales para cada uno de los candidatos que los partidos han propuesto.

Habiendo explicado lo anterior, me alegra presentarles "El Reto Electoral v2.0":

¿Es posible crear un sistema abierto, anónimo y participativo que permita validar los resultados de las elecciones 2015?

Habiendo dicho esto: ¡Comencemos!


22 febrero 2015

GPS, cadenas NMEA y máquinas de estados finitos en Arduino

¡Hola a todos!

Tenía ya un tiempo de no escribir, así que decidí que sería bueno compartirles un tema de esos que muchas veces conocemos en teoría pero que muchas veces es difícil visualizar una aplicación en nuestros proyectos.

Antes de comenzar voy a pedirles que se hagan una pregunta: ¿Cómo harían para extraer las posiciones de latitud y longitud de la siguiente cadena en Arduino?:

 $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

Habiendo hecho esta pregunta... ¡Comencemos!

09 diciembre 2014

Pequeños tesoros "Made in El Salvador"

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.

08 mayo 2014

¿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.

24 marzo 2014

Arduino y el XBee Series 1 - (Modo API)

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:


10 marzo 2014

Reto Electoral para Desarrolladores

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"

La propuesta y el concepto básico:

  • La herramienta funcionará como un re-captcha, cada usuario que la acceda se le mostrará una entrada como la siguiente:
  • En un campo de texto deberá ingresar el número, la idea es que el usuario no pueda "ver" a que partido pertenece el conteo.
  • Los conteos a mostrar se elegirían de un pool de conteos sin verificar completamente al azar, de tal manera que nadie sabrá de qué partido es el número que está verificando reduciendo las posibilidades de que alguien quiera alterar los resultados a su conveniencia.
  • El "conteo" se dará como válido cuando 2 digitaciones diferentes coincidan en el número.
  • La validación no terminará ahí el sistema debería seguir funcionando y mientras más verificaciones positivas reciba entonces su "score" de validación será mayor.
  • Todo deberá ser transparente, el código fuente deberá ser Open Source Software, las bases de datos deberán ser abiertas. Los "snapshots" del sistema deberán de incluir un dump de la base de datos donde se elabore para que cualquiera pueda auditar el código.

Retos técnicos por resolver (de dificultad mayor a menor):

  1. Convertir los PDFs a imágenes, cortar los conteos y asignarlos correctamente a cada partido. Esto podría realizarse de manera semi-automatizada.
  2. Ancho de banda y almacenamiento, si bien este es un reto "pequeño" en el remoto caso que se volviera popular al menos este servidor no tiene recursos suficientes para soportar una carga tan grande de datos.

Datos:

Trabajo previo y herramientas similares:

  • Actas Counter: Herramienta de validación de actas, Pros: Trabajo previo similar al reto actual. Cons: No es completamente anónimo utiliza Facebook para ingresar, los electores pueden ver a que partido corresponde el conteo por lo que deja abierta a "trolls" para modificar resultados para favorecer su preferencia política. https://github.com/corp/ActasCounter

Herramientas de Coordinación:

El premio:

  1.  Ninguno. Simplemente irse a casa pensando que se hizo algo diferente y divertido el día de hoy.

Excepción de responsabilidades:

  • Yo, Mario Enrique Gómez Argueta de Nacionalidad Salvadoreña, lanzo este reto con fines única y exclusivamente "educativos" los datos proporcionados mediante este blog son datos públicos, disponibles mediante acceso libre a través de la página del Tribunal Supremo Electoral y amparados bajo la ley de Acceso a la Información Pública y el Código Electoral vigente de El Salvador. Proporciono los datos obtenidos de dicha institución tal y como fueron publicados a través de su página web por medio de un "backup" estático de la página web a la hora que se especifica. No puedo hacerme responsable de que los datos estén completos o que cuenten con toda la información necesaria, sin embargo se proporcionan los métodos para crear un "backup similar" y verificar la validez de la información.
  • Declaro que no estoy afiliado a NINGÚN PARTIDO POLÍTICO y los resultados obtenidos de este ejercicio NO PRETENDEN ni DEBERÁN SER UTILIZADOS para poner en duda la validez de los resultados oficiales. El único ente colegiado con atribuciones legales para validar resultados oficiales es el Tribunal Supremo Electoral por lo que cualquier resultado obtenido de este ejercicio NO TIENE NI TENDRÁ NINGUNA VALIDEZ LEGAL y deberá ser tratado como información poco confiable y secundaria, para participar de este reto usted se compromete a NO UTILIZAR LOS RESULTADOS PARA FINES POLÍTICOS.