martes, 16 de agosto de 2016

¿QUÉ ES ARDUINO?










Arduino es una plataforma de código abierto basada en una placa con un micro controlador y un entorno de desarrollo. Se desarrolló con la idea de facilitar la creación de todo tipo de proyectos de electrónica y hacerlo accesible a los no profesionales.

Simplificando podríamos decir que un Arduino es un pequeño ordenador cuyas funciones principales son:

Recoger en el microcontrolador la información de los periféricos.

Procesar esos datos de acuerdo a nuestras instrucciones.

Llevar información a los periféricos encargados de usar los datos.

De entre todas las plataformas de hardware libre, hemos elegido Arduino porque ofrece ciertas ventajas para estudiantes, profesores y aficionados:
Es barata.

Es multiplataforma: el software de Arduino se puede ejecutar desde sistemas operativos Windows, Linux y Macintosh OSX.

Es fácil de usar y de programar.

El software y el hardware son de código abierto y ampliable.

Tiene una comunidad de usuarios inmensa.

Es compatible con muchísimos periféricos de todo tipo.

Tiene infinidad de aplicaciones.



Hardware de ARDUINO...

1 Definición


Es una placa hardware libre que incorpora un microcontrolador reprogramable y una serie de pines-hembra que permiten conectar allí de forma muy sencilla y cómoda diferentes sensores y actuadores.

Cuando hablamos de "placa hardware” nos estamos refiriendo en concreto a una PCB (del inglés "printed circuit board”, o sea, placa de circuito impreso). Las PCBs son superficies fabricadas de un material no conductor (normalmente resinas de fibra de vidrio reforzada, cerámica o plástico) sobre las cuales aparecen laminadas ("pegadas”) pistas de material conductor (normalmente cobre).


No obstante, cuando hablamos de "placa Arduino”, deberíamos especificar el modelo concreto, ya que existen varias placas Arduino oficiales, cada una con diferentes características (como el tamaño físico, el número de pines-hembra ofrecidos, el modelo de microcontrolador incorporado -y como consecuencia, entre otras cosas, la cantidad de memoria utilizable-, etc.).


Los microcontroladores incorporados en las diferentes placas Arduino pertenecen todos a la misma "familia tecnológica”, por lo que su funcionamiento en realidad es bastante parecido entre sí. En concreto, todos los microcontroladores son de tipo AVR, una arquitectura de microcontroladores desarrollada y fabricada por la marca Atmel (http://www.atmel.com)

Los proyectos Arduino pueden ser autónomos o no. En el primer caso, una vez programado su microcontrolador, la placa no necesita estar conectada a ningún computador y puede funcionar autónomamente si dispone de alguna fuente de alimentación.

Tanto el entorno de desarrollo como el lenguaje de programación Arduino están inspirado en otro entorno y lenguaje libre preexistente: Processing (http://www.processing.org), desarrollado inicialmente por Ben Fry y Casey Reas.

Con Arduino se pueden realizar multitud de proyectos de rango muy variado: desde robótica hasta domótica, pasando por monitorización de sensores ambientales, sistemas de navegación, telemática, etc. Realmente, las posibilidades de esta plataforma para el desarrollo de productos electrónicos son prácticamente infinitas y tan solo están limitadas por nuestra imaginación.
Hardware de ARDUINO...


2 ¿Qué es un sistema electrónico?


Un sistema electrónico es un conjunto de: sensores, circuitería de procesamiento y control, actuadores y fuente de alimentación.


Los sensores obtienen información del mundo físico externo y la transforman en una señal eléctrica que puede ser manipulada por la circuitería interna de control. Existen sensores de todo tipo: de temperatura, de humedad, de movimiento, de sonido (micrófonos), etc.

Los circuitos internos de un sistema electrónico procesan la señal eléctrica convenientemente. La manipulación de dicha señal dependerá tanto del diseño de los diferentes componentes hardware del sistema, como del conjunto lógico de instrucciones

Los actuadores transforman la señal eléctrica acabada de procesar por la circuitería interna en energía que actúa directamente sobre el mundo físico externo.Ejemplo




¿Qué es un microcontrolador?


Un microcontrolador es un circuito integrado o "chip” (es decir, un dispositivo electrónico que integra en un solo encapsulado un gran número de componentes) que tiene la característica de ser programable. Es decir, que es capaz de ejecutar de forma autónoma una serie de instrucciones previamente definidas

Por definición, un microcontrolador (también llamado comúnmente "micro”) ha de incluir en su interior tres elementos básicos:

PU (Unidad Central de Proceso): es la parte encargada de ejecutar cada instrucción y de controlar que dicha ejecución se realice correctamente. Normalmente, estas instrucciones hacen uso de datos disponibles previamente

Diferentes tipos de memorias: son en general las encargadas de alojar tanto las instrucciones como los diferentes datos que estas necesitan. De esta manera posibilitan que toda esta información (instrucciones y datos) esté siempre disponible para que la CPU pueda acceder y trabajar con ella en cualquier momento.




Generalmente encontraremos dos tipos de memorias: las que su contenido se almacena de forma permanente incluso tras cortes de alimentación eléctrica (llamadas "persistentes”), y las que su contenido se pierde al dejar de recibir alimentación (llamadas "volátiles”).

Diferentes patillas de E/S (entrada/salida): son las encargadas de comunicar el microcontrolador con el exterior.



Es decir, un microcontrolador es un computador completo (aunque con prestaciones limitadas) en un solo chip, el cual está especializado en ejecutar constantemente un conjunto de instrucciones predefinidas. 

Hardware de ARDUINO...



4 ¿Qué es Open Source?


Según la Free Software Foundation (http://www.fsf.org), organización encargada de fomentar el uso y desarrollo del software libre a nivel mundial, un software para ser considerado libre ha de ofrecer a cualquier persona u organización cuatro libertades básicas e imprescindibles: 

Libertad 0: la libertad de usar el programa con cualquier propósito y en cualquier sistema informático. 

Libertad 1: la libertad de estudiar cómo funciona internamente el programa, y adaptarlo a las necesidades particulares. El acceso al código fuente es un requisito previo para esto. 

Libertad 2: la libertad de distribuir copias.

Libertad 3: la libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. El acceso al código fuente es un requisito previo para esto.

Así pues, el software libre es aquel software que da a los usuarios la libertad de poder ejecutarlo, copiarlo y distribuirlo (a cualquiera y a cualquier lugar), estudiarlo, cambiarlo y mejorarlo, sin tener que pedir ni pagar permisos al desarrollador original




Para que un programa sea considerado libre a efectos legales ha de someterse a algún tipo de licencia de distribución, entre las cuales se encuentran la licencia GPL (General Public License), o la LGPL, entre otras. El tema de las diferentes licencias es un poco complicado: hay muchas y con muchas cláusulas. Para saber más sobre este tema, se puede consultarhttp://www.opensource.org/licenses/category

El software Arduino es software libre porque se publica con una combinación de la licencia GPL y la licencia LGPL

La consecuencia de esto es, en pocas palabras, que cualquier persona que quiera (y sepa), puede formar parte del desarrollo del software Arduino y contribuir así a mejorar dicho software, aportando nuevas características, sugiriendo ideas de nuevas funcionalidades, compartiendo soluciones a posibles errores existentes, etc.
¿Hardware Libre?


El hardware libre (también llamado "open-source” o "de fuente abierta”) comparte muchos de los principios y metodologías del software libre.






En particular, el hardware libre permite que la gente pueda estudiarlo para entender su funcionamiento, modificarlo, reutilizarlo, mejorarlo y compartir dichos cambios. Para conseguir esto, la comunidad ha de poder tener acceso a los ficheros esquemáticos del diseño del hardware en cuestión (que son ficheros de tipo CAD).



La placa Arduino es hardware libre porque sus ficheros esquemáticos están disponibles para descargar de la página web del proyecto con la licencia Creative

Commons Attribution Share-Alike (http://es.creativecommons.org/licencia), la cual es una licencia libre que permite realizar trabajos derivados tanto personales como comerciales (siempre que estos den crédito a Arduino y publiquen sus diseños bajo la misma licencia).



A diferencia del mundo del software libre, donde el ecosistema de licencias libres es muy rico y variado, en el ámbito del hardware todavía no existen prácticamente licencias específicamente de hardware libre, ya que el concepto de "hardware libre” es relativamente nuevo. 

Ejemplo.








Razones para usar Arduino
10 Razones para usar Arduino


10.- Open Source


Arduino es una plataforma de código y hardware abierto, es decir, puedes acceder a todo aspecto del funcionamiento circuital y algorítmico de las placas, y mucho mejor que eso, te dan todos los archivos Eagle, diagramas y componentes para que tu mismo crees tu versión de Arduino. Por razones de mercadeo, y licencias propias de la organización Open Source Initiative (ISO) esta prohibido usar el nombre de la empresa Arduino para las placas independientes, por eso es importante separar las tarjetas de otras empresas o clones (FreeDuino, Protoduino, Crowdino) de falsificaciones ilegales que tienen el nombre de la empresa.
9.- Fácil de programar


Hay quienes dicen que para programar Arduino, no es necesario saber nada de electrónica, y en parte es cierto por que Arduino te ofrece un entorno de desarrollo integrado (IDE) con funciones preestablecidas que reducen la lógica a lectura de entradas, control de tiempos y salidas de una manera semántica e intuitiva. Por eso lo convierte en una herramienta perfecta para los que quieran iniciarse en el mundo de la electrónica y luego, probar cosas mas difíciles.

Arduino tiene la ventaja que no necesita ningun tipo de tarjeta de programación como pasa con los microcontroladores sino que la misma placa se conecta vía serial a la computadora usando un cable USB y se pueden cargar los programas totalmente en vivo, sin riesgo de dañar la tarjeta debido a su protección adicional.

El código es sumamente amigable y posee su propio lenguaje de alto nivel llamado Processing. Cosa que no limita a que Arduino pueda programarse en cualquier tipo de lenguaje, un ejemplo del código se muestra a continuación:

[code lang=”arduino” light=”true”]
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
[/code]
8.- Documentación y tutoriales en exceso


Si algo tiene Arduino es que Internet esta plagado literalmente de documentación sobre esta plataforma, así que decir que no se encuentran tutoriales para aprender no es una excusa válida para este caso. Desde la misma página de la empresa, el IDE que también viene con multitud de ejemplos y los incontables tutoriales en Youtube y la red sobre esta plataforma la hacen una de las más fáciles de desarrollar.



7.- Librerías

Una de las ventajas mas grandes que tiene Arduino es que poseen librerías para prácticamente cualquier componente externo que se le quiera acoplar (hablaremos de esto en la siguiente sección de Shields y complementos) haciendo innecesario aprenderse el datasheet del componente y desarrollar el software necesario para adquirir los valores de un sensor de temperatura digital por ejemplo, estamos 99.9% seguros que ya existe una librería con funciones predefinidas para el uso óptimos de los periféricos, si bien es super necesario saber como funcionan por cuestiones de ingeniería y resolución de problemas, el no reinventar la rueda es esencial.

Varias librerías con las que cuenta Arduino:
EEPROM: librería con funciones de escritura y lectura de la memoria EEPROM del dispositivo
Ethernet: librería para el uso de este protocolo en presencia del Shield Arduino Ethernet.
GSM: librería para la transmisión/recepción y procesamiento de GSM.
Servo: librería exclusiva para el uso de servo motores, muy útil en robótica.
Wi-fi: librería para el uso del shield de Wifi.

6.- Diferentes placas.

Si en algo se diferencia Arduino de otras plataformas de desarrollo, es la multitud de placas con distintas prestaciones que ofrecen al mercado. Dependiendo de las necesidades del desarrollador se optarán por placas diferentes que poseen atributos variables de memoria, capacidad, cantidad de puertos I/O, microcontrolador entre otros. A continuación les presentamos algunas de estas placas:
Arduino Uno R3: La placa básica que ofrece Arduino. Esta basada en un microcontrolador ATmega328. Posee 14 I/O digitales (6 de ellos soportan PWM), 6 entradas analogicas, coenxión USB y opera a 5 V.
Arduino DUE: Arduino DUE se presenta como una de las placas mas robustas al ser la primera con un microcontrolador basado en un núcleo ARM de 32-bit. Posee 54 entradas/salidas digitales (12 PWM), 12 entradas analógicas, 4 UARTS, 2 DAC, y sólo funciona con alimentación de 3.3V Lo cual la hace suceptible a voltajes de 5V (Pueden dañar la placa).
Arduino YÚN: Sin duda una de las mas interesantes y personalmente mi próxima adquisición. Su atractivo recae en su doble procesador, de parte de Arduino un ATmega32u4 y un Atheros AR9331 que soporta distribuciones Linux basads en OpenWRT. La placa provee de soporte Ethernet, Wifi, USB y Micro SD, 20 I/O terminales digitales (7 PWM) 12 entradas analógicas.
Arduino MEGA ADK: Esta es la placa que yo adquirí de primero, super robusta, basada en un microcontrolador ATmega2560 con una interfaz USB que permite conectar cn telefonos Android directamente. Posee 54 pines digitales (15 se pueden utilizar para PWM), 16 entradas Analógicas y 4 UARTS.
Arduino NANO y Mini: estas placa estan pensadas para una coenxión fácil de prototipado y para proyectos de robótica que requieran muy poco espacio, tienen el mismo procesador que la placa UNO pero viene super compacto con muchos menos puertos.
5.- Shields y periféricos:


Arduino también ofrece una gran gama de Shields o placas extras que cumplen funcionalidades especificas como Ethernet, GSM, Control de Reles, Wi-fi y pueden ser acopladas a las tarjetas de forma sencilla, aumentando considerablemente el rango de aplicaciones disponibles. Para completar la faena Arduino también es compatible con infinidad de periféricos de otras marcas como Xbee, Teclados, LCD, sensores digitales, dispositivos de Sparkfun, serial, 1-Wire, SD-Card entre muchos otros.


4.- Precio

El precio es uno de los elementos mas atractivos de Arduino, desde placas en 21$ hasta placas de 71$ como el Arduino Yún, mucho menos de lo que habría que invertir en desarrollo de Raspberry Pi y Microcontroladores de Microchip. Sin embargo, resulta aún mas económico hacer nuestro propio Arduino en casa.

3.- Infinidad de aplicaciones.


Gracias a su versatilidad, Arduino se ha convertido en la placa de desarrollo con la que prácticamente se puede hacer de todo, desde domotizar tu hogar u oficina, aplicaciones en robótica como cerebro de un robot has ser utilizado como nodos de tecnologías WSN (Redes de sensores inalambricos). Entre sus aplicaciones mas conocidas están:
Control y monitoreo de sensores.
Efectos con leds.
Transponders (Transmisores/receptores)
Educación.
Monitoreo ambiental.
Biomedicina.
Telemedicina.
Domótica.
Robótica.


2.- Es cool

Qué mas podriamos pedir, es fácil, se programa rápido, permite combinar perifericos de todo tipo, es barato, y aparte es atractivo visualmente, sino me creen solo vean como es la caja donde viene el Arduino Uno:


1.- Aumenta tus habilidades en la electrónica.


Una de las razones por las que recomiendo Arduino, además de las descritas anteriormente, es que la curva de aprendizaje permite que el alumno aumente sus habilidades en electrónica y programación rápida y de manera divertida, siendo una herramienta didáctica que muchas universidades, y hasta colegios deberían considerar.

No hay comentarios:

Publicar un comentario