Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CURSO :
TEMA : ARDUINO
ALUMNO :
PROFESOR :
LIMA – PERU
2014
INDICE
INTRODUCCION
1. HISTORIA
2. APLICACIONES
3. ESQUEMA DE CONEXIONES
3.1 Entradas y salidas
4. ESPECIFICACIONES
5. LENGUAJE DE PROGRAMACIÓN ARDUINO
5.1 Funciones básicas y operadores
5.2 AVR Libc
5.3 Diferencias con Processing
5.4 Ejemplo sencillo de programación en Arduino
6. BIBLIOTECAS EN ARDUINO
6.1 Serial
6.2 EEPROM
6.3 Ethernet
6.4 Firmata
6.5 LiquidCrystal
6.6 Servo
6.7 SoftwareSerial
6.8 Stepper
6.9 Wire
6.10 Creación de bibliotecas
7. INSTALACIONES EN DIFERENTES ENTORNOS
BIBLIOGRAFIA
INTRODUCCION
Arduino es una herramienta para hacer que los ordenadores puedan sentir y
controlar el mundo físico a través de tu ordenador personal. Es una plataforma de
desarrollo de computación física (physical computing) de código abierto, basada
en una placa con un sencillo microcontrolador y un entorno de desarrollo para
crear software (programas) para la placa.
Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran
variedad de interruptores y sensores y controlar multitud de tipos de luces,
motores y otros actuadores físicos. Los proyecto de Arduino pueden ser
autónomos o comunicarse con un programa (software) que se ejecute en tu
ordenador. La placa puedes montarla tu mismo o comprarla ya lista para usar, y
el software de desarrollo es abierto y lo puedes descargar gratis. El lenguaje de
programación de Arduino es una implementación de Wiring, una plataforma de
computación física parecida, que a su vez se basa en Processing, un entorno de
programación multimedia.
1. DEFINICION
Arduino es una plataforma de hardware libre, basada en una placa con un
micro controlador y un entorno de desarrollo, diseñada para facilitar el uso de
la electrónica en proyectos multidisciplinares.
2. HISTORIA
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
micro controlador 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.
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. 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. 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.
3. APLICACIONES
El módulo Arduino ha sido usado como base en diversas aplicaciones
electrónicas:
Xoscillo: Osciloscopio de código abierto.
Equipo científico para investigaciones.
Arduinome: Un dispositivo controlador MIDI.
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.
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.
Ardupilot: software y hardware de aeronaves no tripuladas.
ArduinoPhone: un teléfono móvil construido sobre un módulo
Arduino
4. ESQUEMA DE CONEXIONES
4.1. Entradas y salidas
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.
5.1.3 Variables
En cuanto al tratamiento de las variables también comparte un gran
parecido con el lenguaje C.
Constantes
HIGH/LOW: representan los niveles alto y bajo de las señales de
entrada y salida. Los niveles altos son aquellos de 3 voltios o más.
INPUT/OUTPUT: entrada o salida.
false (falso): Señal que representa al cero lógico. A diferencia de
las señales HIGH/LOW, su nombre se escribe en letra minúscula.
true (verdadero): Señal cuya definición es más amplia que la
de false. Cualquier número entero diferente de cero es
"verdadero", según el álgebra de Boole, como en el caso de -200,
-1 o 1. Si es cero, es "falso".
Tipos de datos
void, boolean, char, unsigned char, byte, int, unsigned int, word,
long, unsigned long, float, double, string, array.
Utilidades
sizeof()
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)
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()
DDRD = B11111110;
5.2.1 Interrupciones
Las señales de interrupción son las siguientes:
cli(): desactiva las interrupciones globales
sei(): activa las interrupciones
5.2.2 Temporizadores
La función delay Microseconds() crea el menor retardo posible del
lenguaje Arduino que ronda los 2μs. Para retardos más 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) de
aproximadamente 62,5ns.
5.3.1 Arreglos
Arduino Processing
int bar[8]; int[] bar = new int[8];
bar[0] = 1; bar[0] = 1;
int foo[] = { 0, 1, 2 };
int foo[] = { 0, 1, 2 }; o bien
int[] foo = { 0, 1, 2 };
6. BIBLIOTEA DE ARDUINO
Las bibliotecas estándar que ofrece Arduino son las siguientes:
1.1 Serial
Lectura y escritura por el puerto serie.
6.2 EEPROM
Lectura y escritura en el almacenamiento permanente. 29
read(), write()
6.3 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 simultáneas. 30 Los comandos usados
son los siguientes:
Servidor: Server(), begin(), available(), write(), print(), println()
Cliente: Client(), connected(), connect(), write(), print(), println(),
available(), read(), flush(), stop()
6.4 Firmata
Es una biblioteca de comunicación con aplicaciones informáticas
utilizando el protocolo estándar del puerto serie. 31
6.5 LiquidCrystal
Control de LCDs con chipset Hitachi HD44780 o compatibles.32 La
biblioteca soporta los modos de 4 y 8 bits.
6.6 Servo
Biblioteca para el control de servo motores.33 A partir de la versión 0017
de Arduino la biblioteca soporta hasta 12 motores en la mayoría de las
placas Arduino y 48 en la Arduino Mega. Estos son los comandos
usados:
attach(), write(), writeMicroseconds(), read(), attached(), detach()
6.7 SoftwareSerial
Comunicación serie en contactos digitales. Por defecto Arduino incluye
comunicación sólo en los contactos 0 y 1 pero gracias a esta biblioteca
puede realizarse esta comunicación con los restantes.
6.8 Stepper
Control de motores paso a paso unipolares o bipolares.
Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4),
setSpeed(rpm), step(steps)
6.9 Wire
Envío y recepción de datos sobre una red de dispositivos o sensores
mediante Two Wire Interface (TWI/I2C).
Las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con
Arduino y sirven para manejo de matrices de diodos LED. También se
ofrece información sobre diversas bibliotecas desarrolladas por diversos
colaboradores que permiten realizar muchas tareas.
6.10 Creación de bibliotecas
Los usuarios de Arduino tienen la posibilidad de escribir sus propias
bibliotecas. Ello permite disponer de código que puede reutilizarse en
otros proyectos, mantener el código fuente principal separado de las
bibliotecas y la organización de los programas construidos es más clara.
# ifndef Morse_h
# define Morse_h
# include "WProgram.h"
class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};
# endif
Debe ser creado el archivo Morse.cpp con el código, es decir con la
implementación de los métodos declarados:
/*
Morse.cpp - Biblioteca para el envío de Código Morse.
Creado por David A. Mellis, el 2 de noviembre de 2007.
Liberado al dominio público.
*/
# 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);
delay(250);
}
Windows
Los pasos a seguir son los siguientes:
Interfaz del entorno de desarrollo Arduino en el
Sistema Operativo Windows.
Descargar las versiones más reciente de
Java Runtime Enviroment (J2RE) y del IDE
Arduino.
Instalar los controladores FTDI USB, con la
placa Arduino conectada.
Ejecutar el IDE Arduino para abrir la interfaz
y configurar el puerto USB donde está conectada la placa.
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.
MINIBLOQ
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. Tiene un
modo que 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 computadora
portátil OLPC, mediante el software Wine.
PHYSICAL ETOYS
Physical Etoys es una extensión libre y gratuita que permite que diversos
dispositivos electrónicos como Lego NXT, las placas Arduino, Sphero, Kinect,
Joystick Wiimote, entre otros, puedan ser programados fácilmente y que
interactúen entre sí gracias a su sistema de bloques.
1. http://es.wikipedia.org/wiki/Arduino#Ejemplo_de_biblioteca
2. http://www.arduino.cc/es/