Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas

lunes, 20 de mayo de 2013

Arduino Yún = Arduino + WiFi + Linux

Hace pocos días anunciábamos la inminente salida de un proyecto Kickstarter llamado Spark Core, que basaba su funcionamiento en un poderoso ARM Cortex M3 y que además transformaba al mundo Arduino en un sistema inalámbrico mediante la incorporación de un módulo WiFi. Por supuesto, la respuesta oficial de Arduino no podía demorar, ver pasar todo esto delante de sus narices y aplaudir o permanecer de brazos cruzados. El sábado se supo en el Blog Oficial de Arduino la aparición de Arduino Yún (Yún = nube), que basa su hardware en un microcontrolador ATMEGA32U4  y el módulo WiFi Atheros AR9331, con una versión personalizada de OpenWRT llamada Linino, la distribución Linux más utilizada para los dispositivos embebidos.

Arduino Yún = Arduino + WiFi + Linux

Basado en un clásico Arduino Leonardo, tiene 14 pines digitales de entrada / salida (de los cuales 7 se puede utilizar como salidas PWM y 12 como entradas analógicas ADC), un oscilador de cristal de 16 MHz y un conector USB. Arduino Yún estará disponible a finales de junio a un precio de 69 Dólares + impuestos. Era lógico, Massimo Banzi deberá renovarse continuamente y tal vez necesite ajustar los precios de estos productos ya que la competencia se pondrá cada día más feróz. Entérate de todas las novedades que tiene esta nueva placa Arduino en su Blog Oficial.

Vista inferior de Arduino Yún

lunes, 13 de mayo de 2013

Spark Core: Wi-Fi para todo (Arduino Compatible)

El módulo Spark Core, lo nuevo que traerá KickStarter en los próximos días, permitirá añadir Wi-Fi a tus proyectos de manera “endiabladamente fácil”. El dispositivo se instalará en segundos y se podrá programar sin cables, de manera inalámbrica, ¡claro!, por Wi-Fi. Las soluciones tradicionales y comparables que existen hoy en el mercado son caras y difíciles de trabajar, ya que requiere un escudo (shield) específico que posee, naturalmente, el tamaño del respectivo Arduino y necesita actualizar el código que exige el microcontrolador mediante una conexión USB a través de un ordenador. Con Spark Core, ahora podrás hacer lo mismo que antes, pero de manera libre, sin cables.

El dispositivo combinará la simplicidad de un Arduino con todo el poder de un chip ARM Cortex M3, el mejor módulo Wi-Fi disponible en la actualidad (CC3000), la  posibilidad de tener computación en la nube en segundos y una API (REST API) para crear un desarrollo flexible donde Internet esté integrado en tus proyectos. Spark Core se puede usar para diseñar cualquier sistema inalámbrico como coches RC controlados por Wi-Fi, detectores de movimiento inalámbricos, o lo que tu imaginación permita en pocos minutos.

Prototipos iniciales de Spark Core, la plataforma que combina Arduino + Wi-Fi

Conexión Wi-Fi
La configuración de la conexión Wi-Fi será muy sencilla gracias a la función inteligente del módulo CC3000 y todo lo que se necesitará es introducir el nombre de la red y la contraseña de la aplicación Spark Core en tu teléfono inteligente o tablet. En 30 segundos y de manera automática, se establecerá la conexión entre tu dispositivo y Spark Core siendo éste, un proceso que necesitarás hacer una sola vez. Esta simplicidad sin precedentes con módulos Wi-Fi, es exclusiva del Spark Core. Por lo general, suelen ser necesarios múltiples pasos para configurar un dispositivo en una red, en cambio con este sorprendente kit, la tarea se reduce a la mínima expresión

Programación
Spark Core se programará mediante “Wiring”, el lenguaje compartido con toda la plataforma Arduino. Ningún cable USB es necesario. Bastará con disponer de una silla cómoda y cargar el código escrito en cualquier editor de texto de tu elección. El firmware se actualiza inalámbricamente, y podrá ser reprogramado en cualquier momento, tan pronto como el Wi-Fi se conecte con el equipo donde desarrollarás las actualizaciones.

¡Lo mejor de la web en una mínima cantidad de elementos!

Open Source
Todos los archivos de diseño de firmware y hardware serán de código abierto, lo que permitirá la integración libre en los proyectos derivados. Además, Spark Core utiliza estándares abiertos como HTTP, TCP o TLS/SSL



Spark Cloud
Todos los códigos fuente que hayas escrito, para los proyectos que quieras, se almacenan dentro de una red en la nube llamada Spark Cloud. Estos códigos son accesibles en cualquier parte del mundo para ti o cualquier usuario autorizado, siempre que haya una conexión a Internet. Cada vez que desees actualizar el firmware de uno de tus proyectos, se descarga directamente en el dispositivo desde Spark Cloud, cuando sea, donde sea.

Encryption
Un cifrado estándar de 128 bits se utiliza para fijar el Spark Core, Spark Cloud, y toda la plataforma de desarrollo, específicamente el cifrado AES para el lado del hardware y SSL para transmisiones inalámbricas seguras.

El lanzamiento prevee cuatro escudos iniciales

Escudos (Shields)
Existirán cuatro escudos, o circuitos completos, que servirán para ampliar la funcionalidad más allá de la configuración inicial del Spark Core:

 - El escudo que permitirá agregar a Spark Core cualquiera de los escudos (shields) existentes en el mercado y que están orientados para ser utilizados con Arduino.
 - El Escudo de Relés, que se puede utilizar para controlar tensión de línea domiciliaria o electrónica de alta tensión en forma inalámbrica, donde puedes realizar en pocos pasos un sistema de luces controladas a distancia.
 - El Escudo JTAG permite volcar el código en forma directa, sobre el microcontrolador del Spark Core, desde cualquier otro sistema embebido.
 - El Escudo para batería, simplemente añadirá más potencia a cualquier proyecto.

Lanzado el 2 de mayo de 2013 y con fecha de finalización el 1 de Junio de este mismo año, Spark Core ha superado todas las metas de recaudación previstas y se perfila para ser un éxito total. Al igual que RFduino, Spark Core también pretende ingresar en el mundo de la “Electrónica sin Estaño” y crear un nuevo escenario de trabajo con un microcontrolador totalmente superior a lo que Arduino puede llegar a ofrecer. Y hablando de ello, con todas estas nuevas plataformas de desarrollo, Arduino está siendo golpeado duramente y necesitará un cambio o una re-estructuración radical para no desbarrancar en el precipicio. ¿Estamos ante el ocaso del Arduino original y frente a una nueva generación? ¿Arduino se quedará de brazos cruzados viendo de qué manera la evolución lo pasa por encima? ¿Tú que opinas?

Fuente: KickStarter

lunes, 22 de abril de 2013

¿Cómo selecciono un microcontrolador?

La elección del microcontrolador adecuado para un producto, diseño experimental o desarrollo, puede ser una tarea desalentadora y hasta “viciada” si no se inicia con conceptos claros y elementales, desde que lanzamos el primer trazo en una hoja de diseño. No sólo hay una mínima cantidad de características técnicas a tener en cuenta, también hay cuestiones muy diversas y que no a todos pesa por igual. No será lo mismo un aficionado que se lance a construir una pequeña aplicación llamativa con LEDs y servomotores (que quizás nunca termine), respecto a una gran empresa de manufactura, donde los costos y los tiempos de espera, que puedan paralizar un proyecto de millones de unidades, se incrementen una semana. A nivel de aficionado, podemos estar acostumbrados a echar mano del primer microcontrolador que tengamos disponible en una gaveta o de aquel que se venda en la tienda más cercana a nuestro hogar.  Ahorrar un dólar para optimizar el costo de la unidad y que luego los gastos de envío nos carguen con 30 dólares nuestro “saldo deudor”, no es una idea muy brillante. Sin embargo, en un millón de unidades (juguetes de cotillón para fiestas, con luces, por ejemplo) ese ahorro de un dólar puede significar una sonrisa muy grande en nuestros jefes.

Es decir, sin llegar a la obsesión de la mezquindad absoluta, es bueno aprender a administrar recursos ya que quizás hoy, ése dólar “extra” nos sobre en el bolsillo o en la gaveta, pero si mañana debemos aprender a administrar enormes producciones en masa, de un día para el otro, puede llegar a ser un camino muy empinado y difícil de sortear. Liberarnos del “vicio” (mencionado al inicio) de aprender a seleccionar materiales en el mercado podemos hacerlo desde el principio, durante el aprendizaje. Sin caer en pagar más gastos de transportes que de materiales, nuestro producto final hablará por nosotros y los cazadores de talentos que viven buscándote en la web, sabrán diferenciarte entre la multitud.

La selección del elemento apropiado es como intentar descubrir el mejor camino

En la última parte de esta introducción debemos reconocer que al inicio de un proyecto hay una gran tentación de saltar y empezar a seleccionar el microcontrolador antes de que los detalles del sistema estén terminados de enumerar y plasmar en un sencillo listado de necesidades, esto es, una selección de acciones que deberá ejecutar nuestro desarrollo. Esta tentación es, por supuesto, una muy mala idea. Antes de administrar cualquier pensamiento orientado a la selección del microcontrolador, los ingenieros de hardware y software (es decir, tú) deben trabajar los altos niveles del sistema, con diagramas de bloques esquemáticos y diagramas de flujos operativos. Sólo entonces, existirá suficiente información para empezar a hacer una selección racional y prudente del microcontrolador.

¿Para qué quieres utilizar un 18F14K50 si sólo deseas hacer un esclavo dentro de una red RS-485 que active un PWM para un dimmer? ¿Comprendes lo que intentamos expresar? Tal vez no tengas otra cosa que ese 18F14K50 para sacar adelante ese sistema y entregarlo mañana como trabajo práctico, pero tú sabrás bien que allí podrías haber resuelto la situación con otro microcontrolador mucho más económico y de igual en eficacia operativa. Vale decir entonces que, ante la falta de opciones, cualquier elemento puede ser útil para resolver nuestro hardware, sin embargo, cuando tenemos la posibilidad de seleccionar es bueno conocer las herramientas básicas de las que dispone cualquier diseñador para alcanzar un desarrollo optimizado.

Hacer una lista de las interfaces de hardware requeridas.
Esta es una de las primeras y principales enumeraciones a realizar. Utilizando un diagrama genérico de bloques de hardware, puedes crear una lista de todas las interfaces externas que el microcontrolador tendrá que soportar. Hay dos tipos “importantes” de interfaces que necesitan ser enumeradas. Las primeras son las interfaces de comunicación. Esto incluye los periféricos, tales como USB, I2C, SPI, UART, CAN, LIN y/o todos aquellos sistemas de comunicación que habitualmente llamamos “bus de datos”. Debes poner especial atención, dentro de esta etapa, si la aplicación requiere conectividad USB o alguna forma de Ethernet. Estas interfaces afectan en gran medida a la cantidad de espacio del programa tendrá que llevar adelante el microcontrolador. Además, aquí entra a jugar un papel fundamental el factor económico.

La cantidad de pines se determina con un simple diagrama en bloques de los periféricos utilizados

Es decir, ¿me conviene utilizar un microcontrolador con USB nativo o un FTDI operado por UART? Claro, hoy la capa física del USB o de Ethernet pueden ser habituales y nativas en microcontroladores de bajo costo, sin embargo, trabajando por UART puedo utilizar todo el abanico de soluciones “hechas y listas para usar” que puede brindarme Arduino. Del otro modo, quizás deba pagarle a desarrolladores de software para que me organicen un código optimizado en un lenguaje que desconozco, orientado específicamente para una arquitectura determinada, o que me llevará meses aprender a dominar. Fíjate que en un pequeño detalle, un ATMEL con UART y un IC FTDI pueden resultar más efectivos que un PIC con Ethernet embebido. El otro gran tipo de interfaz es el de las entradas y salidas digitales I/O, ADC, DCA y PWM (sumemos los comparadores aquí). Este tipo de interfaz terminará de cerrar el número de pines que serán requeridos por el microcontrolador para la aplicación.

Requisitos de potencia del microcontrolador
En la segunda etapa de organización debemos comenzar a pensar en los requisitos de potencia de procesamiento que necesitará nuestro microcontrolador. Esto equivale a pensar si necesitamos un procesador trabajando a más de 100Mhz, o si un 16F628A a 4Mhz será suficiente para la tarea. Al igual que con el hardware, debemos tomar nota de los requisitos que serán importantes. Por ejemplo, ¿alguno de los algoritmos necesitará utilizar matemáticas en coma flotante? Aquí tendremos que comenzar a plantear los tipos de variables más grandes (mayor cantidad de bytes) que tendremos que manipular. ¿Existen lazos de control de alta frecuencia en sensores (MEMS, ADC, etc.)? Dicho de otro modo, sería estimar los tiempos y la frecuencia en que el microcontrolador  ejecutará tareas específicas. La cantidad de potencia de cálculo requerida será uno de los mayores requisitos para determinar la arquitectura y la frecuencia de trabajo del microcontrolador. Como puedes observar, ya tenemos dos puntos de apoyo muy importantes: Saber cuanta estructura externa deberá manejar con comodidad el  Microcontrolador y a qué velocidad deberá hacerlo.

Selección de la arquitectura.
Aquí comienza una de las etapas con mayor carga de interrogantes ¿Puede este proyecto  llegar a funcionar con arquitectura de 8 bits? ¿De 16 bits? ¿O necesitaré de un núcleo ARM de 32 bits? Entre la comprensión de la aplicación y el hardware a utilizar (saber que tareas hará el micro, en qué orden y con qué periféricos), sumado a las exigencias de los algoritmos de software requeridos, ya podremos comenzar a delinear una orientación hacia la arquitectura definitiva. No debes olvidar nunca que, aunque no los veas, puedes tener media docena de compañeros de trabajo en condiciones de analizar expansiones futuras de Hardware (HW) o de Firmware (FW). Esto es muy común en el mundo Freelance, pero si eres solo y la aplicación es exclusiva para ti, tampoco debes dejar de pensar que otros, al ver tu trabajo puedan opinar: “Yo le hubiera puesto un LED indicador de X”, “A mi entender le faltan servomotores que activen un brazo articulado para una mejor interacción con el usuario”, “¿Cómo no le has incorporado un sistema inteligente de carga de baterías?”, “¿No tiene Bluetooth? ¿Significa que no podrás hacerle una aplicación interactiva a un dispositivo móvil?

La arquitectura puede parecer un factor sencillo de resolver, sin embargo, siempre alguien deseará agregar algo más.

Necesidades de memoria.
La cantidad de Memoria de Programa (OTP o Flash) y la cantidad de RAM disponible, son dos componentes muy importantes en la selección de un microcontrolador. Asegurarte de que no te quedarás sin espacio para todo el programa (líneas de código) o en el espacio destinado a manejar las variables y las operaciones matemáticas que el proceso requiera es, sin duda, una la más altas de todas las prioridades de selección. Siempre será mucho más fácil seleccionar un microcontrolador con abundancia en estas características. Llegar al final de un diseño y descubrir que lo que necesitamos sería sólo un 5% más de espacio en Flash o en RAM puede significar una pérdida de tiempos imperdonables. Después de todo, siempre se puede empezar con un dispositivo bien dotado de espacio de memorias y luego pasar a otro más pequeño, dentro de la misma familia de microcontroladores. Además, la mayoría de los compiladores que se encargan de organizar el programa, hasta llevarlo a un archivo ejecutable por el microcontrolador, pueden calcular el espacio necesario a utilizar a medida que vamos incorporando código a la interfaz de desarrollo (IDE).  No te olvides de dejar espacio para la creatividad de terceros y las próximas versiones mejoradas del mismo equipo.  Esto puede ahorrarte muchos dolores de cabeza en el futuro y muchos rediseños de HW y FW.

Estamos a mitad de camino. Comienza la selección.
No, no te apures, no estamos refiriéndonos aún al microcontrolador. Hablamos de un proveedor confiable, de buena reputación en lo que respeta a variedad de materiales disponibles, a una mejor referencia sobre responsabilidad en el cumplimiento de los tiempos de entrega, un buen precio final y todo el apoyo logístico que pueda brindar como Servicio de Post-Venta. Esto último equivale a ofrecer los números de seguimiento de los envíos (tracking) a través del tipo de correo seleccionado para la entrega. Arrow, Avnet, Future Electronics, DigiKey, Mouser, Amidata (RS on-line), Elko, Cika o cualquier tienda similar alrededor del planeta que pueda brindarnos calidad, buen precio y confianza.

Ahora sí, para seleccionar el microcontrolador, con todos los datos que tenemos disponibles, podemos hacerlo desde nuestra experiencia y familiarización con una determinada marca, mediante la recomendación de otra persona, realizando una selección de algún modelo genérico dentro de varias marcas y luego decantarnos por el de menor costo o de mayor disponibilidad al momento de la compra.  La mayoría de los proveedores de circuitos integrados (sean fábricas o tiendas) tienen un motor de búsqueda que te permitirá introducir los parámetros más importantes del microcontrolador buscado (conjunto de periféricos, pines I/O, cantidad y tipo de memorias, etc.) y a medida que se introducen estas informaciones, la lista comienza a reducirse mostrando las coincidencias de los criterios de la búsqueda. De esa lista, el ingeniero puede avanzar hacia la selección definitiva de un microcontrolador.

Seleccionar dispositivos de bajo consumo, fundamental en equipos a batería.

Examinar los costos y las limitaciones energéticas
En este punto, el proceso de selección seguramente ya habrá revelado una serie de posibles candidatos. Este es un buen momento para examinar los requisitos de energía y el costo de cada unidad. Respecto a los requerimientos de energía, si nuestro trabajo final se alimentará desde una batería debemos asegurarnos de utilizar sistemas de ultra-bajo consumo energético. Aquí tenemos otro pilar fundamental en la elección. Como mencionamos al principio, la evaluación de costos es elemental, sin embargo, hay un criterio que no puede ser pasado por alto: "la relevancia de la aplicación en sí misma". La aclaración es la siguiente: no será lo mismo un procesador barato para un juguete, que uno sencillo, pero de alta gama y calidad para un equipo de electro-medicina. Quizás hasta este punto, con un microcontrolador de 25 centavos teníamos resulto el sistema, sin embargo, las altas garantías de seguridad de funcionamiento pueden llevarnos a seleccionar otro de 25 dólares. Es decir, la economía y la calidad de la aplicación deben equilibrar el fiel de la balanza.

Si necesitas proveer un gran proyecto, asegúrate de no quedarte sin mercadería pronto. Para un mismo producto, compara los recuadros.

Verificar la disponibilidad del dispositivo elegido.
Con la lista de partes potenciales en la mano, ahora es un buen momento para empezar a comprobar en qué cantidades se encuentra disponible la pieza que necesitamos. Algunas de las cosas a tener en cuenta son los tiempos de espera (plazos de entrega), la disponibilidad en grandes cantidades (en un mismo distribuidor) para asegurar una producción en masa sin detenciones, ni frenos inesperados. Si no hay en la tienda (no pueden tener millones de unidades de cada componente que exista) quizás su web puede informarte de la disponibilidad que hay en la fábrica y pueden acceder a estos materiales al momento de tu pedido (observa la imagn superior). Por otro lado y más allá de la disponibilidad en grandes volúmenes, es conocer si el producto está en fabricación activa o si ya está discontinuado (no se fabrica más). Todas estas cuestiones eran muy importantes en mis épocas de editor en N+. De hecho, uno de los casos emblemáticos de este problema fue el receptor con el TDA7000. Mucha gente se quedó con el deseo de construirlo. Existió un circuito integrado en una época que era un extraordinario receptor de comunicaciones. Tengo 6 u 8 unidades y podría hacer montajes maravillosos con ellos, pero ¿de qué serviría si nadie podría conseguirlos?

IDE, Compiladores y Herramientas de Depuración.
Esta puede ser una de las etapas de selección que no merece demasiados comentarios. Todos los fabricantes de microcontroladores se esforzarán y brindarán a los usuarios códigos de ejemplos, kit de desarrollos, compiladores de código, herramientas de depuración del mismo y hasta programadores específicos de la marca. Es importante saber que este material estará disponible para la construcción de los prototipos iniciales, de lo contrario, el proceso de desarrollo puede llegar a ser largo, tedioso y costoso.

Desde imaginar un producto hasta lograr cristalizarlo en la mente, hay un proceso que debe ser organizado y estructurado.

Simulación en Ordenador.
Si bien esta práctica no es aplicable a muchos casos, podemos crear un entorno de trabajo dentro de un Software de Simulación que sea capaz de soportar nuestro microcontrolador y experimentar allí si el comportamiento del dispositivo es el esperado. No siempre esta práctica es aconsejable para aferrarse a un concepto. Esto es, que allí funcione no significa que en la vida real suceda lo mismo, sin embargo, los resultados siempre serán muy aproximados y usar un simulador específico (recomendado por el fabricante de los microcontroladores) puede ser una herramienta segura y ágil para avanzar durante la fase de desarrollo. 

¡Comienza la experimentación!
Llegados a este punto del trabajo, aún no está dicha la última palabra. Si no existe un Kit de Desarrollo donde desplegar las conexiones a los periféricos necesarios y donde poder trabajar el FW con programación ICSP (In Circuit Serial Program), debemos comenzar a realizar un montaje en un protoboard, con los riesgos e impedimentos que muchas veces ello implica. Por citar un ejemplo muy sencillo y cotidiano, podemos mencionar a un 18F4550. (Pero 44 pines y encapsulado QFN). Riesgo de invertir una polaridad, de colocar un puente a Tierra o GND en un pin incorrecto, de cortocircuitar los pines del oscilador con el cuerpo metálico del cristal. Fallar en la construcción del circuito ICSP, olvidarnos de colocar resistencias limitadoras en las salidas a LED o en las entradas con Pull-up. Es decir, aquí es donde se adquiere un relieve significativo y válido de lo importante que es una apropiada simulación y un correcto desarrollo sobre un Kit específico, orientado al microcontrolador a utilizar.

Por supuesto y como mencionamos al principio, esto es el ideal para trabajos en grandes escalas de fabricación. Si sólo quieres divertirte y aprender un poco, estos sencillos consejos te ayudarán a aprender. Si tu objetivo es algún día llegar a la cresta de la ola, esto es un conocimiento básico y elemental que deberás manejar a diario.

Esto fue una interpretación libre de un artículo aparecido en EDN.

domingo, 7 de abril de 2013

¿A quién beneficia el código abierto?

Escuchamos y leemos a diario en la mayoría de las publicaciones electrónicas, foros, blogs, webs y cuanto espacio de opinión exista, que el código abierto es lo más parecido a la panacea universal o al futuro ideal de la tecnología. Tanto en Software como en Hardware, las palabras “Open Source” alcanzan un grado cercano al fanatismo religioso; a pensamientos y filosofías que se defienden a ultranza llevando, en el extremo de los casos, a grescas y peleas descomunales que pueden terminar con las mejores relaciones laborales, de amistad o de actividades afines entre las personas. Hoy te propongo que dejemos viajar a nuestra mente y coloquemos en ella a un personaje imaginario llamado Adalberto, que vive en un modesto país en vías de desarrollo y a una supuesta compañía multi-nacional; la SSC (Solar Systems Corp.), dedicada al tratamiento de energías renovables, con sedes fabriles en el sudeste asiático y oficinas de representación en las capitales más importantes del mundo.

Adalberto, a la derecha en la imagen

Adalberto, el mayor de 5 hermanos de una humilde familia, está maravillado con las posibilidades que brindan las energías renovables y sueña con alcanzar objetivos muy lejanos en su imaginación: Aprender a realizar una aplicación que sea útil para generar energía a través del sol y con ella, ayudar a paliar los gastos en energía de su hogar. Desde obtener unos pocos mA de corriente eléctrica, para cargar las baterías que la familia utiliza en su receptor de radio, emplazado sobre un estante en la habitación central de la casa, hasta abastecer a toda la casa con energía solar y eólica. Ya sería un sueño supremo y una vida realizada pensar que puede ayudar a otros a lograr sus mismas metas de auto-abastecimiento energético. Que lo reconozcan por la calle y lo saluden como el joven inventor que acercó con su inteligencia y bondad, hacia otras familias carenciadas, la posibilidad de tener luz en la oscuridad de la noche humilde, en el caserío donde habita. Sin darse cuenta y con su sólo pensamiento, Adalberto ya tiene un pié adentro del Open Source al comprender el bienestar que puede ofrecer a sus vecinos.

Open Source, deja que los demás paticipen.

Fascinado con sus investigaciones en el colegio, sumadas a las que pudo hacer en la biblioteca del pueblo y luego de organizar una BOM (Bill of Materials) (que ni él sabe que así se llama la “Lista de Materiales”), viaja dos horas a pié hasta la casa de un amigo que tiene “Internet” (eso que tiene la gente adinerada) para pedirle que lo ayude a buscar dónde comprar esos materiales que lo acercarán a su desarrollo. Al menos, a las partes iniciales. Luego de una larga caminata bajo un sol abrasador y soñando con que cada fotón que pega en su cabeza es energía que se puede acumular y transformar en luz durante la noche, llega a la casa de su amigo, Paul. Luego de despedirse de sus contactos del “Face”, Paul ayuda a Adalberto a buscar los materiales en las tiendas próximas a los lugares donde viven y encuentran que lo más cercano es un lugar donde venden productos SSC (Solar Systems Corp.). Al ver los precios de un panel solar, de un generador eólico, una batería pequeña y un sistema de gestión energética, Adalberto comprende que construir “cosas” no es una actividad de bajo costo o que se puede alcanzar con las pocas monedas que alberga en su bolsillo (el derecho, porque en el izquierdo tiene un agujero). Sin embargo, Paul lo alienta a no caer en el desánimo y lo felicita por su interés hacia el Hardware “Open Source”.

¿Compartes tus creaciones?

Acongojado, Adalberto le pregunta qué significa eso y su amigo le explica que se puede resumir en pocas palabras: “compartir para crecer”. Experiencias, conocimientos y resultados que pueden reproducir otros (sus vecinos). Hasta él mismo (Adalberto) podría adquirir nuevas enseñanzas o aprendizajes, al ver su idea original mejorada por otros. De ese modo, en los futuros diseños, podría obtener mejores rendimientos, mayores coeficientes de ganancia y un crecimiento exponencial de posibilidades; gracias a la “creatividad compartida” que presenta el Open Source. Muy lejos de alegrarse y caminando cansinamente de regreso a su casa, Adalberto comienza a formar en su mente una interpretación particular de lo que significa este tipo de filosofía. Se imagina inmediatamente un producto construido por él, con maderas de viejos cajones de manzanas y clavos reciclados, al que SSC tendrá acceso para reproducir, mejorar y perfeccionar a un nivel constructivo que luego él, no podrá igualar y mucho menos superar.

Adalberto se siente ultrajado antes de ponerse a trabajar y por unos días intenta olvidarse de su emprendimiento. Siente (comprende y asume) que será “usado” y que él no estará en condiciones de competir con SSC, fabricando una versión renovada y mejorada “de su propia invención”. SSC se llevará el dinero de su creación, de su investigación, de sus sueños. Y aquí es donde quien escribe este texto intenta conectarse contigo, que eres diseñador tecnológico por naturaleza y te enfrentas (antes de comenzar) a gigantes tecnológicos como le podría haber sucedido a nuestro personaje imaginario Adalberto con SSC. Las reglas del Open Source son muy claras y siempre beneficiarán al más poderoso de los contrincantes, no por cuestiones legales sino por poderío económico. Es decir, el día que tengas una iluminación celestial y creas que has encontrado la manera de hacer un buen producto, procedimiento o actividad y quieres que sea Open Source, no lo pienses desde el lado comercial, sino desde el espiritual. Desde un punto en que te haga sentir feliz. No pienses en el dinero que te llevarás tú o que se llevarán los demás, sueña con tu satisfacción personal de llegar a decir, “Yo fui el primero”.

Abre tu mente. Compartir es crecer.

Si el objetivo de tu trabajo “Open Source” es el dinero, puede que te sea muy difícil tener éxito en emprendimientos como por ejemplo, la re-invención de Arduino, trabajo que han hecho con RFduino. Re-invención que aún no sabemos si tendrá éxito comercial, pero que sobre un trabajo “Open Source”, alguien tuvo la visión y el concepto de mejorarlo “usando” todo el desarrollo previo y la base construida por Arduino. Tu puedes preguntarte: “¿Esto es legal?”. La respuesta es sí y si te preguntas si no se están violando derechos de autor, la respuesta es no. “Open Source” significa eso, “crear y dejar volar”. También significa “tomar, mejorar y volver a dejar volar”. Otro ejemplo más: ¿crees que podrías hacer los PCB y KITs mejor que SparkFun? Por supuesto, siempre habrá reconocimientos que respetar (si se hacen bien las cosas), pero una vez que tu creación sale a la luz, deja de ser tuya, pasa a ser de todos. Por lo tanto, antes de caer en des-ilusiones como la de Adalberto, considera que hay mucha gente volando sobre la web, esperando la creatividad ajena para obtener dinero. Si entiendes que tu trabajo es tuyo y de nadie más, consérvalo hasta que puedas patentarlo o registrarlo. Si crees que será bueno compartirlo, para que otros lo aprovechen y sea algo útil para las personas, aunque siempre quieras que sea tuyo, asesórate sobre licencias “Creative Commons”. Si eres solidario con quienes menos tienen (conocimiento o poder adquisitivo), si no te interesa el dinero, ni figurar como el rey de los creativos, la web y los oportunistas nos esperan con los brazos abiertos.

jueves, 28 de marzo de 2013

RFduino: Arduino + Bluetooth 4.0

RFduino combina lo mejor de dos mundos: Arduino + Bluetooth y lo hace en el tamaño de un sello postal o una goma de mascar. Este dispositivo, que es capaz de ejecutar el código fuente de cualquier Arduino y realizar las mismas acciones que antes podías hacer con ellos, tiene además la enorme ventaja de incorporar conectividad Bluetooth. Esto lo transforma inmediatamente en un dispositivo ideal para cualquier tipo de aplicación relacionada en forma directa con un teléfono móvil, una tableta o un ordenador portátil. Antes, necesitabas un módulo Arduino, un Escudo o Shield Bluetooth y la programación para que ambos sistemas puedan convivir y actuar en el entorno deseado. Hoy, sólo necesitas RFduino y un par de líneas de código. No te pierdas el sorprendente video que acompaña a este artículo.


Un nuevo proyecto tecnológico, económicamente participativo, está a punto de salir (en estos días) a la venta al público desde las entrañas de KickStarter. Se trata de RFduino, una pequeña placa que contiene un procesador Nordic (NordicSemiconductor) Cortex-M0 de 32 bits, que puede correr el mismo código fuente que un Arduino UNO, pero que en función del procesador utilizado “es muy superior” en velocidad de trabajo y prestaciones. De este modo, con RFduino podrás ejecutar el mismo tipo que código que construyes y utilizas actualmente en cualquier Arduino. El sistema utiliza el chip nRF51822 con tecnología SoC (“System-on-Chip”) y Bluetooth de ultra bajo consumo (4.0), como mencionamos antes, que incorpora un potente procesador de 32 bits. De este modo, en su lanzamiento al mercado, queda asegurada la compatibilidad con teléfonos inteligentes como el iPhone 4S/5, y con tabletas como el iPad  de tercera y cuarta generación, o el mini iPad. En muy poco tiempo está previsto además, que existan aplicaciones disponibles para Android.


Las 7 líneas GPIO que posee en su hardware el RFduino se pueden utilizar como I/O digitales, ADC, SPI, I2C, UART o PWM según la programación que se haga de las mismas. Posee un sistema modular muy similar a Arduino en cuanto a ser un sistema “apilable” (la imagen adjunta es muy clara) y posee sus propios escudos o “Shields” que le permiten conectar periféricos en función de cada aplicación y que en definitiva todo termina siendo menor y/o mejor: su precio, su tamaño, mejor desempeño (el más pequeño de los Cortex es muy superior a cualquier PIC, por ejemplo) y mejor relación tamaño – costo – expansión. Esto último viene a referencia de que cualquiera puede pensar que el Arduino UNO posee más pines I/O, sin embargo, con un bus I2C, RFduino puede manejar muchos expansores que podrían brindarle decenas de I/O programables y operativas. Además, posee tan bajo consumo, que puede trabajar con una simple batería CR2032.


Ingenieros, profesores, estudiantes, aficionados y todo el mundo Arduino, comienza a prepararse para esta nueva vuelta de tuerca en la historia planteada hace pocos días atrás. ¿Qué será mejor? ¿Saber programar o construir hardware? Más allá de eso, RFduino llega al mundo como un sistema que se vale de otro (de Arduino) para aprovechar su concepto y su facilidad de uso, para ofrecer un producto “superior por donde se lo analice”.


Veremos que ocurre y como evoluciona esta nueva competencia que aparece en el mercado para Arduino. Los usuarios, por estos días, estarán muy agradecidos y en especial “ansiosos” de comenzar a trabajar con este “todo en uno”, que promete avanzar con mucha fuerza. No dejes de estar informado; en el momento menos esperado, aparecerán las aplicaciones, los experimentos y RFduino será el nuevo protagonista de la Electrónica sin estaño.

domingo, 17 de marzo de 2013

Arduino, Raspberry Pi y una historia de cajas negras.

Existe una nueva tendencia en el mercado electrónico que abarca desde pequeños grupos de emprendedores, hasta las compañías de primera línea que incorporan, como elemento de trabajo, placas que traen los elementos necesarios para hacer funcionar un sistema que antes se construía (muchas veces) de manera anárquica. Es decir, cada investigador electrónico intentaba armar sus prototipos de la mejor forma que podía y no existía un patrón estructural. Con la llegada de Arduino y otros sistemas similares, este problema fue resuelto y el trabajo se centró en saber programar. El hardware comenzó a venir todo hecho, resuelto, económico y listo para ensamblar. Allí nace la gran pregunta: Saber programar, ¿Significa saber de electrónica? ¿Tú que opinas?

La llegada de Arduino al mundo de la Electrónica fue una vuelta de página respecto a la actividad tradicional que solía tener cualquier aficionado a la electrónica. Si bien antes tampoco era necesario saber soldar para poner en marcha un sistema basado en un microcontrolador sobre un protoboard, al menos había que saber ensamblar ese hardware y luego había que tener ciertos conocimientos de programación. Muchos, pocos o medios, eso no importaba y en definitiva, de eso dependería hasta dónde llegaría el realizador electrónico con su desarrollo. Cuando entra Arduino en escena, había mucha (pero mucha) gente que sabía programar (en diversos lenguajes) o en su defecto tenía grandes nociones de la actividad ya que en los diferentes niveles educativos, los lenguajes de programación comenzaron a ser una constante. En muchas ocasiones, los alumnos no entendían muy bien lo que estaban estudiando debido a que “eso” que armaban, partiendo de un diagrama de flujo, no lo podían “ver en acción” más que en algún emulador o simulador dentro del ordenador. En el mejor de los casos, la rutina terminaba en algún circuito hecho por otros, puesto a punto por otros y al que se tenía acceso sólo cuando se encontraban con esos “otros”, que terminaban siendo profesores, alumnos avanzados de la carrera o experimentadores solitarios (gente rara).

La Electrónica sobre un protoboard. Estructuras anárquicas que variaban de un electrónico a otro

Hasta que un día apareció una placa económica, con muchas “cositas”, que enarbolaba la bandera del Hardware y Software Libre, pero que para una inmensa mayoría no era más que una “caja negra” que funcionaba con sólo conectarla a un puerto USB del ordenador y por sólo 25 Dólares la podíamos llevar con nosotros, a cualquier lugar y en todo momento. No importaba que tenía dentro, lo que interesaba era que con ella se podía “dar vida útil” a las interminables horas de aburrida programación estudiantil. A partir de allí, todo jugó a favor. La onda expansiva se propagó por Internet como nunca podría haberlo hecho otro fenómeno por otro medio tan masivo y de comunicación realimentada en forma automática como fue la web. De este modo, llegó a personas que no sabían lo que era un FTDI o un ATMEGA y que además, “no les interesaba”. Para ellos, escribir cuatro líneas de código y lograr que un LED encienda y apague, era un acontecimiento único en su vida.

Arduino, el boleto de ida, para muchos, al mundo de la electrónica, partiendo desde un teclado

Hasta ese momento (llamémosle “antes”), había una comunidad de trabajadores de la electrónica del hardware, con sus dedos callosos por las quemaduras con el soldador (o cautín). Con sus ropas sucias de salpicaduras con ácido para hacer los PCB. Con los ojos pequeños de “enrutar” vías durante noches enteras hasta descubrir, al día siguiente, que el encapsulado de un capacitor era enorme y no entraba en el espacio que tenía reservado. Más noches escribiendo línea a línea un código en ASM donde la rutina debía saltar si el bit del registro estaba “seteado” o no y donde cada NOP podía significar la pérdida de toda una trama de datos, transmitidos en forma serial. Y más noches peleando con un dudoso programador de microcontroladores que nunca repetía dos veces un mismo mensaje de error y confundía más de lo que programaba.

Aquí, en este punto de la línea de los tiempos, cuando los microcontroladores ya existían e Internet no era más que un puñado de personas alrededor del mundo. Cuando el correo electrónico era toda una rareza. Cuando no existía el puerto USB en los ordenadores. Aquí, en este punto de la historia, ¿Tú crees que Arduino, o un sistema similar con tecnología acorde a sus tiempos, podría haber tenido éxito? En sus comienzos, sin la web, Arduino no hubiera sido más que una bonita placa, funcionando con pequeños ejemplos obtenidos desde un CD de alguna publicación impresa especializada. Pero no nos adelantemos, sigamos en la era del puerto paralelo y puerto serie.

Apertura de puertas y persianas automáticas con Arduino. No importa que el 90% sea otra cosa. 4 cables conectan a un Arduino

Hasta que en ese momento (llamémosle “presente”), aparece esta caja negra que sólo necesitaba un conector USB hacia un ordenador, algo de hardware periférico y genérico (motores, luces, sensores, llaves) y programación, sólo programación. Los primeros virtuosos del teclado que “vieron” el potencial que encerraba esta caja negra comenzaron a explotarlo, haciendo desde la aplicación más simple hasta la más compleja y combinada. Estructuras formadas por múltiples Arduinos trabajando como esclavos unos de otros y operando desde un simple juego de luces, hasta un robot volador completo. Todo se hacía con Arduino. Los titulares de los artículos eran redundantes. “Luces audio-rítmicas con Arduino”, “Indicador de LED con Arduino”, “Semáforo con Arduino”, “Regador automático con Arduino”, “Zapatófono con Arduino”, “No-sé-qué-cosa con Arduino” y lo más atrapante eran las “Impresoras 3D con Arduino”.

El público en general leía los titulares de las aplicaciones, pero cada tres o cuatro palabras encontraba una coincidencia: “Arduino”. A partir de allí la ola se generó sola. La gente comenzó a agruparse en páginas, foros, comunidades y la web (que ya disfrutaba del ADSL hacía varios años) fue la gran plataforma de lanzamiento de este sistema, que aún sigue tan vigente como al principio y que cada día suma más adeptos. Gente con una notable y admirable creatividad que produce realizaciones que, hasta hace pocos años, eran privativas para los más evolucionados electrónicos. Éstos, al ver esta nueva ventana al público consumidor, comenzó a diseñar y a elaborar lo que se conocen como “Shields” (Escudos) que facilitan la tarea de orientar la “caja negra” hacia aplicaciones específicas. Uno de los más claros ejemplos de esto es el que permite conectividad Ethernet. Sólo se trata de insertar un módulo, tomar ejemplos de código hechos por otros y se produce la magia: en pocas horas un programador puede jactarse de operar las luces de su casa vía web. Más aún si agrega el escudo WiFi. Sus amigos lo admirarán al ver que con su teléfono móvil, vía web y desde una mesa de café, controla las luces, la alarma de su casa y hasta le da de comer al gato. Todo con un Arduino. (“Este sí que de Electrónica sabe mucho…”)

El potente mbed, de NXP

Lo que Arduino despertó o generó (llamémosle “después”) fue una nueva generación de creativos electrónicos que evolucionó como un tsunami, en términos cronológicos, de la noche a la mañana. Con la misma velocidad aparecieron mbed, chipKIT, LPCXpresso, Amicus y muchas otras que ni siquiera fueron conocidas en forma masiva. Y allí no paró esa ola que inundó el mercado con placas que lo contenían todo, que lo hacían todo. La competencia se tornó cada vez más importante porque aprovechando las crecientes tecnologías de miniaturización comenzaron a realizarse arquitecturas diferentes, para realizaciones diferentes y objetivos ídem. Este es el caso del actual sistema Raspberry Pi, por citar un ejemplo. Como mencionamos antes, es otra cosa que nada tiene que ver con Arduino, pero permite el acceso a la gente para que ingrese al mundo electrónico, del diseño y del desarrollo desde el mismo lugar: la programación de una caja negra. Equipos muy económicos, que requieren poco hardware adicional (el poco que necesitan ya viene hecho) y que logra resultados sorprendentes. Como dijimos antes, quizás las arquitecturas y los conceptos no tengan nada que ver entre sí, pero lo digno de remarcar es la ventana que el comercio ha abierto a un nuevo segmento de "consumidores". Los nuevos genios de la electrónica sin soldadura y con la web de su lado, como herramienta base.

Las sorprendentes LPCXpresso de NXP

Sin embargo, en la mayoría de los casos y como suele ocurrirnos a casi todos los seres humanos, muchos de estos mismos desarrolladores que hace un año no sabían lo que era un transistor, hoy se enfrentan al reto de que la topología de su caja negra, “les queda chica”. Además, con el tiempo, fueron creciendo en el trabajo y ello los llevó a un aprendizaje autodidacta que les enseñó a avanzar más y más. Mañana quizás sean los creadores de nuevas “cajas negras versión 2.0” o comiencen a vivir la experiencia de salir hacia el mundo electrónico “hecho a medida”, desarrollado desde las entrañas de un circuito esquemático hasta cada vía de un PCB y cuando sean exitosos ingenieros realizados empresarialmente, recordarán con cariño aquellos años dorados de los inicios con Arduino.

El ordenador más pequeño y económico del mundo que te permite acceder a la electrónica en sólo unas horas

Visto en perspectiva, podríamos comparar la situación con aprender a conducir, comprar un automóvil y disfrutarlo. Salvando las distancias, los costos y los tamaños, la analogía del ejemplo puede ser válida. Hoy (y desde hace muchos años), la gente no se construye sus propios automóviles, pero el que deciden comprar, no será útil como vehículo de paseo familiar, como transporte de cargas y/o como un barco para 200 personas, es decir, para todas estas aplicaciones. En electrónica sucede algo similar, una solución, no es válida para todos los escenarios y muchas aplicaciones deben ser construidas a medida, porque una bocina en un avión o un timón en un auto, no quedarían muy elegantes y útiles. Regresando al área electrónica, para muchos, Arduino es lo más importante que les sucedió en la vida. Para otros, no es más que un oportunismo comercial que llegó al éxito y muchos están corriendo detrás de una parte del pastel. Es decir, aprovechar el negocio de los “programadores – electrónicos”. Tú, ¿En qué escala de valores lo ubicas? Para ti, saber programar, ¿Significa saber de electrónica?

sábado, 14 de agosto de 2010

Amicus: Software libre para PIC 18F25K20

Proton es uno de los mejores lenguajes BASIC (considerado de alto nivel) que se encuentra en el mercado. Fácil de usar y muy potente, es una herramienta muy codiciada por los programadores que comienzan a transitar el apasionante mundo de los microcontroladores. Su costo resultaba muy elevado para muchas personas pero ahora, con Amicus IDE, ese problema se resuelve. Desarrollado en forma específica para el PIC 18F25K20, Amicus IDE es la versión libre y gratuita del popular software Proton. En realidad, Amicus es mucho más que un simple software. Es toda una plataforma de desarrollo que te permite comenzar a crear desde el primer día. Toda la potencia de Proton disponible en tu ordenador para trabajar libremente con un PIC muy veloz y robusto como es el 18F25K20.

Crownhill ha dado un paso muy importante en la competencia con Arduino. Utilizando un PIC con mayor cantidad de entradas y salidas, la misma velocidad de proceso (Arduino tuvo que apelar al AVR ATmega328 para no perder esta carrera) y un software libre basado en el popular lenguaje BASIC, la apuesta es muy fuerte y tentadora. Si a esto le agregamos que los módulos (accesorios) existentes de Arduino son compatibles en su mayoría con Amicus 18, la propuesta aparenta ser más interesante aún. Por supuesto, el precio de venta al público de ambas plataformas es el mismo: 25 Euros. La competencia se abre ahora en muchos frentes, con la disponibilidad de muestras gratis de los microcontroladores, con los precios de los módulos adicionales, con la facilidad para usar los programas de aplicación, con los ejemplos disponibles en la Web para adaptar nuestros proyectos y hasta con la posibilidad de NO depender de un hardware duro e imposible de adaptar. Amicus 18 no aparece en el mercado como una copia de Arduino. Es otra cosa. Es un sistema de desarrollo donde las ataduras al hardware desaparecen y el usuario puede hacer y deshacer a discreción.



Si quieres saber más sobre Amicus, continúa leyendo aquí.