viernes, 27 de noviembre de 2015

¿QUÉ ES ARDUINO?


Arduino es una plataforma de prototipos electrónica de código abierto (open-source) basada en hardware y software flexibles y fáciles de usar. Está pensado para artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos.
Arduino puede sentir el entorno mediante la recepción de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando el Arduino Programming Language (basado en Wiring) y el Arduino Development Environment (basado en Processing). Los proyectos de Arduino pueden ser autonomos o se pueden comunicar con software en ejecución en un ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.).Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software se puede descargar gratuitamente. Los diseños de referencia del hardware (archivos CAD) están disponibles bajo licencia open-source, por lo que eres libre de adaptarlas a tus necesidades.Arduino recibió una mención honorí ca en la sección Digital Communities del Ars Electronica Prix en 2006.

¿Por qué Arduino?
Hay muchos otros microcontroladores y plataformas microcontroladoras disponibles para computación física. Parallax Basic Stamp, Netmedia’s BX-24, Phidgets, MIT’s Handyboard, y muchas otras ofertas de funcionalidad similar. Todas estas herramientas toman los desordenados detalles de la programación de microcontrolador y la encierran en un paquete fácil de usar. Arduino también simplifica el proceso de trabajo con microcontroladores, pero ofrece algunas ventajas para profesores, estudiantes y a aficionados interesados sobre otros sistemas:

Barato: Las placas Arduino son relativamente baratas comparadas con otras plataformas microcontroladoras. La versión menos cara del modulo Arduino puede ser ensamblada a mano, e incluso los módulos de Arduino preensamblados cuestan menos de 50$.
Multiplataforma: El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux. La mayoría de los sistemas microcontroladores están limitados a Windows.
Entorno de programación simple y claro: El entorno de programación de Arduino es fácil de usar para principiantes, pero su cientemente flexible para que usuarios avanzados puedan aprovecharlo también. Para profesores, está convenientemente basado en el entorno de programación Processing, de manera que estudiantes aprendiendo a programar en ese entorno estarán familiarizados con el aspecto y la imagen de Arduino.
Código abierto y software extensible: El software Arduino está publicado como herramientas de código abierto, disponible para extensión por programadores experimentados. El lenguaje puede ser expandido mediante librerias C++, y la gente que quiera entender los detalles técnicos pueden hacer el salto desde Arduino a la programación en lenguaje AVR C en el cual está basado. De forma similar, puedes añadir código AVR-C directamente en tus programas Arduino si quieres.
Código abierto y hardware extensible: El Arduino está basado en microcontroladores ATMEGA8 y ATMEGA168 de Atmel. Los planos para los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores experimentados de circuitos pueden hacer su propia versión del módulo, extendiéndolo y mejorándolo. Incluso usuarios relativamente inexpertos pueden construir la versión de la placa del módulo para entender como funciona y ahorrar dinero.

Características Generales 
Antes de pasar a la acción y describir una a una las placas de Arduino y sus compatibles correspondientes, me gustaría escribir sobre una serie de datos importantes que condicionan la elección de la placa Arduino según el uso que le vayamos a dar.


Lo principal que debemos saber es que tipo de proyectos vamos a implementar. Con esto nos da una idea de lacantidad de pines analógicos y digitales (normales y de tipo PWM o modulados por ancho de pulso para simular una salida analógica) que necesitamos para nuestro trabajo. Este primer escrutinio nos permite descartar algunas placas más simples que no tengan suficientes pines o, al contrario, descartar las de mayor número de ellos para reducir los costes puesto que con menos pines nos conformamos.
También podemos deducir el tamaño de código que vamos a generar para nuestros sketchs. Un programa muy largo, con muchas constantes y variables demandará una cantidad mayor de memoria flash para su almacenamiento, por lo que se debe elegir una placa adecuada para no quedarnos cortos.
La RAM será la encargada de cargar los datos para su inmediato procesamiento, pero no es uno de los mayores escollos, puesto que esto solo afectaría a la velocidad de procesamiento. La RAM va ligada al microcontrolador, puesto que ambos afectan a la agilidad de procesamiento de Arduino.
En los Arduino’s oficiales podemos diferenciar entre dos tipos fundamentales de microcontroladores, los de 8 y 32 bits basados en ATmega AVR y los SMART basados en ARM de 32 bits y con un rendimiento superior, ambos creados por la compañía Atmel. En principio no debes guiarte por tu deseo de tener un chip de 32 bits, puesto que para la mayoría de proyectos que implementamos uno de 8 bits basta.
Por último, en cuanto al voltaje, no importan demasiado a nivel electrónico, excepto en algunos casos, para tener en cuenta la cantidad de tensión que la placa puede manejar para montar nuestros circuitos. Esto no supone mayor problema, puesto que una placa de Arduino podría trabajar incluso con tensiones de 220v en alterna con el uso por ejemplo de relés. Pero cuando queremos prescindir de una fuente de alimentación externa, hay que tener en cuenta que este es el voltaje que se puede manejar. Y entre otras cosas marcar el límite para no destruir la placa con sobretensiones no soportadas. Pero no confundas el voltaje al que trabaja el microcontrolador y al que funcionan los periféricos de la placa.


Placas oficiales
De entre las placas oficiales puedes encontrar multitud de modelos. Todos especialmente pensados para un fin, compatibles con los shields y módulos oficiales, así como con Arduino IDE. Vamos a intentar detallar sus principales características para poder diferenciarlos entre sí:

Arduino UNO: es la plataforma más extendida y la primera que salió al mercado, por ello nos podemos basar en esta para hacer la comparativa con el resto de placas. Todas las características de esta placa estarán implementadas en casi todas las placas restantes, a excepción de algunas que ya veremos. Se basa en un microcontrolador Atmel ATmega320 de 8 bits a 16Mhz que funciona a 5v. 32KB son correspondientes a la memoria flash (0,5KB reservados para el bootloader), 2KB de SRAM y 1KB de EEPROM. En cuanto a memoria es una de las placas más limitadas, pero no por ello resulta insuficiente para casi todos los proyectos que rondan la red. Las salidas pueden trabajar a voltajes superiores, de entre 6 y 20v pero se recomienda una tensión de trabajo de entre 7 y 12v. Contiene 14 pines digitales, 6 de ellos se pueden emplear como. En cuanto a pines analógicos se cuenta con hasta 6. Estos pines pueden trabajar con intensidades de corriente de hasta 40mA.
Arduino TRE: primera placa Arduino fabricada en Estados Unidos. Integra un procesador Texas Instrument Sitara AM335x de 1Ghz basado en ARM Cortex A8 con 512MB de DDR3L, lo que le da hasta 100 veces más rendimiento comparado con otras placas como Leonardo y Uno. Esto abre las puertas a más aplicaciones avanzadas y soporte para sistemas basados en Linux. Por un lado sigue contando con el microcontrolador Atmel ATMega32u4 de 16Mhz y 32KB de flash y 2.5KB de SRAM, junto al 1KB de EEPROM. Tiene 14 pines digitales, 7 PWM, 6 analógicos multiplexados, y su parte SBC cuenta con HDMI, USB, microSD, soporte para conector LCD, etc… Todo compatible con los escudos de Arduino y con Arduino IDE.
Arduino/Genuino 101: se trata de una placa que se conoce como Arduino 101 en América y Genuino 101 fuera de Estados Unidos. Esta nueva placa ha sido presentada en el Opening Conference at Maker Faire de Roma, y su precio se estima en unos 30$ (27€) cuando se comience a comercializar, que será a partir del primer trimestre de 2016. Genuino 101 sigue la misma filosofía de las placas oficiales de Arduino, pero llama la atención su módulo Intel Curie, un módulo de dimensiones reducidas y bajo consumo potenciados por el SoC Intel Quark de 32 bits. Se trata de un SoC que contiene un microcontrolador x86 (una oportunidad única de programar en una plataforma x86, alejandose de los ATMega y los ARM), 80KB de SRAM (24KB disponible para sketches), 384 KB de memoria flash, DSP, Bluetooth, sensores acelerometros y giroscopio, etc. Por el resto de características, como conexiones y tamaño, es igual a Arduino UNO y compatibles con sus shields.
Arduino Zero: en aspecto es similar a Arduino UNO, pero esta placa esconde sorpresas con respecto a la plataforma UNO. En vez del microcontrolador Atmel ATmega basado en arquitectura AVR de 8 bits, el Zero contiene un potente Atmel SAMD21 MCU de 48Mhz con un core ARM Cortex M0 de 32 bits. Con 256 KB de memoria flash, 32 KB de SRAM y una EEPROM de más de 16KB por emulación. El voltaje en el que opera es de 3v3/5v (7mA) y contiene 14 pines E/S digitales, de los cuales 12 son PWM y UART. En el terreno analógico se dispone de 6 entradas para un canal ADC de 12 bits y una salida analógica para DAC de 10 bits. En definitiva, esta placa va destinada para los que Arduino UNO se les quede corto y necesitan algo más de potencia de procesamiento.
Arduino Yun: se basa en el microcontrolador ATmega32u4 y en un chip Atheros AR9331 (que controla el host USB, el puerto para micro-SD y la red Ethernet/WiFi), ambos comunicados mediante un puente. El procesador Atheros soporta la distribución Linux basadas en OpenWrt llamada OpenWrt-Yun. Se trata de una placa similar a Arduino UNO pero con capacidades nativas para conexión Ethernet, WiFi, USB y micro-SD sin necesidad de agregar o comprar shields aparte. Contiene 20 pines digitales, 7 pueden ser usados en modo PWM y 12 como analógicos. El microcontrolador ATmega32u4 de 16Mhz trabaja a 5v y contiene una memoria de solo 32KB (4KB reservados al bootloader), SRAM de solo 2,5KB y 1KB de EEPROM. Como vemos, en este sentido queda corto. Sin embargo se complementa con el AR9331 a 400Mhz basado en MIPS y trabajando a 3v3. Este chip además contiene RAM DDR2 de 64MB y 16MB flash para un sistema Linux embebido.
Arduino Leonardo: es una placa basada en un microcontrolador ATmega32u4 de bajo consumo y que trabaja a 16Mhz. La memoria flash tiene una capacidad de 32KB (4KB para el bootloader) y 2.5KB de SRAM. La EEPROM es de 1KB, también muy similar a Arduino UNO en cuanto a capacidades de almacenamiento. A nivel electrónico y de voltajes es igual al UNO. Pero este microcontrolador puede manejar 20 pines digitales (7 de ellos pueden ser manejados como PWM) y 12 pines analógicos. Como vemos, contiene los mismos pines que Yun, solo que prescinde de las funcionalidades de red. El volumen ocupado por Leonardo es inferior al de UNO, puesto que carece de las inserciones de los pines y en su lugar posee perforaciones con pads de conexión en la propia placa. Además las dimensiones del conector USB de la placa es mucho menor, ya que en vez de una conexión USB emplea una mini-USB para ahorrar espacio. Por eso es idóneo para proyectos en los que se requiera ahorrar algo de espacio, pero todo al mismo precio que UNO.
Arduino Due: es una placa con un microcontorlador Ateml SAM3X8E ARM Cortex-M3 de 32 bits. Este chips que trabaja a 84Mhz (3,3v) aporta una potencia de cálculo bastante superior a los anteriores microcontroladores vistos. Por eso es idóneo para todos aquellos que necesiten de un proyecto con alta capacidad de procesamiento. Al tener un core a 32 bits permite realizar operaciones con datos de 4 bytes en un solo ciclo de reloj. Además, la memoria SRAM es de 96KB, superior al resto de placas vistas anteriormente e incorpora un controlador DMA para acceso directo a memoria que intensifica el acceso a memoria que puede hacer la CPU. Para el almacenamiento se dispone de 512KB de flash, una cantidad muy grande de memoria para cualquier código de programación. En cuanto a soporte de voltajes en intensidades es idéntica a UNO, solo que el amperaje de los pines se extiende hasta los 130-800mA (para 3v3 y 5v respectivamente). El sistema dispone de 54 pines de E/S digitales, 12 de ellos pueden ser usados como PWM. También tiene 12 analógicos, 4 UARTs (serie, frente a los dos de UNO), capacidades de conexión USB OTG, dos conexiones DAC (conversión digital a analógico), 2 TWI, un power jack, SPI y JTAG. Como vemos en cuanto a interfaz de conexionado está muy completo y permite multitud de posibilidades.
Arduino Mega: su nombre proviene del microcontrolador que lo maneja, un ATmega2560. Este chip trabaja a 16Mhz y con un voltaje de 5v. Sus capacidades son superiores al ATmega320 del Arduino UNO, aunque no tan superiores como las soluciones basadas en ARM. Este microcontrolador de 8 bits trabaja conjuntamente con una SRAM de 8KB, 4KB de EEPROM y 256KB de flash (8KB para el bootloader). Como puedes apreciar, las facultades de esta placa se asemejan al Due, pero basadas en arquitectura AVR en vez de ARM. En cuanto a características electrónicas es bastante similar a los anteriores, sobre todo al UNO. Pero como se puede apreciar a simple vista, el número de pines es parecido al Arduino Due: 54 pines digitales (15 de ellos PWM) y 16 pines analógicos. Esta placa es idónea para quien necesita más pines y potencia de la que aporta UNO, pero el rendimiento necesario no hace necesario acudir a los ARM-based.
Arduino Ethernet: si deseas un Arduino UNO pero con capacidades Ethernet tienes dos opciones, comprar un Arduino UNO y un shield Ethernet para integrarlo, o la otra opción sería adquirir un Arduino Ethernet. Esta placa es bastante similar a la UNO, incluso en el aspecto, pero tiene capacidades de red. Su microcontrolador es un ATmega328 que trabaja a 16Mhz (5v). Va acompañado de 2KB de SRAM, 1KB de EEPROM y 32KB de flash. El resto de características electrónicas son como las de UNO solo que añade capacidad para conexión Ethernet gracias a un controlador W5100 TCP/IP embebido y posibilidad de conectar tarjetas de memoria microSD. Los pines disponibles son 14 digitales (4 PWM) y 6 analógicos. Lo que hay que tener en cuenta es que Arduino reserva los pines 10-13 para ser usado para SPI, el 4 para la tarjeta SD y el 2 para el interruptor W5100.
Arduino Fio: es una placa Arduino reducida a la mínima expresión. Por su tamaño es especialmente considerado para proyectos móviles inalámbricas o para ser insertados en espacios reducidos. Funciona con un microcontrolador ATmega328P, una versión similar a la del Ethernet pero que trabaja a una frecuencia inferior, 8Mhz. Al ser tan reducida carece de ciertas comodidades, por ejemplo, para subir los sketches hay que usar un cable FTDI o una placa adicional adaptadora Sparkfun. Igualmente, las tensiones con las que se trabaja se ven mermadas hasta los 3.35-12v máximo. 14 pines digitales (6 PWM) y 8 pines analógicos serán los únicos disponibles en esta placa. Tampoco ayuda sus 2KB de SRAM, 32KB de flash y 1KB de EEPROM, todo esto limitará mucho el tamaño de los sketchs y del circuito del proyecto.
Referencias: 
http://arduino.cl/que-es-arduino/
http://comohacer.eu/analisis-comparativo-placas-arduino-oficiales-compatibles/












No hay comentarios:

Publicar un comentario