16
 Arduino 1 Arduino Placa Arduino RS232 [1] Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador 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 de entrada/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 ( boot loader ) que corre en la placa. [4] Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia 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. Al ser open-hardware, tanto su diseño como su distribución es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia. El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digital en el Prix Ars Electronica de 2006. [5][6][7] Esquema de pines Entradas y salidas Consta de 14 entradas digitales configurables entrada i/o salidas que operan a 5 voltios. Cada pin puede proporcionar o recibir como máximo 40 mA. Los pines 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los pines 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 miden de 0 voltios (masa) hasta 5 voltios, aunque es posible cambiar el nivel más alto, utilizando el pin Aref y algún código de bajo nivel. Especificaciones Los microcontroladores Arduino Diecimila, Arduino Duemilanove y Arduino Mega están basados en Atmega168, Atmega 328 y Atmega1280

arduinobasi

Embed Size (px)

Citation preview

Page 1: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 1/16

Arduino 1

Arduino

Placa Arduino RS232[1]

Arduino es una plataforma de hardware

libre, basada en una placa con un

microcontrolador 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 de

entrada/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 softwareconsiste en un entorno de desarrollo que

implementa el lenguaje de programación

Processing/Wiring y el cargador de arranque (boot loader ) que corre en la placa.[4]

Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software del

ordenador (por ejemplo: Macromedia 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.

Al ser open-hardware, tanto su diseño como su distribución es libre. Es decir, puede utilizarse libremente para el

desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.

El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digital en el Prix ArsElectronica de 2006.[5][6][7]

Esquema de pines

Entradas y salidas

Consta de 14 entradas digitales configurables entrada i/o salidas que operan a 5 voltios. Cada pin puede proporcionar

o recibir como máximo 40 mA. Los pines 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width

Modulation). Si se conecta cualquier cosa a los pines 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 miden de 0 voltios

(masa) hasta 5 voltios, aunque es posible cambiar el nivel más alto, utilizando el pin Aref y algún código de bajo

nivel.

Especificaciones

Los microcontroladores Arduino Diecimila, Arduino Duemilanove y Arduino Mega están basados en Atmega168,

Atmega 328 y Atmega1280

Page 2: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 2/16

Arduino 2

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

Pines de entrada y salida

digital

14 (6 proporcionan PWM) 14 (6 proporcionan PWM) 54 (14 proporcionan PWM)

Pines de entrada analógica 6 6 16

Intensidad de corriente 40 mA 40 mA 40 mA

Memoria Flash 16KB (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

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el popular lenguaje de

programación de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programación y

aplicaciones populares en Arduino.[8] Algunos ejemplos son:

•• Java

• Flash (mediante ActionScript)

•• Processing

•• Pure Data• MaxMSP (entorno gráfico de programación para aplicaciones musicales, de audio y multimedia)

• VVVV (síntesis de vídeo en tiempo real)

•• Adobe Director

•• Python

•• Ruby

•• C

• C++ (mediante libSerial o en Windows)

•• C#

• Cocoa/Objective-C (para Mac OS X)

• Linux TTY (terminales de Linux)• 3DVIA Virtools (aplicaciones interactivas y de tiempo real)

• SuperCollider (síntesis de audio en tiempo real)

• Instant Reality (X3D)

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

• BlitzMax (con acceso restringido)

• Squeak (implementación libre de Smalltalk)

•• Mathematica

•• Matlab

• Minibloq (Entorno gráfico de programación, corre también en OLPC)

• Isadora (Interactividad audiovisual en tiempo real)

•• Perl

Page 3: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 3/16

Arduino 3

•• Visual Basic .NET

•• VBScript

•• Gambas

Esto es posible debido a que Arduino se comunica mediante la transmisión de datos en formato serie que es algo que

la mayoría de los lenguajes anteriormente citados soportan. 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 permitiruna comunicación fluida. Es bastante interesante tener la posibilidad de interactuar Arduino mediante esta gran

variedad de sistemas y lenguajes puesto que dependiendo de cuales sean las necesidades del problema que vamos a

resolver podremos aprovecharnos de la gran compatibilidad de comunicación que ofrece.

Funciones básicas y operadores

Arduino esta basado en C y soporta todas las funciones del estándar C y algunas de C++. [9] A continuación se

muestra un resumen con todas la estructura del lenguaje Arduino:

Sintaxis Básica

•• Delimitadores: ;, {}•• Comentarios: //, /* */ 

•• Cabeceras: #define, #include

•• Operadores aritméticos: +, -, *, /, %

•• Asignación: =

• Operadores de comparación: ==, !=, <, >, <=, >=

• Operadores Booleanos: &&, ||, !

• Operadores de acceso a punteros: *, &

• Operadores de bits: &, |, ,̂ ~, <<, >>

•• Operadores compuestos:

•• Incremento/decremento de variables: ++, --

• Asignación y operación: +=, -=, *=, /=, &=, |=

Estructuras de control

•• Condicionales: if, if...else, switch case

•• Bucles: for, while, do... while

•• Bifurcaciones y saltos: break, continue, return, goto

Variables

En cuanto al tratamiento de las variables también comparte un gran parecido con el lenguaje C.

Constantes

•• HIGH / LOW: niveles alto y bajo en pines. Los niveles altos son aquellos de 3 voltios o más.

•• INPUT / OUTPUT: entrada o salida

•• true / false

Page 4: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 4/16

Arduino 4

Tipos de datos

•• void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double, string, array

Conversión entre tipos

Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una variable convertida en el

tipo deseado.•• char(), byte(), int(), word(), long(), float()

Cualificadores y ámbito de las variables

•• static, volatile, const

Utilidades

•• sizeof()

Funciones Básicas

En cuanto a las funciones básicas del lenguaje nos encontramos con las siguientes:

E/S Digital

•• pinMode(pin, modo)

•• digitalWrite(pin, valor)

•• int digitalRead(pin)

E/S Analógica

•• analogReference(tipo)

•• int analogRead(pin)

•• analogWrite(pin, valor)

E/S Avanzada

•• shiftOut(dataPin, clockPin, bitOrder, valor)

•• unsigned long pulseIn(pin, valor)

Tiempo

•• unsigned long millis()

•• unsigned long micros()

•• delay(ms)

•• delayMicroseconds(microsegundos)

Matemáticas

•• min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh), pow(base,

exponente), sqrt(x)

Page 5: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 5/16

Arduino 5

Trigonometría

•• sin(rad), cos(rad), tan(rad)

Números aleatorios

•• randomSeed(semilla), long random(máx), long random(mín, máx)

Bits y Bytes

•• lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()

Interrupciones externas

•• attachInterrupt(interrupción, función, modo)

•• detachInterrupt(interrupción)

Interrupciones

•• interrupts(), noInterrupts()

Comunicación por puerto serie

Las funciones de manejo del puerto serie deben ir precedidas de "Serial." aunque no necesitan ninguna declaración

en la cabecera del programa. Por esto se consideran funciones base del lenguaje.[10]

•• begin(), available(), read(), flush(), print(), println(), write()

Manipulación de puertos

Los registros de puertos permiten la manipulación a mas bajo nivel y de forma mas rápida de los pines de E/S del

microcontrolador de las placas Arduino.[11] Los pines de las placas Arduino están repartidos entre los registros

B(0-7), C (analógicos) y D(8-13). Mediante las siguientes variables podemos ver y modificar su estado:

•• DDR[B/C/D]: Data Direction Register (o dirección del registro de datos) del puerto B, C ó D. Sirve para

especificar que pines queremos usar como de entrada y cuales de salida. Variable de Lectura/Escritura.

•• PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C ó D. Variable de Lectura/Escritura.

•• PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del puerto B, C ó D. Variable de sólo lectura.

Por ejemplo, para especificar que queremos utilizar los pines 1 a 7 como salidas y el 0 como entrada, bastaría utilizar

la siguiente asignación:

DDRD = B11111110;

Como se ha podido comprobar, si conocemos el lenguaje C, no tendremos dificultades para programar en Arduino

puesto que se parecen enormemente. Tan sólo debemos aprender algunas funciones específicas de que dispone ellenguaje para manejar los diferentes parámetros de Arduino. Se pueden construir aplicaciones de cierta complejidad

sin necesidad de muchos conceptos previos.

Page 6: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 6/16

Arduino 6

A.V.R. Libc

Los programas compilados con Arduino se enlazan contra AVR Libc[9] por lo que tienen acceso a algunas de sus

funciones. AVR Libc es un proyecto de software libre con el objetivo de proporcionar una biblioteca C de alta

calidad para utilizarse con el compilador GCC sobre microcontroladores Atmel AVR. Se compone de 3 partes:

•• avr-binutils

•• avr-gcc•• avr-libc

La mayoría del lenguaje de programación Arduino está escrita con constantes y funciones de AVR y ciertas

funcionalidades sólo se pueden obtener haciendo uso de AVR.[12]

Interrupciones

Para desactivar las interrupciones:

cli(); // desactiva las interrupciones globales

Para activarlas:

sei(); // activa las interrupciones

Esto afectará al temporizador y a la comunicación serie. La función delayMicroseconds() desactiva las

interrupciones cuando se ejecuta.

Temporizadores

La función delayMicroseconds() crea el menor retardo posible del lenguaje Arduino que ronda los 2μs.

Para retardos mas pequeños se debe utilizar la llamada de ensamblador 'nop' (no operación). Cada sentencia 'nop' se

ejecutará en un ciclo de máquina (16 Mhz): unos 62.5ns. Se haría de la siguiente manera:

__asm__("nop\n\t");

Manipulación de puertos

La manipulación de puertos con código AVR es mas rápida que utilizar la función digitalWrite() de Arduino.

Establecer Bits en variables

cbi y sbi son mecanismos estándar (AVR) para establecer o limpiar bits en PORT y otras variables.

Será necesario utilizar las siguientes cabeceras para poder utilizarlos:

# ifndef cbi

# define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))# endif

# ifndef sbi

# define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))

# endif

Para utilizarlas hay que pasarles como argumento la variable PORT y un pin para establecerlo o limpiarlo.

Gracias a estos pequeños hacks tendremos la posibilidad de mejorar los tiempos de ejecución de ciertas tareas

críticas o de aquellas que se repitan muchas veces obteniendo mejores resultados. No obstante el código fuente que

escribamos resultará probablemente menos legible si los utilizamos por lo que habrá que sopesarlo en función de

nuestras necesidades.

Page 7: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 7/16

Arduino 7

Diferencias con Processing

La sintaxis del lenguaje de programación Arduino es una versión simplificada de C/C++ y tiene algunas diferencias

respecto de Processing.[13][14] Ya desde el punto de que Arduino esta basado en C/C++ mientras que Processing se

basa en Java. En cuanto a la sintaxis de ambos lenguajes y el modo en que se programan existen también varias

diferencias:

•• Arrays

Arduino Processing

int bar[8];

bar[0] = 1;

int[] bar = new

int[8];

bar[0] = 1;

int foo[] = { 0, 1, 2 }; int foo[] = { 0, 1, 2 };

o bien

int[] foo = { 0, 1, 2 };

•• Bucles

Arduino Processing

int i;

for (i = 0; i < 5; i++) {... }

for (int i = 0; i < 5; i++) {... }

•• Impresión de cadenas

Arduino Processing

Serial.println("hello world"); println("hello world");

int i = 5;

Serial.println(i);

int i = 5;

println(i);

int i = 5;

Serial.print("i = ");

Serial.print(i);

Serial.println();

int i = 5;

println("i = " + i);

Las diferencias son escasas por lo que alguien que conozca bien Processing tendrá muy pocos problemas a la hora de

programar en Arduino.

Primer contacto: Hola Mundo en Arduino

El primer paso antes de comprobar que la instalación es correcta y empezar a trabajar con Arduino es abrir algunos

ejemplos prácticos que vienen disponibles con el dispositivo. Es recomendable abrir el ejemplo “led_blink” queencontraremos en el menú File, Sketchbook, Examples, led_blink. Este código crea una intermitencia por segundo en

un led conectado en el pin 13. Es cuestión de comprobar que el código es correcto, para eso, presionamos el botón

que es un triángulo (en forma de "play") y seguidamente haremos un "upload" (que es la flecha hacia la derecha)

para cargar el programa a la placa. Si el led empieza a parpadear, todo estará correcto.

Veamos el código necesario para conseguirlo:

# define LED_PIN 13

void setup () {

 // Activamos el pin 13 para salida digital

pinMode (LED_PIN, OUTPUT);}

Page 8: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 8/16

Arduino 8

// Bucle infinito

void loop () {

 // Encendemos el led enviando una señal alta

digitalWrite (LED_PIN, HIGH);

 // Esperamos un segundo (1000 ms)

delay (1000);

 // Apagamos el led enviando una señal baja

digitalWrite (LED_PIN, LOW);

 // Esperamos un segundo (1000 ms)

delay (1000);

}

El orden de ejecución será: Primero se hace una llamada a la función init() que inicializa el programa, después se

ejecuta la función setup() que configura diversos parámetros, y por último se ejecuta un bucle while(1) que llama

repetidamente a la función loop. Todo ello se ejecuta dentro de main() y podría haberse indicado explícitamente (en

el caso anterior se encarga el IDE de añadir el código que se ha omitido).

Bibliotecas en Arduino

Para hacer uso de una biblioteca en Sketch (el IDE de Arduino), basta con hacer clic sobre “Import Library” en el

menú, escoger una biblioteca y se añadirá el #include correspondiente. Las bibliotecas estándar que ofrece Arduino

son las siguientes:[15]

Serial

Lectura y escritura por el puerto serie.

EEPROM

Lectura y escritura en el almacenamiento permanente.[16]

•• read(), write()

Ethernet

Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como servidor que acepta peticiones

remotas o como cliente. Se permiten hasta cuatro conexiones simultaneas.[17]

•• Servidor: Server(), begin(), available(), write(), print(), println()

•• Cliente: Client(), connected(), connect(), write(), print(), println(), available(), read(), flush(), stop()

Firmata

Comunicación con aplicaciones de ordenador utilizando el protocolo estándar del puerto serie.[18]

Page 9: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 9/16

Arduino 9

LiquidCrystal

Control de LCDs con chipset Hitachi HD44780 o compatibles.[19] La biblioteca soporta los modos de 4 y 8 bits.

Servo

Control de servo motores.[20] A partir de la versión 0017 de Arduino la biblioteca soporta hasta 12 motores en la

mayoría de placas Arduino y 48 en la Arduino Mega.

•• attach(), write(), writeMicroseconds(), read(), attached(), detach()

El manejo de la biblioteca es bastante sencillo. Mediante attach(número de pin) añadimos un servo y mediante write

podemos indicar los grados que queremos que tenga el motor (habitualmente de 0 a 180).

SoftwareSerial

Comunicación serie en pines digitales.[21] Por defecto Arduino incluye comunicación sólo en los pines 0 y 1 pero

gracias a esta biblioteca podemos realizar esta comunicación con el resto de pines.

Stepper

Control de motores paso a paso unipolares o bipolares.[22]

•• Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4), setSpeed(rpm), step(steps)

El manejo es sencillo. Basta con iniciar el motor mediante Stepper indicando los pasos que tiene y los pines a los que

esta asociado. Se indica la velocidad a la que queramos que gire en revoluciones por minuto con setSpeed(rpm) y se

indican los pasos que queremos que avance con step(pasos).

Wire

Envió y recepción de datos sobre una red de dispositivos o sensores mediante Two Wire Interface (TWI/I2C).[23]

Además las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con Arduino y sirven para manejo dematrices de leds.

También se ofrece información sobre diversas bibliotecas desarrolladas por contribuidores diversos que permiten

realizar muchas tareas.

Creación de bibliotecas

Además de las bibliotecas base, las que son compatibles y las que han aportado otras personas tenemos la posibilidad

de escribir nuestra propia biblioteca.[24] Esto es muy interesante por varias razones: permite disponer de código que

puede reutilizarse en otros proyectos de forma cómoda; nos permite mantener el código fuente principal separado de

las bibliotecas de forma que sean mantenibles de forma separada; y la organización de los programas construidos esmás clara y elegante.

Veamos un ejemplo de la creación de una biblioteca que envía código Morse:

Creamos el fichero Morse.h que incluye la definición de la clase Morse que tiene 3 funciones: un constructor

(Morse()), una función para enviar 1 punto (dot()) y una función para enviar una raya (dash()). La variable _pin

permite indicar el pin que vamos a utilizar.

/*

Morse.h - Library for flashing Morse code.

Created by David A. Mellis, November 2, 2007.

Released into the public domain.*/ 

Page 10: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 10/16

Arduino 10

# ifndef Morse_h

# define Morse_h

# include "WProgram.h"

class Morse

{

  public:

Morse(int pin);

  void dot();

  void dash();

  private:

  int _pin;

};

# endif

Además necesitaremos un fichero Morse.cpp con el código de las funciones declaradas. A continuación se muestra el

código:

/*

Morse.cpp - Library for flashing Morse code.

Created by David A. Mellis, November 2, 2007.

Released into the public domain.

*/ 

# include "WProgram.h"# include "Morse.h"

Morse::Morse(int pin)

{

pinMode(pin, OUTPUT);

_pin = pin;

}

void Morse::dot()

{

digitalWrite(_pin, HIGH);

delay(250);

digitalWrite(_pin, LOW);

delay(250);

}

void Morse::dash()

{

digitalWrite(_pin, HIGH);

delay(1000);

digitalWrite(_pin, LOW);

Page 11: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 11/16

Arduino 11

delay(250);

}

Y con esto ya podríamos utilizar la biblioteca mediante el correspondietne #include. Si quisieramos enviar un SOS

por el pin 13 bastaría con llamar a Morse(13) y ejecutar

morse.dot(); morse.dot(); morse.dot();

morse.dash(); morse.dash(); morse.dash();

morse.dot(); morse.dot(); morse.dot();

Instalación

Windows

Para la instalación de la placa Arduino en el sistema operativo Windows conviene seguir los siguientes pasos: Con la

placa desconectada:

Interfaz del entorno de desarrollo Arduino S.O. Windows.

•• Descargar e instalar el Java Runtime

Enviroment (J2RE).

•• Descargar la última versión del IDE

Arduino.

Nota: Es recomendable descomprimir el

fichero en el directorio raíz (c:\)

manteniendo la estructura original.

•• Entre todas las carpetas creadas en el

directorio Arduino conviene destacar

las siguientes:

c:\arduino-0012\hardware\bootloader:

Ésta contiene el software necesario para cargar el firmware en el chip Atmega168, para trabajar con Arduino. Sólo se

utiliza si os habéis montado vosotros mismos la placa, o en el caso que se haya estropeado el chip y hayáis comprado

uno nuevo.

c:\arduino-0012\drivers:

Page 12: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 12/16

Arduino 12

Contiene los drivers necesarios para el funcionamiento de la placa Arduino con el PC con S.O. Windows: FTDI USB

Drivers.

Instalar FTDI USB Drivers

Ahora sí, conectar la placa USB. Se abrirá automáticamente el asistente de Windows para nuevo hardware

encontrado:

1.1. Seleccionar "No por el momento" y presionar "Siguiente".

2.2. Seleccionar "Instalar desde una lista o ubicación específica (avanzado)" y presionar "Siguiente".

3. "Buscar el controlador más adecuado en estas ubicaciones" presiona "Examinar".Seleccionar la carpeta donde

hayas descomprimido el driver y presiona “Siguiente”.

Si no habido ningún problema el driver de la placa estará instalado.

Abrir el IDE Arduino

Ejecutamos el fichero Arduino.exe para abrir la interficie. Aquí configuramos el puerto USB donde tenemos

conectada la placa para empezar a trabajar.

GNU/Linux

Interfaz del entorno de desarrollo Arduino S.O. GNU/Linux.

Para instalar Arduino en un sistema

GNU/Linux necesitamos los siguientes

programas para resolver las dependencias:

•• Sun java runtime, jre.

•• avr-gcc, compilador para la familia de

microcontroladores avr de atmel.

•• avr-libc, libc del compilador avr-gcc.

Para instalarlos, podemos utilizar el gestorde paquetes o el terminal de comandos:

apt-get install sun-java5-jre gcc-avr avr-libc

En algunas distribuciones conviene desinstalar, si no es necesario, el programa "brltty". Éste se encarga de permitirel acceso al terminal para personas ciegas a través de un dispositivo especial en braille.

Page 13: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 13/16

Arduino 13

killall brltty

apt-get remove brltty

Los dos síntomas de este problema son:

• No aparece la opción /dev/tty/USB0 en el menú Tools, Serial Port.

•• Si se observa el LED Rx de la placa Arduino, éste se ilumina de 3 a 5 veces cada 5 ó 6 segundos.Por último, descargamos el framework de arduino. Lo descomprimimos en la carpeta deseada y lo ejecutamos:

./arduino

Si todo ha ido bien ya lo tendremos en funcionamiento.

Aplicaciones

Las aplicaciones que nos ofrece Arduino son múltiples, y dependerá de nuestra imaginación. Mediante sensores

podemos crear aplicaciones sencillas enfocadas a la docencia para estudiantes de electrónica, proyectos más

elaborados para la industria o incluso sistemas dirigidos simplemente al ocio. Es muy utilizado también en losentornos artísticos para crear obras más elaboradas, dada su facilidad de programación.

Equipo de desarrollo

El núcleo del equipo de desarrollo de Arduino esta formado por Massimo Banzi, David Cuartielles, Tom Igoe,

Gianluca Martino, David Mellis y Nicholas Zambetti.

Pduino

Patch Pduino.

Pduino nace de la fusión de Pure Data

y Arduino. Ambos de Open Sourcepermiten trabajar el uno del otro de una

manera gráfica e intuitiva. Cargando el

firmware de Pure Data (PD) a la placa

Arduino podemos acceder a ella

mediante el lenguaje de programación

gráfico. Se puede observar que

tenemos todo el esquema físico de la

placa, con los puertos, pines digitales y

analógicos, entradas y salidas... en una

interfaz gráfica, gracias a PD.

Page 14: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 14/16

Arduino 14

Minibloq

Minibloq screenshoot.

Minibloq + OLPC + Arduino.

Minibloq es un entorno gráfico de

programación que puede generar

código nativo de Arduino y escribirlo

directamente en la memoria flash de la

placa. No necesita por lo tanto, ni deun firmware específico en la placa

Arduino ni de conexión en tiempo de

ejecución. Tiene un modo donde

permite visualizar el código generado,

el cual también puede ser copiado y

pegado en el Arduino-IDE, para los

usuarios que intentan hacer el pasaje

de una herramienta gráfica a la

programación en sintaxis C/C++.

Minibloq es de uso libre y sus fuentes

también están disponibles

gratuitamente. Una característica

importante, es que puede correr

también en la XO (OLPC), mediante

Wine.

Referencias

[1] Placa Arduino Serial (http:/  

 /  

arduino. 

cc/ en/  Main/  ArduinoBoardSerial)

[2] « Interview with Casey Reas and Ben Fry

(http:/   /  rhizome.  org/  editorial/  2009/  sep/ 

23/  interview-with-casey-reas-and-ben-fry/ 

)».

[3] (http:/   /  wiring.  org.  co/  )

[4] « Project homepage (http:/   /  arduino.  cc)».

[5] http:/    /  www. aec. at/  en/  prix/ 

honorary2006.  asp

[6] « Ars Electronica Archiv (http:/   /  90. 146.  8.  18/  de/  archives/  prix_archive/  prix_year_cat.  asp?iProjectID=13638&  iCategoryID=12420)» (en

alemán). Consultado el 18-02-2009.

[7] « Ars Electronica Archiv / ANERKENNUNG (http:/   /  90.  146.  8.  18/  de/  archives/  prix_archive/  prix_projekt.  asp?iProjectID=13789#)» (en

alemán). Consultado el 18-02-2009.

[8] "Interfacing Arduino to other languages", Proyecto Arduino. http:/   /  www. arduino.  cc/  playground/  Main/  InterfacingWithSoftware

[9] "Language Reference (extended)", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Extended

[10] "Serial", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Serial

[11] "Manipulación de puertos", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  PortManipulation

[12] "AVR Code", Proyecto Arduino. http:/   /  www. arduino.  cc/  playground/  Main/  AVR

[13] "Arduino/Processing Language Comparison", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Comparison?from=Main.

ComparisonProcessing

[14] "Processing Reference", Proyecto Processing. http:/   /  processing.  org/  reference/ 

[15] http:/   /  arduino.  cc/  en/  Reference/  Libraries

[16] "EEPROM Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  EEPROM

[17] "Ethernet Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Ethernet

[18] "Firmata Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Firmata[19] "LiquidCrystal Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  LiquidCrystal

[20] "Servo Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Servo

Page 15: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 15/16

Arduino 15

[21] "SoftwareSerial Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  SoftwareSerial

[22] "Stepper Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Stepper

[23] "Wire Library", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Reference/  Wire

[24] "Writing a Library for Arduino", Proyecto Arduino. http:/   /  arduino.  cc/  en/  Hacking/  LibraryTutorial

Bibliografía

• Oxer, Jonathan; Blemings, Hugh (28 de diciembre de 2009). Practical Arduino: Cool Projects for Open Source

 Hardware (http:/   /  www. apress. com/  book/  view/  9781430224778) (1ª edición). Apress. pp. 500. ISBN 1430224770.

• Noble, Joshua (15 de julio de 2009). Programming Interactivity: A Designer's Guide to Processing, Arduino, and 

openFramework (http:/   /  oreilly.  com/  catalog/  9780596800581/  ) (1ª edición). O'Reilly Media. pp. 768. ISBN

0596154143.

• Banzi, Massimo (24 de marzo de 2009). Getting Started with Arduino (http:/   /  www. makershed. com/ 

ProductDetails. asp?ProductCode=9780596155513) (1ª edición). Make Books. pp. 128. ISBN 0596155514.

Enlaces de externos

• Sitio web Proyecto Arduino (http:/   /  www. arduino. cc/  ) (en inglés)• Sitio web Proyecto Arduino (http:/   /  www. arduino. cc/  es) (en español con menos contenidos)

• Algunos proyectos con arduino paso a paso (http:/   /  www. bricogeek. com) (ejemplos con videotutoriales)

• DuinOS (http:/   /  robotgroup. com. ar/  duinos/  wiki): Sistema operativo multitarea para Arduino desarrollado por

RobotGroup (http:/   /  robotgroup. com. ar)

• Recopilación de proyectos Arduino para hacer en casa (http:/   /  www. bioelectricidad.  es/  arduino/  5/  arduino/  )

(Web en castellano)

• Entorno gráfico de programación para Arduino (http:/   /  minibloq. org)

• Winkhel: cómo un proyecto Arduino puede convertirse en un producto real (http:/   /  www. winkhel. com) (en

español)

• Scada para Arduino (http:/   /  www. acimut. com/  monitoriza/  monitorizaforarduino. html)• S-Remote Control: Aplicación Android para controlar Arduino por UDP o TCP (https:/   /  play. google. com/  store/ 

apps/  details?id=com. appopulus. remotecontrol&

feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5hcHBvcHVsdXMucmVtb3RlY29udHJvbCJd)

Page 16: arduinobasi

5/17/2018 arduinobasi - slidepdf.com

http://slidepdf.com/reader/full/arduinobasi 16/16

Fuentes y contribuyentes del artículo 16

Fuentes y contribuyentes del artículoArduino  Fuente: http://es.wikipedia.org/w/index.php?oldid=55488714 Contribuyentes: 4lex, Angelo9507, Arthur 'Two Sheds' Jackson, Biasoli, Brunonar, Clunhair, DanielrocaES, Disenyo, DrDoofenshmirtz, Enrique Pichardo, Frammm, GermanX, Grillitus, Hprmedina, Interloper, JaadesA, Jkbw, Joebigwheel, Julian dasilva, Kizar, Laure f o, Leonaro, LordT, Museo8bits,Nabegando1990, Omerta-ve, Raúl Milla, Rononito, SUPUL SINAC, Sabbut, Shooke, Thomas-pluralvonglas, Wilfredor, 74 ediciones anónimas

Fuentes de imagen, Licencias y contribuyentesFile:Arduino316.jpg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Arduino316.jpg  Licencia: Creative Commons Attribution-ShareAlike 3.0 Contribuyentes: Nicholas Zambetti

Archivo:arduino windows.JPG  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Arduino_windows.JPG  Licencia: GNU General Public License Contribuyentes: Arduino developers

Archivo:arduino dani2.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Arduino_dani2.png  Licencia: GNU General Public License Contribuyentes: Arduino developers. Codesample by Hans-Christoph Steiner.

Archivo:pduino.png   Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Pduino.png  Licencia: GNU General Public License Contribuyentes: Arduino developers.

Archivo:Blink.jpg   Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Blink.jpg  Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: Julian dasilva

Archivo:P1040870.JPG  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:P1040870.JPG  Licencia: Creative Commons Attribution-Share Alike Contribuyentes: Julian dasilva

Licencia

Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/