arduino

11
Arduino es una plataforma de hardware libre , basada en una placa con unmicrocontrolador y un entorno de desarrollo , diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. 2 3 El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos deentrada/salida . 4 Los microcontroladores más usados son el Atmega168 , Atmega328 ,Atmega1280 , ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing /Wiring y el cargador de arranque que es ejecutado en la placa. 4 Desde octubre de 2012, Arduino se usa también con microcontroladoras CortexM3 de ARM de 32 bits, 5 que coexistirán con las más limitadas, pero también económicas AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden programar con el mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos plataformas. Eso sí, las microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayoría de las placas con AVR que generalmente usan 5V. Sin embargo ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como Adobe Flash , Processing , Max/MSP , Pure Data ). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Arduino puede tomar información del entorno a través de sus entradas analógicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador. El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digital en el Prix Ars Electrónica de 2006. 6 7 8 Índice [ocultar ] 1 Historia 2 Aplicaciones 3 Esquema de conexiones

Upload: elvis69727

Post on 27-Dec-2015

29 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Arduino

Arduino es una plataforma de hardware libre, basada en una placa con unmicrocontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.2 3

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos deentrada/salida.4 Los microcontroladores más usados son el Atmega168, Atmega328,Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranqueque es ejecutado en la placa.4

Desde octubre de 2012, Arduino se usa también con microcontroladoras CortexM3 de ARM de 32 bits,5 que coexistirán con las más limitadas, pero también económicas AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden programar con el mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos plataformas. Eso sí, las microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayoría de las placas con AVR que generalmente usan 5V. Sin embargo ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje.

Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente.

Arduino puede tomar información del entorno a través de sus entradas analógicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador.

El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digital en el Prix Ars Electrónica de 2006.6 7 8

Índice

  [ocultar] 

1 Historia

2 Aplicaciones

3 Esquema de conexiones

o 3.1 Entradas y salidas

4 Especificaciones

5 Lenguaje de programación Arduino

o 5.1 Funciones básicas y operadores

5.1.1 Sintaxis Básica

5.1.2 Estructuras de control

5.1.3 Variables

5.1.3.1 Constantes

Page 2: Arduino

5.1.3.2 Tipos de datos

5.1.3.3 Conversión entre tipos

5.1.3.4 Cualificadores y ámbito de las variables

5.1.3.5 Utilidades

5.1.4 Funciones Básicas

5.1.4.1 E/S Digital

5.1.4.2 E/S Analógica

5.1.4.3 E/S Avanzada

5.1.4.4 Tiempo

5.1.4.5 Matemáticas

5.1.4.6 Trigonometría

5.1.4.7 Números aleatorios

5.1.4.8 Bits y Bytes

5.1.4.9 Interrupciones externas

5.1.4.10 Interrupciones

5.1.4.11 Comunicación por puerto serie

5.1.5 Manipulación de puertos

o 5.2 AVR Libc

5.2.1 Interrupciones

5.2.2 Temporizadores

5.2.3 Manipulación de puertos

5.2.4 Establecer Bits en variables

o 5.3 Diferencias con Processing

5.3.1 Arreglos

5.3.2 Impresión de cadenas

o 5.4 Ejemplo sencillo de programación en Arduino

6 Bibliotecas en Arduino

o 6.1 Serial

o 6.2 EEPROM

o 6.3 Ethernet

o 6.4 Firmata

o 6.5 LiquidCrystal

o 6.6 Servo

Page 3: Arduino

o 6.7 SoftwareSerial

o 6.8 Stepper

o 6.9 Wire

o 6.10 Creación de bibliotecas

6.10.1 Ejemplo de biblioteca

7 Instalación en diferentes entornos

o 7.1 Windows

o 7.2 GNU/Linux

8 Equipo de desarrollo

9 Pduino

10 Minibloq

11 Physical Etoys

12 Véase también

13 Referencias

14 Bibliografía

15 Enlaces de externos

Historia[editar]

Arduino se inició en el año 2005 como un proyecto para estudiantes en el Instituto IVREA, en Ivrea (Italia). En ese tiempo, los estudiantes usaban el microcontrolador BASIC Stamp, cuyo coste era de 100 dólares estadounidenses, lo que se consideraba demasiado costoso para ellos. Por aquella época, uno de los fundadores de Arduino, Massimo Banzi, daba clases en Ivrea.9

El nombre del proyecto viene del nombre del Bar di Re Arduino (Bar del Rey Arduino) donde Massimo Banzi pasaba algunas horas. En su creación, contribuyó el estudiante colombiano Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y la plataforma de desarrollo.10 Una vez concluida dicha plataforma, los investigadores trabajaron para hacerlo más ligero, más económico y disponible para la comunidad de código abierto (hardware y código abierto). El instituto finalmente cerró sus puertas, así que los investigadores, entre ellos el español David Cuartielles, promovieron la idea.9 Banzi afirmaría años más tarde, que el proyecto nunca surgió como una idea de negocio, sino como una necesidad de subsistir ante el inminente cierre del Instituto de diseño Interactivo IVREA. Es decir, que al crear un producto de hardware abierto, éste no podría ser embargado.

Posteriormente, Google colaboró en el desarrollo del Kit Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con teléfonos móviles inteligentes bajo el sistema operativo Android para que el teléfono controle luces, motores y sensores conectados de Arduino.11 12

Para la producción en serie de la primera versión se tomó en cuenta que el coste no fuera mayor de 30 euros, que fuera ensamblado en una placa de color azul, debía ser Plug and Play y que trabajara con todas las plataformas informáticas tales como MacOSX,Windows y GNU/Linux. Las primeras 300 unidades se las dieron a los alumnos

Page 4: Arduino

del Instituto IVRAE, con el fin de que las probaran y empezaran a diseñar sus primeros prototipos.

En el año 2005, se incorporó al equipo el profesor Tom Igoe,10 que había trabajado en computación física, después de que se enterara del mismo a través de Internet. Él ofreció su apoyo para desarrollar el proyecto a gran escala y hacer los contactos para distribuir las tarjetas en territorio estadounidense. En la feria Maker Fair de 2011 se presentó la primera placa Arduino 32 bit para trabajar tareas más pesadas.13

Aplicaciones[editar]

El módulo Arduino ha sido usado como base en diversas aplicaciones electrónicas:

Xoscillo: Osciloscopio de código abierto.14

Equipo científico para investigaciones.15

Arduinome: Un dispositivo controlador MIDI.16

OBDuino: un económetro que usa una interfaz de diagnóstico a bordo que se halla en los

automóviles modernos.

Humane Reader: dispositivo electrónico de bajo coste con salida de señal de TV que

puede manejar una biblioteca de 5000 títulos en una tarjeta microSD.17

The Humane PC: equipo que usa un módulo Arduino para emular un computador

personal, con un monitor de televisión y un teclado para computadora.18

Ardupilot: software y hardware de aeronaves no tripuladas.

ArduinoPhone: un teléfono móvil construido sobre un módulo Arduino.19 20

Esquema de conexiones[editar]

Entradas y salidas[editar]

Poniendo de ejemplo al módulo Diecimila, éste consta de 14 entradas digitales configurables como entradas y/o salidas que operan a 5 voltios. Cada contacto puede proporcionar o recibir como máximo 40 mA. Los contactos 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los contactos 0 y 1, eso interferirá con la comunicación USB. Diecimila también tiene 6 entradas analógicas que proporcionan una resolución de 10 bits. Por defecto, aceptan de 0 hasta 5 voltios, aunque es posible cambiar el nivel más alto, utilizando el contacto Aref y algún código de bajo nivel.

Especificaciones[editar]

Las especificaciones de los distintos modelos de placas Arduino se resumen en la siguiente tabla:

ModeloMicrocont

rolador

Voltaje de

entrada

Voltaje del

sistema

Frecuencia de

Reloj

Digital I/O

Entradas

Analógicas

PWM

UART

Memoria Flas

h

Cargador

Interfaz de

Programación

Page 5: Arduino

Arduino Due

AT91SAM3X8E

5-12V

3,3V 84MHz 54* 12 12 4512Kb

DueNativa USB

Arduino Leonardo

ATmega32U4

7-12V

5V 16MHz 20* 12 7 1 32KbLeonardo

Nativa USB

Arduino Uno - R3

ATmega328

7-12V

5V 16MHz 14 6 6 1 32Kb OptibootUSB via ATMega16U2

RedBoardATmega328

7-15V

5V 16MHz 14 6 6 1 32Kb OptibootUSB via FTDI

Arduino Uno SMD (desconti

nuado)

ATmega328

7-12V

5V 16MHz 14 6 6 1 32Kb OptibootUSB via ATMega8U2

Arduino Uno

(descontinuado)

ATmega328

7-12V

5V 16MHz 14 6 6 1 32Kb OptibootUSB via ATMega8U2

Arduino Duemilan

ove (desconti

nuado)

ATmega328

7-12V

5V 16MHz 14 6 6 1 32KbAtmegaBOOT

USB via FTDI

Arduino Bluetooth (desconti

nuado)

ATmega328

1,2-5,5V

5V 16MHz 14 6 6 1 32KbAtmegaBOOT

SerialBluetooth

Arduino Pro

3.3V/8MHz

ATmega328

3,35 -12V

3,3V 8MHz 14 6 6 1 32KbAtmegaBOOT

Cabecera compatible con FTDI

Arduino Pro

5V/16MHz

ATmega328

5 - 12V

5V 16MHz 14 6 6 1 32KbAtmegaBOOT

Cabecera compatible con FTDI

Ethernet Pro

(descontinuado)

ATmega328

7-12V

5V 16MHz 14 6 6 1 32KbAtmegaBOOT

Cabecera compatible con FTDI

Page 6: Arduino

Arduino Mega

2560 R3

ATmega2560

7-12V

5V 16MHz 54 16 14 4256Kb

STK500v2

USB via ATMega16U2

Arduino Mega 2560

(descontinuado)

ATmega2560

7-12V

5V 16MHz 54 16 14 4256Kb

STK500v2

USB via ATMega8U2

Arduino Mega

(descontinuado)

ATmega1280

7-12V

5V 16MHz 54 16 14 4128Kb

STK500v2

USB via FTDI

Mega Pro 3.3V

ATmega2560

3,3-12V

3,3V 8MHz 54 16 14 4256Kb

STK500v2

Cabecera compatible con FTDI

Mega Pro 5V

ATmega2560

5-12V

5V 16MHz 54 16 14 4256Kb

STK500v2

Cabecera compatible con FTDI

Arduino Mini 04

(descontinuado)

ATmega328

7-9V 5V 16MHz 14 6 8 1 32KbAtmegaBOOT

Cabecera Serial

Arduino Mini 05

ATmega328

7-9V 5V 16MHz 14 6 8 1 32KbAtmegaBOOT

Cabecera Serial

Arduino Pro Mini 3.3V/8MH

z

ATmega328

3,35-12V

3,3V 8MHz 14 6 6 1 32KbAtmegaBOOT

Cabecera compatible con FTDI

Arduino Pro Mini

5V/16MHz

ATmega328

5 - 12V

5V 16MHz 14 6 6 1 32KbAtmegaBOOT

Cabecera compatible con FTDI

Arduino Fio

ATmega328P

3,35-12V

3,3V 8MHz 14 8 6 1 32Kb AtmegaBOOT

Cabecera compatible con

Page 7: Arduino

FTDI o Inalámbrica via XBee1

Mega Pro Mini 3.3V

ATmega2560

3,3-12V

3,3V 8MHz 54 16 14 4256Kb

STK500v2

Cabecera compatible con FTDI

Pro Micro 5V/16MHz

ATmega32U4

5-12V

5V 16MHz 12 4 5 1 32KbDiskLoader

Nativa USB

Pro Micro 3.3V/8MH

z

ATmega32U4

3,35-12V

3,3V 8MHz 12 4 5 1 32KbDiskLoader

Nativa USB

LilyPad Arduino 328 Main

Board

ATmega328

2,7-5,5V

3,3V 8MHz 14 6 6 1 32KbAtmegaBOOT

Cabecera compatible con FTDI

LilyPad Arduino Simple Board

ATmega328

2,7-5,5V

3,3V 8MHz 9 4 5 02 32KbAtmegaBOOT

Cabecera compatible con FTDI

Los modelos Arduino Diecimila, Arduino Duemilanove y Arduino Mega están basados en los microcontroladores ATmega168, ATmega328 y ATmega1280

ATmega168 ATmega328 ATmega1280

Voltaje operativo 5 V 5 V 5 V

Voltaje de entrada recomendado

7-12 V 7-12 V 7-12 V

Voltaje de entrada límite

6-20 V 6-20 V 6-20 V

Page 8: Arduino

Contactos de entrada y salida digital

14 (6 proporcionan PWM)

14 (6 proporcionan PWM)

54 (14 proporcionan PWM)

Contactos de entrada analógica

6 6 16

Intensidad de corriente

40 mA 40 mA 40 mA

Memoria Flash16KB (2KB reservados para el bootloader)

32KB (2KB reservados para el bootloader)

128KB (4KB reservados para el bootloader)

SRAM 1 KB 2 KB 8 KB

EEPROM 512 bytes 1 KB 4 KB

Frecuencia de reloj

16 MHz 16 MHz 16 MHz

Lenguaje de programación Arduino[editar]

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de programación de alto nivelProcessing. Sin embargo, es posible utilizar otros lenguajes de programación y aplicaciones populares en Arduino,21 debido a que Arduino usa la transmisión serial de datos soportada por la mayoría de los lenguajes mencionados. Para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicación fluida. Algunos ejemplos son:

3DVIA Virtools: aplicaciones interactivas y de tiempo real.

Adobe Director

BlitzMax  (con acceso restringido)

C

C++  (mediante libSerial o en Windows)

C#

Cocoa /Objective-C (para Mac OS X)

Page 9: Arduino

Flash  (mediante ActionScript)

Gambas

Isadora  (Interactividad audiovisual en tiempo real)

Instant Reality  (X3D)

Java

Liberlab  (software de medición y experimentación)

Mathematica

Matlab

MaxMSP : Entorno gráfico de programación para aplicaciones musicales, de audio y

multimedia

Minibloq : Entorno gráfico de programación, corre también en las computadoras OLPC

Perl

Php

Physical Etoys : Entorno gráfico de programación usado para proyectos de robótica

educativa

Processing

Pure Data

Python

Ruby

Scratch for Arduino (S4A): Entorno gráfico de programación, modificación del entorno para

niños Scratch, del MIT)

Squeak : Implementación libre de Smalltalk

SuperCollider : Síntesis de audio en tiempo real

VBScript

Visual Basic .NET

VVVV : Síntesis de vídeo en tiempo real