Arduino

De SpainLabs
Saltar a: navegación, buscar
logo2.png


¿Qué es Arduino?

Rafael Enríquez Herrador en Guía de Usuario de Arduino

Arduino es una plataforma de prototipado 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 gran 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 autónomos o se pueden comunicar con software en ejecución en unordenador (por ejemplo con Flash, Processing, MaxMSP, etc.).

Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software se puede descargar gratuitamente desde la Web de Arduino .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.


Por qué Arduino

Rafael Enríquez Herrador en Guía de Usuario de Arduino

Hay muchas otras plataformas 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 del 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 aficionados interesados sobre otros sistemas:


  • Precio: Las placas Arduino son relativamente baratas comparadas con otras plataformas. La versión mas económica puede encontrarse por unos 20€ si es oficial, fabricada por el equipo de Arduino, o por 8€ en caso de ser fabricada por otros. Recordemos que al estar tanto el hardware como el software disponible para cualquiera, las "copias" son o pueden ser de la misma calidad que las oficiales, quizás encontremos diferencias en la calidad de la placa y soldaduras pero la funcionalidad es la misma en ambas.


  • Multiplataforma: El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux.


  • Entorno de programación simple y claro: El entorno de programación de Arduino es fácil de usar para principiantes, pero suficientemente 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 librerías 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 ATMEGA 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.


Placas de Arduino disponibles

Hay disponible una gran variedad de placas para cubrir todas las necesidades que podamos tener. Generalmente se ha venido recomendando el Arduino Uno para iniciarse principalmente por ofrecer una relación de prestaciones/precio adecuada. Sin embargo han ido apareciendo nuevas placas para sustituir a esta ofreciendo mas prestaciones a casi el mismo precio. También hay placas mas avanzadas cuando es necesario disponer de mas memoria de almacenamiento o de programas, o hace falta mas salidas y entradas, o incluso hay placas que incluyen directamente módulos inalámbrico de bluetooth, o wifi, o de cable por ethernet. Sin embargo estas ultimas placas al ser mas especificas no suelen encontrarse con un precio económico.

Además en el caso de las primeras placas las podemos encontrar a su vez con distintos microcontroladores, por ejemplo con el Arduino Uno hay la posibilidad de encontrar los modelos mas viejos con un microcontrolador ATmega 168 aunque lo mas normal es que usen el ATmega 328. Lo mismo pasa con el Arduino Mega estando disponible con un ATmega 1280 o con el 2560. Lo único que cambia es que el microcontrolador cuenta con más memoria.

Listado de placas agrupadas por "familias":

Arduino estándar

Arduino Uno

Perfecta para iniciarse. Cuenta con 14 pines digitales y 6 analógicos para conectarle todo tipo de módulos. 

ArduinoUno_R3.png

Arduino Leonardo

Es la nueva versión que terminara sustituyendo a la anterior (Arduino Uno). Como ventaja el microcontrolador usado,
el ATmega32u4, tiene soporte nativo para USB, eso quiere decir que no es necesario un chip intermediario (y lento)
para convertir la señal USB a Serial. Además este Arduino puede funcionar como teclado, ratón, gamepad, etc.
También se puede usar para programar con el IDE de AVR sin necesidad de cargar el bootloader de Arduino.
Hay que tener cuidado al comprarlo porque hay dos versiones, con conectores o sin ellos. 

ArduinoLeonardo.png


Arduino avanzado

Arduino Mega

Es la versión avanzada del Arduino Uno. Se caracteriza principalmente porque tiene mucha más 
memoria FLASH, ROM y RAM en su microcontrolador. También tiene muchísimos más pines de entrada 
y salida digitales y analógicos. Antes no se solía recomendar salvo para proyectos grandes por
su elevado precio. Sin embargo ahora se puede encontrar la versión no oficial con el microcontrolador
ATmega 2560 con unos 13€ gi
Hay una versión especial llamada Arduino Mega ADK que es compatible con Android y tiene un USB host. 

ArduinoMega2560_R3.png

Arduino Due

Es el tope de gama actualmente. En vez de usar un microcontrolador AVR tiene un ARM por lo que 
es mucho mas potente, no solo en memoria si no en potencia de procesamiento, cuenta con varios USB,
uno para depurar y el otro para dispositivos e internamente funciona a 3.3V en vez de 5V. 

ArduinoDue.png


Arduino para incrustar

Arduino Mini

Es la versión mas barata de todas porque tiene los componentes mínimos para funcionar.
No tiene el chip USB > Serial por lo que hace falta otro arduino o un programador externo
para cargar el programa. Una vez cargado es ideal para dejarlo incrustado en algún proyecto.
Hay disponible con microcontrolador 168, 328 y a 5V o a 3.3V 

ArduinoMini_r05.png


Arduino Nano

Como el anterior salvo porque este si que tiene el chip USB > Serial y conector USB.
Pequeño pero con todo lo necesario para funcionar. 

ArduinoNano.png


Arduino Micro

Es la versión que viene a sustituir al Arduino Nano, en vez de tener un ATmega 168 o 328
tiene el mismo microcontrolador que el Arduino Leonardo y por lo tanto todas sus ventajas. 

ArduinoMicro.png


Otras versiones

Mas versiones de Arduino


Tabla comparatoria

Tabla de especificaciones de los Arduinos y otras placas de desarrollo:

tabla-arduinos.png

Placas de expansión o Shields

Casi todas las placas de Arduino cuentan con placas de expansión. Estas placas cuentan con diferentes módulos para ampliar las posibilidades del Arduino sin tener, generalmente, que soldar nada. Por lo que es muy cómodo.

Tenemos placas de expansión para añadirle una pantalla LCD, o bluetooth, WiFi, ethernet, 3G, GPS, Cámara, botones, leds, sensores, etc. prácticamente hay de todo.

Cada placa se conecta al Arduino a través de pines, además a su vez cada placa puede conectarse encima de otra placa aumentando así los pisos de placas con mas funcionalidades. Sin embargo tenemos que tener en cuenta que cada placa para funcionar necesitara unos pines determinados del Arduino y que el resto de placas, normalmente, no podrás usar los mismos pines.

Por ello es recomendable consultar este LISTado de Shields donde indican que pines usa cada placa, tienen bastantes catalogadas pero no están todas las variantes:

Arduino Shield List

ArduinoShields.png


Algunas de las shields:

Arduino_Shield_Protoboard.png Arduino_Shield_LCD.png Arduino_Shield_Ethernet.png

Protoboard LCD Ethernet


Arduino_Shield_LOL.png Arduino_Shield_Relay.png Arduino_Shield_xBee.png


Matriz de Leds Reles Comunicación inalámbrica xBee


Por dónde empezar

El Arduino se divide en dos partes, por un lado tenemos la electrónica y por el otro el software. Como mínimo deberíamos de tener una base de programación en C para entender los ejemplos que acompañan el IDE, el código que encontremos en internet y sobre todo para poder hacer proyectos grandes... el copiar y pegar al principio funciona pero si queremos hacer algo en condiciones vamos a necesitar saber programar.

Por ello para el que no controle demasiado recomiendo repasar esta documentacion para coger una base en C y la sintaxis especifica de Arduino:







Y en estos enlaces a Dropbox hay aun mucha más documentación:



También viene muy bien consultar la documentación de Arduino, tanto las caracteristicas tecnicas de la placa que tengamos, sus limitaciones, etc. La documentación es mas extensa y esta mas actualizada en la página en ingles. Lo mismo sucede con el software, la ultima versión esta siempre antes en la página en ingles.

  • Pinouts EN



  • Referencia de métodos ES / EN


  • Descarga del entorno de desarrollo de Arduino o IDE ES / EN


Cómo cargar los programas

Para poder grabar los programas que hagamos en la memoria del microcontrolador del Arduino vamos a necesitar el entorno de desarrollo o IDE del enlace de arriba.

Una vez descargado el IDE hay que descomprimir el fichero donde queramos, veremos que hay varios directorios, nos interesa el llamado drivers. En ese directorio se encuentran los controladores para que el ordenador reconozca el Arduino como un puerto serie. Lo normal es que al conectar el Arduino al PC por USB sea Windows quien instale los controladores automáticamente desde internet. Si no es el caso tendremos que ir al Administrador de dispositivos de Windows (botón derecho sobre Equipo > Administrar > Administrador de dispositivos), veremos que hay un nuevo dispositivo con un mensaje de alerta indicando que no se han podido instalar los controladores. Solo hay que pulsar clic derecho sobre el e indicarle el directorio drivers para que los instale mediante la opcion Actualizar software de controlador.

En el caso de linux vienen de serie con el SO. Y con OSX imagino que también.

El siguiente paso es abrir el IDE desde su ejecutable. Veremos que en la parte superior hay un menú llamado Herramientas, tenemos que ir a él y después a Puerto Serial para seleccionar el puerto que tenga asignado el Arduino, seguramente veamos un COM1 y alguno mas, pues sera el otro que aparezca. Después hay que ir a Herramientas > Tarjeta y seleccionar el modelo de Arduino que tengamos: Uno, Mega, Leonardo, etc.

Para terminar solo nos quedara copiar el siguiente código y ver como parpadea uno de los leds de la placa mostrándonos un mensaje en Morse :)

  Info: Morse en Arduino
  Wiki: http://es.wikipedia.org/wiki/Código_morse
  
  Vail creó un método según el cual cada letra o número era transmitido
  de forma individual con un código consistente en rayas y puntos, es decir,
  señales telegráficas que se diferencian en el tiempo de duración de la
  señal activa. La duración del punto es la mínima posible. Una raya tiene
  una duración de aproximadamente tres veces la del punto. Entre cada par
  de símbolos de una misma letra existe una ausencia de señal con duración
  aproximada a la de un punto. Entre las letras de una misma palabra, la
  ausencia es de aproximadamente tres puntos. Para la separación de palabras
  transmitidas el tiempo es de aproximadamente tres veces el de la raya.  
*/

// Pines:
#define led          13

// Tiempos:
#define corto        150
#define largo        450
#define pausaLetra   150
#define pausaPalabra 1350
#define espacio      450
#define fin          2000

// Mensaje:
char codigoMorse[] = ".--. .-.. .- - .- ..-. --- .-. -- .-   .- .-. -.. ..- .. -. ---";

void setup()
{
  pinMode(led, OUTPUT);
}

void loop()
{
  delay(fin);
  funcionMorse( codigoMorse );
  delay(fin);
}


void funcionMorse( char morse[] )
{
  int i;

  for( i=0 ; morse[i] != '\0' ; i++ )
  {
    switch(morse[i])
    {
      case '.':
        digitalWrite(led, HIGH); delay(corto);
        digitalWrite(led, LOW); delay(pausaLetra);
        break;

      case '-':
        digitalWrite(led, HIGH); delay(largo);
        digitalWrite(led, LOW); delay(pausaLetra);
        break;

      case ' ':
        if(morse[i+1] == ' ' && morse[i+2] == ' ')
        {
          delay(pausaPalabra);
          i = i+3;
        }
        else
        {
          delay(espacio);
        }
        break;
    }
  }
}

Qué más puedo hacer con él

Realmente se puede hacer todo lo que se quiera, o mas bien lo que tu imaginación de de sí. Lo mejor sin duda es empezar por proyectos tontos para hacerse a la sintaxis de Arduino y para practicar con los diferentes módulos. El IDE incorpora una serie de ejemplos que van bien para empezar, puedes acceder a ellos desde el menú Archivo > Ejemplos. Ahi puedes encontrar el ejemplo blink con el que viene precargado el Arduino al comprarlo, pero tienes muchos otros. Lo mejor es echarle un vistazo a la documentación de la web y después al código para probarlo una vez montado el circuito.

Arduino - Aprende!

Proyectos con Arduino

cubas1990:

Página web: blogduino.teidenet.es

Proyectos:

giltesa:

Página web: giltesa.com

Proyectos: Nivel básico ~ medio:

Nivel medio ~ avanzado:

Jossema106:

Página web: duinoblog

mister_mst:

Página web: urpmigeek.com

Proyectos:


thibest:

Proyectos:


xapus:

Página web: xapus.blogspot.com.es

Proyectos:


Fuente: Giltesa