16 diciembre 2015

15 diciembre 2015

IoT para principantes - Programando el ESP8266

El ESP8266 es un pequeño microcontrolador de muy bajo costo (>10 USD) que encapsula todos los componentes necesarios para conectarse a redes Wi-Fi. Esto lo hace un componente ideal para convertir un sin fín de dispositivos o tus propios proyectos al Internet de las Cosas (IoT).


Este módulo se utiliza en conjunto con Arduino y otras tabletas electrónicas programables. Sin embargo el poder oculto del ESP8266 es que se puede utilizar de manera individual sin necesidad de una tableta controladora adicional.

En este tutorial aprenderemos a re-programar nuestro ESP8266 con Arduino para poder utilizar código a la medida y crear proyectos impresionantes.

07 diciembre 2015

Reprogramando el ATtiny (y otros microcontroladores Amtel) con Arduino ISP

En una entrada anterior mostrabamos como ensamblar y poner a funcionar nuestro KIT Inalámbrico programable para medición de Temperatura y Humedad. El KIT hace uso de un ATtini85 para la lectura del sensor de temperatura y se encarga de codificar y transmitir los valores hasta su receptor.



El ATtiny85 es un pequeño microcontrolador del fabricante AVR que a pesar de su tamaño empaqueta mucha funcionalidad interesante como soporte para SPI, entradas y salidas digitales y convertidores análogo/digital.

En esta entrada te enseñaremos como reprogramar tu ATtiny85 para re-utilizarlo en otros proyectos utilizando tu Arduino UNO o compatible. ¡Comencemos!

KIT Transmisor Inalambrico Programable de Temperatura y Humedad

¡Hola a todos! Desde hace días que queríamos presentar un pequeño KIT que resultara fácil de armar para experimentar con radio-frecuencia. Así que aprovechando que estos días baja un poco la temperatura se nos ocurrió que podría ser divertido contar con un medidor de temperatura y humedad inalambrico y reprogramable que pudieramos dejar fuera de la casa para no tener que estar saliendo a revisar como lo mostramos en este video:



Así que en esta entrada te mostraremos como montarlo y su utilización básica. ¡Comencemos!

02 noviembre 2015

Efectos Colaterales de la "Contribución Especial para la Seguridad y la Convivencia Ciudadana" en la Innovación

Normalmente no suelo escribir sobre temas políticos, pero la reciente aprobación del impuesto denominado "contribución especial a la seguridad ciudadana y convivencia" tiene algunas implicaciones interesantes y posiblemente negativas para aquellos que desarrollan soluciones tecnológicas en El Salvador. Esta entrada nos vamos a dedicar a revisar un poco las implicaciones de esta Ley para todos los que desarrollamos y tratamos de impulsar la tecnología en El Salvador.

Tal vez para comenzar esta entrada vamos a hablar de algunas cosas obvias: Primero, y la verdad me entristece decirlo, El Salvador está pasando por un momento difícil en que la población sufre día a día graves problemas de seguridad y delincuencia. No me voy a enfocar en causas ya que no es el tema de esta entrada (y usualmente da lugar a discuciones estériles), así que me centraré en los hechos.

La segunda es que desde hace algunos días, el gobierno está tratando de impulsar medidas que ayuden a mejorar la situación de seguridad. Sin embargo, el presupuesto actualmente está estructurado de manera que no resulta suficiente para el financiamiento de muchas de estas actividades. A causa de lo anterior y con la finalidad de obtener más fondos para destinar a temas de seguridad, la Asamblea Legislativa, recientemente ha aprobado un impuesto a los servicios de telecomunicaciones que grava con el 5% la contratación de dichos servicios y también (esta es la parte que nos afecta) a la transferencia(venta o alquiler) de cualquier equipo, dispositivo electrónico o accesorio que permita hacer uso de dichos servicios. Hay una pequeña excepción dentro de la misma ley (que veremos más adelante) que excluye a las computadoras y televisores.

El primer artículo de dicha ley es bastante claro al respecto:

Art. 1.- La presente Ley tiene por objeto el establecimiento de una
contribución especial para la Seguridad Ciudadana y Convivencia, la cual
recaerá sobre la adquisición y/o utilización de servicios de 
telecomunicaciones en todas sus modalidades, independientemente de los 
medios tecnológicos, terminales, aparatos o dispositivos que se empleen 
para su consumo, de acuerdo a  los alcances establecidos en esta Ley; y,
sobre la transferencia de cualquier tip de dispositivo tecnológico,
terminales, aparatos y accesorios de los mismos que permitan la 
utilización de servicios de telecomunicación.

¿Pero que es lo que entiende esta ley sobre las telecomunicaciones? esto lo podemos encontrar más adelante en el mismo artículo:

Para los efectos de la presente Ley, se entenderá por servicios de 
telecomunicaciones, todos aquellos que se ofrezcan al público en general
en todas sus modalidades ya sea que se transmita por medios alámbricos o
inalambricos o por cualquier otro medio físico, incluidos, pero sin
limitarse a, telefonía fija y móvil, televisión por suscripción, 
transferencia de datos y servicios satelitales.

Públicamente la ley se ha manejado como una contribución especial que solo afecta a los usuarios de servicios de telefonía, pero este artículo en específico incluye prácticamente a todo servicio de transmisión de datos, incluidos servicios de transmisión de datos privados como conexiones punto a punto que sean ofrecidos como servicios al público. Poniendonos en contexto de esta ley, si tu brindas servicios de asesoría para construcción de robots y parte de la asesoria que brindas incluye que el robot se pueda conectar vía WiFI a una red local eso podría fácilmente clasificarse como un servicio de transmisión de datos y por tanto los dispositivos que se utilizan para realizar la conexión podrían estar gravados con este impuesto.

Entre los dispositivos que consideran en la transferencia podemos encontrar una lista en el Art. 3 literal d:

d. Transferencia a cualquier título, importación o internacion definitiva 
de dispositivos tecnológicos,terminales o aparatos y accesorios de los
mismos que permitan la utilización de los servicios mencionados en el
presente artículo, entiéndase entre otros, pero sin limitarse a:
terminales fijos o móviles, tabletas electrónicas, aparatos, tarjetas
que contengan el módulo de identificación de abonado (SIM) y otros
accesorios, ya sean dados en arrendamiento o comodato, con exclusión de
los ordenadores o computadoras electrónicas y televisores.

¿Cómo nos afecta esto como impulsadores de soluciones tecnológicas? La primera forma en que nos afecta es que si se aplica el literal tal y como cual está escrito los dispositivos electrónicos pagarian el impuesto dos veces: Una vez al realizar la importación definitiva de los bienes a El Salvador. Esto es así porque nadie en El Salvador fabrica dispositivos electrónicos para telecomunicaciones, al menos no de consumo general. Y la segunda vez cuando el aparato se transfiere (vende o alquila) al cliente.

La segunda forma es que la ley también convierte a todos los vendedores de estos equipos o servicios en agentes de retención de dicho impuesto y los obliga a llevar un registro detallado de los clientes como se especifica en el Art.8 literal b:

b. Llevar registro de las operaciones sujetas a retención con las
especificaciones siguientes:
  1. Nombre del usuario de los servicios
  2. Período de prestación de los servicios
  3. Clases de servicios prestados
  4. Monto cobrado al usuario, excluyendo el IVA y la contribución especial.
  5. Valor de la contribución especial aplicada.
  6. Número correlativo del documento emitido autorizado por la DGII.
  7. Número telefónico a nombre del usuario, en su caso.
  8. Número de cuenta por el servicio prestado, según corresponda.
  9. Identificación del aparato transferido, en lo pertinente

La Ley lástimosamente no hace distincion entre el registro llevado por los vendedores de servicios y equipos electrónicos, a los que vendemos componentes electrónicos que pueden ser utilizados en telecomunicaciones nos pone en una situación difícil ya que no tenemos forma de llevar el registro o siquiera de conocer si los componentes van a utilizarse con algún servicio de datos o internet. Posiblemente los únicos numerales que se pueden registrar de dicho artículo son el 1 y 9 ya que los componentes se transfieren (venden) de forma definitiva. Esto sin tomar en consideración de que no muchos están en capacidad de mantener un registro de este tipo de forma segura.

ESP8266 - Foto por Sparkfun Electronics
El tercer problema es que la definición resulta demasiado amplia y para realmente determinar si un equipo puede servir exclusivamente para el uso en servicios de telecomunicaciones o si su uso será destinado a un proyecto de robótica educativa requiere de personal fiscalizador altamente entrenado y técnico que sepa diferenciar el uso final que se le va a dar al equipo. Esto último es muy dificil sino imposible ya que los agentes fiscalizadores normalmente no tienen un grado académico en temas de electrónica o telecomunicaciones y quedará a criterio de ellos si aceptan que, por ejemplo, un módulo WiFi como el ESP8266 que conecta dispositivos a redes inlambricas será utilizado para conectarse a Internet o si será utilizado en un proyecto de robótica educativa.

En mi experiencia importando componentes electrónicos les puedo decir que a muchos agentes aduanales y contadores vista les cuesta muchísimo distinguir entre una "parte para un dispositivo electrónico sin especificar" que un "dispositivo electrónico armado y funcional", en la mayoría de casos no saben nisiquiera que son ni para que funcionan esta clase de componentes. Para ponerlos en contexto si ustedes intentan dar una explicación del tipo "es para inventores que crean dispositivos que aún no se han diseñado o construido" viene seguida de la replica "me tiene que decir a que aparato pertenece este repuesto para que lo pueda clasificar", uno como importador termina explicando en que aparatos se podría usar para que lo puedan clasificar aunque la verdad uno no tiene forma de saber en que podrían ser utilizados.
Otra definición preocupante de este artículo es la definición de "tabletas electrónicas". Entendemos que el espíritu de la Ley era gravar las Tablets PC, cuya traducción correcta es computador tipo tableta. "Tableta electrónica" en el mundo de la electrónica se refiere a cualquier tableta que combine circutos impresos y componentes electrónicos sobre ella. Esto incluye a la tableta electrónica programable más famosa del mundo... Arduino.

El problema, como mencioné arriba es ¿Cómo explicas en aduana que la "tableta electrónica" Arduino no tiene nada que ver con una tablet PC? En teoría algun contador vista con experencia si pueda distinguir entre un circuito impreso ensamblado y una Tablet PC (la verdad es que en una inspección física las diferencias son obvias, pero la mayoría de inspecciones no son físicas)... En la práctica les voy a decir que lo más probable es que no sea así.

Según los comentarios de nuestro asesor legal, si bien no se puede evitar al 100% incluir en una ley conceptos juridicos indeterminados, normalmente se incluye en sus textos principios que ayudan a interpretar su ambito de aplicación. Esta ley carece de estos principios lo que dificulta en sobre manera su interpretación o la deja a discreción del ente fiscalizador.

Otra dificultad con esta ley es que los entes que aplicaran esta ley como el tribunal de apelaciones internos, sala de lo contencioso y demás entes como agentes aduanales carecen de pericia tecnologica para diferenciar los términos que se expresan en esta ley.

La vez pasada en un grupo de desarrollo de software local comenté mis procupaciones de como un impuesto a la tecnología podría poner dificultades para aquellos que desarrollan tecnología. Y la respuesta a mi preocupación fue "nadie en El Salvador desarrolla tecnología".


Esa frase anterior lástimosamente solo refleja la corta visión que muchos tenemos en el país incluidos algunos legisladores. Primero porque la frase esta totalmente errada, en El Salvador sí se desarrolla tecnología, si no me creen pueden visitar nuestro proyecto Red de Acción Comunitaria que justamente diseña un dispositivo de telecomunicaciones para emergencias, pueden ver también las fotos de los estudiantes del INTI que han desarrollado una Tablet PC haciendo uso de componentes electrónicos como los que se van a gravar de ahora en adelante, pueden visitar también las galerías de fotos de nuestro amigo Angel Sánchez para ver todos los proyectos que utilizan WiFi y bluetooth para construir robots, o pueden visitar el mismo Ministerio de Educación donde se fomenta a los estudiantes a construir proyectos utilizando componentes que de ahora en adelantes serán gravados.





Y saben de donde han aprendido todas estas personas a crear tecnología: ¡De Internet! Es decir que este impuesto penalizará injustamente a todos aquellos que hacen buen uso de la tecnología porque alguien decidió que el acceso a internet es un servicio suntuoso que debe ser gravado para financiar tareas de seguridad, esto a pesar de que organismos de Naciones Unidas han reafirmado la necesidad de que las personas puedan tener acceso a tecnologías de información.

Uno tal vez piensa que un 5% no pueda ser mucho, hasta que llega un día un profesor de un colegio del interior con un montón de bolsas de monedas que han contado centavo a centavo y te dice: Venimos a donde ustedes porque nos pueden ayudar, los alumnos quieren construir un robot que se controle con un smartphone y bluetooth. Han pasado los últimos meses haciendo colectas y actividades para recolectar el dinero para construirlos y están muy emocionados.

Esa es la gente que al final del día terminará pagando injustamente ese impuesto. Es cierto, tal vez no desarrollamos tanta tecnología, pero aprobar un impuesto sin revisar los efectos colaterales que puede tener en la innovacion y el desarrollo tecnológico limita aún mas nuestras capacidades para dejar de ser un país consumidor y comenzar a ser un país realmente innovador.

Tal vez solo como comentario final, algo que personalmente me molesta es la clara excepción que tienen algunas empresas privilegiadas a esta contribución:

No tendrán la calidad de sujetos pasivos de la contribución especial
los que se dediquen a la actividad de Centros Internacionales de
Llamadas conocidos en el comercio internacional como "call center"
o "contact center" que se encuentren gozando de los beneficios de la
Ley de servicios Internacionales.

[sarcasmo]
Supongo que esta excepción se debe a que todos sabemos que la innovación y el desarrollo de nuestro país, vienen exclusivamente de los call centers. Un grupo de individuales, unos estudiantes de bachillerato y un montón de jóvenes creativos no merecen ser excentos de este impuesto porque ellos nunca van a desarrollar tecnología en El Salvador. Mejor enseñemoles inglés para que puedan hacer "carrera" en un call center.
[/sarcasmo]

Para concluír, si bien comprendo la necesidad de recaudar impuestos para temas de seguridad, el utilizar definiciones tan abiertas y ambiguas en una ley puede tener efectos colaterales dañinos como los que he tratado de explicar en esta entrada. Si tuviera la oportunidad de cambiar algo sería primero especificar que equipos y tecnologías deben ser gravados. Por ejemplo utilizar "PC tipo tableta" en lugar de "tableta electrónica" y especificar cosas como "smartphones de gama media/alta", "modems de abonado a internet" en lugar de "dispositivos que faciliten las telecomunicaciones". Establecer excepciones particulares para algunos otros actores como centros de enseñanza o centros tecnológicos. El otro cambio sería quitar las excepciones... Todos vivimos en el país y todos debemos ser solidarios con la seguridad así que ya que los call centers no pagan ningun impuesto gracias a la Ley de Servicios Internacionales el 5% de seguridad no les haría ni cosquillas.

En opinión de nuestro asesor legal, pareciera existir una tendencia en utilizar términos bastante amplios  en legislaciones que afectan o legislan sobre tecnologías. Esto posiblemente se pueda atribuir a la falta de pericia técnica sobre la materia que tienen los legisladores. Esto nos hace un llamado a todos los "tecnólogos" o impulsadores de tecnología a integrarnos más y realmente exigir la creación y participar de comités de consulta a nivel técnico que garanticen que las leyes que se aprueban por la asamblea realmente no tienen efectos colaterales o su implementación pueda generar efectos negativos en el desarrollo y la innovación en El Salvador.

Quisiera hacer un agradecimiento especial al abogado Jorge Alejandro Rodriguez Morán por su valiosa asesoría legal para sugerir mejoras en la redacción de esta entrada y ayudarme a asegurar que las interpretaciones realizadas en este artículo no estuvieran alejadas de la realidad.

No habíendo nada más que decir... ¡Hasta la próxima!


Dejaré abiertos los comentarios en este POST, pero debido a que es un tema delicado cualquier opinión que no sea critica constructiva o comentarios pro-positiva o que trate de tomar un tono político partidista-será eliminada.

Este entrada ha sido escrita a titulo personal y no representa las posiciones o puntos de vista de mi empleador actual.

25 octubre 2015

Control de Precisión de Motor Paso con Encoder Rotativo

Durante el fin de semana estaba pensando en algún proyecto pequeño que utilizara los encoders rotativos. Así que se me ocurrió que sería un bonito demo construir un pequeño control de precisión para motores paso utilizando el Pololu A4988, la Sparkfun Redboard y un pequeño encoder rotativo con switch integrado e iluminación rojo/verde.


Para construir este pequeño demo necesitas lo siguiente:
  • Sparkfun RedBoard
  • Pololu A4988
  • Encoder Rotativo Rojo/Verde
  • Breadboard
  • Fuente de voltaje de 12V
Conecta los componentes como se muestra en el siguiente diagrama:

Por último descarga el sketch de la siguiente dirección:


El sketch se encarga de detectar los cambios en el encoder y mover el motor paso en la dirección correspondiente.

¡Esperamos que te guste este pequeño proyecto de fin de semana!

Sin nada más que decir. ¡Hasta la próxima!


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!