Hoy la palabra de moda en cuanto a electrónica digital y desarrollos rápidos, eficaces y sorprendentes es Arduino. En muchos colegios técnicos están trabajando con este nuevo producto que se presenta como una solución a muchos de los problemas de aprendizaje e interacción del alumno con la tecnología. ¿Cuáles son los motivos que llevan a creer que a partir de una plataforma pre-armada pueda ser más sencillo aprender? ¿Que tiene de especial? Hagamos una comparativa y evaluemos si es tan sorprendente como nos lo venden.
Si a este gran sumario le agregamos las características de código abierto que brinda el sistema, estamos sin duda ante un producto digno de ser analizado. La facilidad de desarrollar elementos interactivos y la posibilidad de comenzar a utilizar Arduino sin conocimientos previos sobre electrónica, nos tientan a seguir leyendo e investigando acerca de él. El prometedor suceso de manejar motores, encender y apagar luminarias, actuar sobre sensores, y crear programas de computadora para interactuar con el sistema, nos entusiasma y nos permite imaginarnos a nosotros mismos sorprendiendo a la familia con la maravilla de la electrónica que hemos aprendido en ¿tres semanas? ¿No es muy rápido?
Comparativa Arduino
Arduino se basa en una plataforma denominada open hardware que reúne en una pequeña placa de circuito impreso (PCB) los componentes necesarios para conectar con el mundo exterior y hacer funcionar un microcontrolador Atmega. Actualmente hay varios modelos de sistemas Arduino que van cambiando de microcontrolador, siendo los primeros el Atmega8 y el Atmega168. Al ser Open-Hardware, tanto su diseño como su distribución son libres. Es decir, puede utilizarse sin inconvenientes para desarrollar cualquier tipo de proyecto sin tener que adquirir ningún tipo de licencia.
La placa es de muy fácil montaje, con pocos componentes periféricos al microcontrolador. Si hemos comprado el kit para armar, será muy sencillo seguir los pasos de guía de los múltiples tutoriales que se encuentran en la red para ponerlo a funcionar. Bastará un pequeño soldador, algo de estaño y los materiales del kit para que, en una tarde, la placa completa pueda estar entregando su magia en nuestra mesa de trabajo.
Una vez armada la placa con sus componentes, resta colocar en ella el microcontrolador y programarla. Pero si creemos que no estamos preparados para armarla nosotros mismos, o si queremos ahorrar tiempo, podemos comprarla ya hecha. La página oficial de Arduino nos informa de varios proveedores en todo el mundo, entre ellos lógicamente España. Será muy sencillo elegir el más próximo a nuestra localidad y adquirir el producto ya listo para usar.
En la actualidad, el fenómeno Arduino está creciendo rápidamente, al igual que la diversidad de modelos que puede elegir el cliente. Hay dos cuestiones principales que hacen la gran diferencia a la hora de elegir dichos modelos: la primera es el tipo de microcontrolador a utilizar, y la segunda es el modo de comunicación que poseerá la placa Arduino con el ordenador. Tal como dijimos antes, los tipos de microcontroladores son dos: Atmega8 y Atmega168. La diferencia entre ambos es la capacidad de memoria interna que poseerán para almacenar el programa que diseñemos e introduzcamos en él.
En cuanto a la comunicación de Arduino con el ordenador, encontramos que ésta se realiza por Puerto Serie (RS232), Puerto USB (utilizando un FT232BL para la interconexión), o por el sistema ICSP (In Circuit Serial Program) en aquellos casos en que el deseo del usuario sea una unidad autónoma (stand alone) sin necesidad de interacción con el ordenador para su actividad y desarrollo de funciones. Recordemos que la comunicación se utiliza tanto para la interacción de Arduino con el ordenador (cuando el programa grabado en el dispositivo así lo requiera) como para la programación del microcontrolador.
Un ejemplo sencillo de unidad autónoma es una alarma domiciliaria con sensores mecánicos, infrarrojos y actuadores de sirenas. En cambio, si se trata de una unidad que interactúa con el ordenador, puede ser una pequeña central meteorológica que vaya almacenando datos y mostrando en pantalla (en tiempo real) la información obtenida en cada instante. Por último, al software encargado de “crear” el programa que hará funcionar al microcontrolador lo podemos descargar también gratuitamente desde el sitio oficial de Arduino. Actualmente se encuentra disponible la versión Arduino 0015, en versiones disponibles para Windows, MAC y Linux (32 bit).
La placa armada (comprada o hecha por nosotros mismos) consta de aquello que figura en la imagen anterior: un regulador de tensión para brindar al microcontrolador una tensión estabilizada de alimentación (5Volts), el conector de comunicaciones ICSP, y las 6 entradas analógicas para sensores de cualquier tipo, como ser potenciómetros, sensores magnéticos, termocuplas, LDRs, optoacopladores, fototransistores, y cuanto sensor analógico se nos ocurra. Vale aclarar que también puede conectarse allí la salida de cualquier amplificador operacional que haga las veces de buffer de entrada al sistema, brindando a la entrada seleccionada una mejor adaptación de impedancias, junto con una buena aislación y separación entre bloques circuitales. Por último, encontramos las I/O digitales que sirven para activar algún relé, luces, motores, etc.
Esto es Arduino. Muchos artistas y neófitos en la materia acuden a esta plataforma para acortar camino en el desarrollo de un sistema inteligente que produzca algún evento deseado a su salida en función de una eventual acción que provoquen en sus entradas. Por ejemplo, con sensores sensibles al tacto en sus entradas, podemos obtener la activación de sonidos polifónicos en alguna de sus salidas. ¿Y por qué acortan camino? Porque compran algo hecho, moldeable como la arcilla húmeda, que les brinda resultados tangibles a las pocas horas de tenerlo a través de información gratuita (también ya hecha y lista para ser descargada de la Web). Es decir, en Arduino hay muchas cosas sencillas ya hechas, sólo tenemos que elegir la que nos atraiga y sea útil a nuestro propósito, montarla y listo.
Comparativas e interrogantes
Charlando con un colega acerca de este fenómeno, comenzamos a profundizar en el tema y nos surgieron una veintena de interrogantes que pasamos a compartir contigo.
-
- Arduino utiliza un Atmega168 o un Atmega8 (en su versión más económica). Este procesador y la placa (en cualquiera de sus versiones), ¿son más baratos que sus equivalentes en PIC (16F876A o similar)?
Un Atmega es 1 euro más barato que un PIC de similares características. Si contamos el hecho de que un Arduino cuesta cerca de 50 euros, la diferencia es mínima; además, debido a que voy a encontrar toneladas de bibliografía sobre PIC y no tanta sobre Atmega, voy a preferir PIC.
-
- ¿Se podría hacer una construcción de similares características a Arduino en lo funcional, pero con un 16F876A (conexión RS232 + entradas y salidas multipropósitos)?
Por supuesto. Incluso se puede mejorar restando entradas ADC que no se utilicen, configurando los registros internos del PIC, y pasando a tener más cantidad de I/O digitales que pueden ser vitales en el desarrollo. En la arquitectura Arduino, las I/O están determinadas de una forma inalterable. Entonces, para poder diseñar mi circuito a mi medida voy a preferir PIC.
-
- El Hardware de Arduino, ¿por qué se vende?
Tal vez porque hay gente que no sepa fabricarlo.
-
- ¿Tú o yo podemos fabricar placas Arduino y venderlas?
Si, claro. Lo mismo sería si alguien quisiese instalar Linux en su ordenador pero no supiese hacerlo. Nosotros podríamos cobrar por ese trabajo sin importar que estemos instalando algo que es gratis. Nuestro trabajo es lo que se cobra.
-
- El software para construir las aplicaciones de Arduino, ¿qué tiene de bueno, además de ser gratis? ¿Puede ser el hecho de que se programe en C?
Exacto. C es uno de los programas de mayor crecimiento en materia de programación de microcontroladores gracias a la simplificación de comandos y su lenguaje de alto nivel. Pero por otro lado, MPLAB es una herramienta distribuida por Microchip que también es gratuita y también nos brinda la posibilidad de trabajar en C. El bonus del MPLAB es que nos permite trabajar en ASM directamente, manejando los tiempos del microcontrolador a la perfección, y con la precisión exacta que nos brinde el cristal que estemos utilizando como clock del sistema. Es decir, con MPLAB se tiene el dominio absoluto de la acción a cada instante. Claro, no podemos programar Atmega con él, sólo PIC. Entonces, voy a preferir PIC.
-
- Si la programación es en lenguaje C ¿por qué no se usa CCS (en su versión demo, que es completamente funcional) para programar el Atmega que trae Arduino?
Por la misma razón que no se puede usar MPLAB: porque CCS es para PIC. La proporción de ventas de microcontroladores de PICs es altísima respecto a Atmega. Entonces, voy a preferir PIC.
-
- El MPLAB (que también se puede programar en C), ¿no es infinitamente más versátil, confiable y sobre el que se puede encontrar bibliografía de apoyo en cualquier rincón de la Web, en contraste con el soft creado especialmente para Arduino?
Por supuesto. Una gran compañía como Microchip avala esto. Entonces, voy a preferir PIC.
-
- Los Atmega, ¿son más fáciles de conseguir y más baratos que los PICs?
En cualquier distribuidor de España seleccionado al azar, Atmega es 1 euro más barato que PIC (a similares características). Además, si consideramos armar un producto final y sumamos los precios de Arduino más los accesorios periféricos a él, la diferencia respecto a PIC se hace mínima ya que se transforma en un 1% o 2% del coste final. Entonces, por mayor versatilidad y apoyo técnico, voy a preferir PIC.
-
- La programación en ICSP, ¿es más sencilla en Atmega que en PIC?
No, trabaja de similares características.
-
- ¿Conviene usar un Atmega con un FT232B por sobre un 18F2550 directamente?
No, en absoluto. Un sistema nativo es 100% más confiable respecto a un sistema adicional agregado. Entonces, voy a preferir PIC.
-
- ¿Conviene usar un Atmega con un RS232 por sobre un 16F876 con un RS232?
Ambos trabajan satisfactoriamente en una comunicación RS232.
-
- ¿Conviene usar un Atmega con un módulo Bluetooth por sobre un rfPIC de 2,4Ghz?
Es el mismo caso de la opción del uso del FT232B. Los rfPIC traen integrado el sistema de radiofrecuencia nativo, lo que los hace más confiables. Entonces, voy a preferir PIC.
-
- ¿Hay más literatura sobre MPLAB y PIC o sobre Atmega y Arduino?
MPLAB y PIC poseen una enorme cantidad de material de consulta bibliográfica respecto a Atmega, y mucho más aún respecto a Arduino. Infinito a 1. Entonces, voy a preferir PIC.
-
- ¿Qué se puede hacer con Arduino que no podamos hacer con un 16F876 y MPLAB?
Nada. Por el contrario, habría una interminable lista de cosas que Arduino no podría hacer y PIC sí. Entonces, voy a preferir PIC.
-
- ¿Hay más usuarios de Windows o de Linux?
De cada 10 usuarios, 8 usan Windows y 2 usan Linux. ¿Y esto qué tiene que ver con Arduino? La gente que elige Linux sabe que va a pertenecer a una minoría; sin embargo, encuentra utilidad en un campo que conoce y, por ende, encuentra satisfacción en ser artífice, protagonista, director y realizador de su propia obra. Con Arduino, esto no es posible. El usuario que elige esta última opción queda limitado a lo que el hardware le permite, viéndose imposibilitado de flexibilizar la arquitectura circuital, lo que sí podría hacer si optara por una estructura diseñada a base de PIC (o cualquier otro microcontrolador).
-
- ¿Hay más usuarios de Explorer o de Firefox?
De cada 10 usuarios, 6 usa IE y 4 Firefox (salvo en Europa). ¿Y esto en qué se relaciona con Arduino? Es lo mismo que la pregunta anterior. Cuando los padres van a comprar el ordenador a sus niños, piden en la tienda que saquen Linux e instalen Windows porque hay más videojuegos para el segundo. IE es nativo de Windows, por eso se utiliza más que Firefox, a pesar de que este último es infinitamente superior a IE por donde se lo mire. Entonces, las dos preguntas convergen en que el que sabe y le gusta manipular un producto para sacar mayor provecho de él no compraría el limitadísimo Arduino, sino cualquier expandible y experimentable microcontrolador de la marca que sea.
-
- Usar Arduino, ¿es ser “distinto y experimentador”? ¿Es como usar Linux?
Todo lo contrario. Es para aquel que no sabría desarrollar algo con microcontroladores y optaría por comprar algo hecho.
-
- Un 16F876A + MPLAB, ¿es superior a Arduino, en toda clase de prestaciones?
Es mucho más flexible por permitir el uso de ASM. Y más aún en los casos en que se desee utilizar alguna versión de BASIC para programar el PIC o interactuar con él (VB6 o cualquier aplicación). Con Arduino, estás atado al uso del soft que viene con el sistema, y si no sabes de programación no puedes variar sus características. O sea, no puedes salirte de la aplicación que te han vendido. Sí puedes interactuar con otros programas; pero para grabar el firmware dentro del microcontrolador, debes usar el específico de Arduino.
-
- Si Arduino fue creado para fomentar la cultura del software libre, ¿el kit de desarrollo no debería ser también GRATIS, financiado por alguna fundación acorde?
¿Y donde estaría el negocio?
-
- ¿Es Arduino una verdadera búsqueda del Open Hardware y Open Soft? ¿O es una estrategia de ATMEL para reposicionarse (intentar existir) en el mercado ante Microchip?
Atmel tal vez ni sepa que Arduino existe. La arquitectura Arduino fue concebida en un ámbito universitario donde se vio en ella la practicidad de comprar algo hecho, sin necesidad de trabajar ni pensar para comenzar a utilizarla y estudiarla.
Naturalmente los docentes aplaudieron esta iniciativa porque los liberaba de tener que enseñar desde hacer un PCB hasta soldar componentes; pasaban directamente a los hechos de enseñar programación en C. Por tratarse de un producto económico, el boom expansivo fue instantáneo. El estudiante recibía un producto listo para usar sin pensar ¿Qué más se podía pedir?
Además (recordemos que estas son opiniones personales) en Arduino se utilizó Atmel y no PIC para tratar de no recibir tan prontamente una catarata de productos similares que rápidamente lo superasen en prestaciones y posibilidades de expansión. Software gratuito para programar PICs hay hasta debajo de las piedras; para programar Atmel, no. Allí estaría la clave de su utilización. Repito, son opiniones personales.
-
- Si Arduino es para iniciarse, ¿cuantos años le puede llevar a un principiante que no sabe nada de electrónica armarse una placa Arduino conectable a USB?
Toda una vida. Saber soldar componentes electrónicos en un PCB no es información genética que se trae incorporada al nacer. Se debe aprender. Identificación de componentes, prolijidad, orden, buen gusto y ganas de aprender son características de pocos estudiantes. La inmensa mayoría está más pendiente del ordenador, los videojuegos, el teléfono móvil, etc. Soldar un FT232B en montaje SMD puede llevarle tres días a un novato y puede costarle 14 circuitos integrados quemados o con pines arrancados y 3 placas con el circuito impreso destruido.
En la foto se ve muy sencillo porque es la forma de vender el producto, pero la práctica es muy distinta. Es como ver a nuestro ídolo en acción: él lo hará todo fácil. Cuando nosotros intentamos lo mismo, puede suceder un desastre.
Conclusiones
Arduino es lo tuyo si eres estudiante y deseas con poco dinero hacer un par de juegos de luces o algún pequeño robot; también te conviene si sabes algo de programación en PC y deseas armar algo para deslumbrar a tus amigos, a las chicas y a tus padres, o si te gusta soldar componentes y armar pequeños cacharrillos que vas encontrando en la Web. Es un entrenador para ingresar de lleno al mundo de los microcontroladores. Pero mira bien y consulta con los que saben antes de comprar. Otros fabricantes de microcontroladores pueden ofrecerte un producto muy superior en todo sentido, y hasta por menos dinero.
Si no tienes conocimientos previos de programación, ni sabes soldar componentes, ni puedes distinguir una resistencia de un diodo, debieras solicitar ayuda antes de embarcarte en la empresa de trabajar en esto. Si bien todo con esfuerzo se consigue, es mejor hacerlo con una guía al lado.
Pero si, en cambio, lo tuyo es la experimentación, el desarrollo de equipos avanzados electromecánicamente que sean capaces de interactuar con el medio ambiente de manera inteligente, debes saber que Arduino no fue ideado para personas como tú. Microchip, Atmel, Freescale y muchos otros fabricantes brindan soluciones reales a construcciones verdaderamente importantes. Las cosas que fueron ideadas para que los niños aprendan, o para que aquellos a los que no les interese estudiar demasiado puedan lograr algunas pocas acciones, no sirven para el desarrollador electrónico que llevas en tu interior.
Existen en la Web, además, muchos sitios hispanos donde encontrarás desarrollos de software libre iguales, y hasta en la mayoría de los casos, muy superiores a Arduino. Sólo basta una simple recorrida por la red para descubrir que hay muchos anónimos allí afuera, que también hacen maravillas y las comparten con los demás, sin necesidad de bombos ni platillos. Arduino es un juguete educativo, un entrenador de un microcontrolador específico como cualquier otro, no más que eso. La diferencia está en que hoy es moda y comodidad. Las aplicaciones importantes y/o industriales son otra cosa.