Vous êtes sur la page 1sur 15

Benemrita Universidad Autnoma de Puebla

Facultad de Ciencias de la Computacin Ingeniera en Ciencias de la Computacin Manual Arduino.

PRESENTADO.
QUINTANAR SANDOVAL, ALAN GIOVANNI REYES ARTIGAS, RAFAEL RIVERA ORTIZ, LUIS DAVID RODRIGUEZ SERRANO, ALEJANDRO ROMERO LOPEZ, YAIR

4/NOVIEMBRE/2013

INDICE
1. Arduino ............................................................................................................. 4 1.1. Quienes son sus creadores........................................................................ 4 1.2. Porque idea surgi ..................................................................................... 4 1.3. Porque arduino ........................................................................................... 4 2. Lenguajes de programacin de arduino ........................................................... 5 2.1. Funciones bsicas y operadores ................................................................ 6 2.1.1. Sintaxis bsica ..................................................................................... 6 2.1.2. Estructuras de control .......................................................................... 7 2.1.3. Variables .............................................................................................. 7 2.1.4. Constantes .......................................................................................... 7 2.1.5. Tipos de Datos..................................................................................... 7 2.1.6. Conversion Entre Tipos ....................................................................... 7 2.1.7. Cualificadores y mbito de las variables .............................................. 7 2.1.8. Utilidades ............................................................................................. 8 2.2. Funciones Bsicas ..................................................................................... 8 2.2.1. E/S Digital ............................................................................................... 8 2.2.2. E/S Analgico ...................................................................................... 8 2.2.3. E/S Avanzado ...................................................................................... 8 2.2.4. Tiempo ................................................................................................. 8 2.2.5. Matemticas ........................................................................................ 8 2.2.6. Trigonometra ...................................................................................... 9 2.2.7. Nmeros Aleatorios ............................................................................. 9 2.2.8. Bits y Bytes .......................................................................................... 9 2.2.9. Interrupciones Externas ....................................................................... 9

2.2.10. Interrupciones ...................................................................................... 9 2.2.11. Comunicacin por puerto serie ............................................................ 9 2.2.12. Manipulacin de Puertos ................................................................... 10 2.3. A.V.R. Libc ............................................................................................ 10 2.3.1. Interrupciones .................................................................................... 11 2.3.2. Temporizadores ................................................................................. 11 2.3.3. Manipulacin de Puertos ................................................................... 11 2.3.4. Establecer Bits En Variables ............................................................. 12 3. Biblioteca de Arduino ............................................................................... 12 3.1. Serial ..................................................................................................... 12 3.2. EEPROM .............................................................................................. 12 3.3. Ethernet ................................................................................................ 12 3.4. Firmata .................................................................................................. 13 3.5. LiquidCrystal ......................................................................................... 13 3.6. Servo..................................................................................................... 13 3.7. SoftwareSerial....................................................................................... 13 3.8. Stepper ................................................................................................. 13 3.9. Wire ...................................................................................................... 14 4. Proyect ................................................................................................... 14 5. Conclusiones ............................................................................................ 14 6. Bibliografa ..................................................Error! Bookmark not defined.

1.

Arduino

Arduino es una plataforma de electrnica abierta para la creacin de prototipos basada en software y hardware flexibles y fciles de usar. Se cre para artistas, diseadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos. Puede tomar informacin del entorno a travs de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores.

1.1.

Quienes son sus creadores

El equipo de desarrollo de Arduino est formado por Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis y Nicholas Zambetti.

1.2.

Porque idea surgi

Arduino naci como un proyecto educativo por el ao 2005 sin pensar que algunos aos ms tarde se convertira en lder del mundo DIY (Do It Yourself), Banzi dice que nunca surgi como una idea de negocio, es ms naci por una necesidad de subsistir ante el eminente cierre del Instituto de diseo Interactivo IVREA en Italia. Es decir, al crear un producto open hardware (de uso pblico) no podra ser embargado. Es ms hoy en da Arduino tiene la difcil tarea de subsistir comercialmente y continuar en continuo crecimiento, Para su creacin participaron alumnos que desarrollaban sus tesis como Hernando Barragan (Colombia) quien desarrollo la plataforma de programacin Wiring con la cual se programa el micro controlador.

1.3.

Porque Arduino

Su nombre viene del nombre del bar Bar di Re Arduino donde Massimo Banzi pasaba algunas horas, el cual a su vez viene del nombre de un antiguo rey europeo por el ao 1002.

2. Lenguajes de programacin de Arduino


La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el popular lenguaje de programacin de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programacin y aplicaciones populares en Arduino. 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) Flash (mediante ActionScript) Gambas Isadora (Interactividad audiovisual en tiempo real)* Instant Reality (X3D) Java Liberlab (software de medicin y experimentacin) Mathematica Matlab MaxMSP (entorno grfico de programacin para aplicaciones musicales, de audio y multimedia) Minibloq (Entorno grfico de programacin, corre tambin en OLPC) Perl Php Physical Etoys (Entorno grfico de programacin usado para proyectos de robtica educativa) Processing Pure Data Python Ruby

Scratch for Arduino (S4A) (entorno grfico de programacin, modificacin del entorno para nios Scratch, del MIT) Squeak (implementacin libre de Smalltalk) SuperCollider (sntesis de audio en tiempo real) VBScript Visual Basic .NET VVVV (sntesis de vdeo en tiempo real)

Esto es posible debido a que Arduino se comunica mediante la transmisin de datos en formato serie que es algo que la mayora 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 permitir una comunicacin 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 comunicacin que ofrece.

2.1.
de C++.

Funciones bsicas y operadores

Arduino est basado en C y soporta todas las funciones del estndar C y algunas

2.1.1.

Sintaxis bsica

Delimitadores: ;, {} Comentarios: //, /* */ Cabeceras: #define, #include Operadores aritmticos: +, -, *, /, % Asignacin: = Operadores de comparacin: ==, !=, <, >, <=, >= Operadores Booleanos: &&, ||, ! Operadores de acceso a punteros: *, & Operadores de bits: &, |, ^, ~, <<, >>

Operadores compuestos: Incremento/decremento de variables: ++, - Asignacin y operacin: +=, -=, *=, /=, &=, |=

2.1.2.

Estructuras de control

Condicionales: if, if...else, switch case Bucles: for, while, do... while Bifurcaciones y saltos: break, continue, return, goto

2.1.3.
el lenguaje C.

Variables

En cuanto al tratamiento de las variables tambin comparte un gran parecido con

2.1.4.
voltios o ms.

Constantes

HIGH / LOW: niveles alto y bajo en pines. Los niveles altos son aquellos de 3 INPUT / OUTPUT: entrada o salida true / false

2.1.5.

Tipos de Datos

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

2.1.6.

Conversion 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() 2.1.7. Cualificadores y mbito de las variables static, volatile, const

2.1.8.
sizeof()

Utilidades

2.2.

Funciones Bsicas
E/S Digital

2.2.1.

pinMode(pin, modo) digitalWrite(pin, valor) int digitalRead(pin)

2.2.2.

E/S Analgico

analogReference(tipo) int analogRead(pin) analogWrite(pin, valor)

2.2.3.

E/S Avanzado

shiftOut(dataPin, clockPin, bitOrder, valor) unsigned long pulseIn(pin, valor)

2.2.4.

Tiempo

unsigned long millis() unsigned long micros() delay(ms) delayMicroseconds(microsegundos)

2.2.5.
min(x, y), max(x, y), abs(x),

Matemticas

constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)

2.2.6.
sin(rad), cos(rad), tan(rad)

Trigonometra

2.2.7.

Nmeros Aleatorios

randomSeed(semilla), long random(mx), long random(mn, mx)

2.2.8.
lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()

Bits y Bytes

2.2.9.

Interrupciones Externas

attachInterrupt(interrupcin, funcin, modo) detachInterrupt(interrupcin)

2.2.10.
interrupts(), noInterrupts()

Interrupciones

2.2.11.

Comunicacin por puerto serie

Las funciones de manejo del puerto serie deben ir precedidas de "Serial." aunque no necesitan ninguna declaracin en la cabecera del programa. Por esto se consideran funciones base del lenguaje.

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

2.2.12.

Manipulacin de Puertos

Los registros de puertos permiten la manipulacin a ms bajo nivel y de forma ms rpida de los pines de E/S del microcontrolador de las placas Arduino. 12 Los pines de las placas Arduino estn repartidos entre los registros B(0-7), C (analgicos) y D(8-13). Mediante las siguientes variables podemos ver y modificar su estado: DDR[B/C/D]: Data Direction Register (o direccin 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 slo lectura.

2.3.

A.V.R. Libc

Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan contra AVR Libc 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 micro controladores Atmel AVR. Se compone de 3 partes:
avr-binutils avr-gcc avr-libc

La mayora del lenguaje de programacin Arduino est escrita con constantes y funciones de AVR y ciertas funcionalidades slo se pueden obtener haciendo uso de AVR.

2.3.1.

Interrupciones

Para desactivar las interrupciones: cli(); // desactiva las interrupciones globales Para activarlas: sei(); // activa las interrupciones Esto afectar al temporizador y a la comunicacin serie. La funcin delayMicroseconds () desactiva las interrupciones cuando se ejecuta .

2.3.2.
que ronda los 2s.

Temporizadores

La funcin delayMicroseconds() crea el menor retardo posible del lenguaje Arduino

Para retardos ms pequeos se debe utilizar la llamada de ensamblador 'nop' (no operacin). Cada sentencia 'nop' se ejecutar en un ciclo de mquina (16 Mhz): unos 62.5ns. Se hara de la siguiente manera: __asm__("nop\n\t");

2.3.3.

Manipulacin de Puertos

La manipulacin de puertos con cdigo AVR es ms rpida que utilizar la funcin digitalWrite() de Arduino.
cbi y sbi son mecanismos estndar (AVR) para establecer o limpiar bits en PORT y otras variables. Ser necesario utilizar las siguientes cabeceras para poder utilizarlos:

2.3.4.
y otras variables.

Establecer Bits En Variables

cbi y sbi son mecanismos estndar (AVR) para establecer o limpiar bits en PORT

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.

3. Biblioteca de Arduino
Para hacer uso de una biblioteca en Sketch (el IDE de Arduino), basta con hacer clic sobre Import Library en el men, escoger u na biblioteca y se aadir el #include correspondiente. Las bibliotecas estndar que ofrece Arduino son las siguientes:

3.1. 3.2.

Serial EEPROM

Lectura y escritura por el puerto serie.

Lectura y escritura en el almacenamiento permanente. read(), write()

3.3.

Ethernet

Conexin a Internet mediante Arduino Ethernet Shield. Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultneas.18 Servidor: Server(), begin(), available(), write(), print(), println() Cliente: Client(), connected(), connect(), write(), print(), println(), available(), read(), flush(), stop()

3.4.

Firmata

Comunicacin con aplicaciones de ordenador utilizando el protocolo estndar del puerto serie. Comunicacin con aplicaciones de ordenador utilizando el protocolo estndar del puerto serie. Comunicacin con aplicaciones de ordenador utilizando el protocolo estndar del puerto serie.

3.5.

LiquidCrystal

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

3.6.

Servo

Control de servos motores.21 A partir de la versin 0017 de Arduino la biblioteca soporta hasta 12 motores en la mayora 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(nmero de pin) aadimos un servo y mediante write podemos indicar los grados que queremos que tenga el motor (habitualmente de 0 a 180).

3.7.

SoftwareSerial

Comunicacin serie en pines digitales. Por defecto Arduino incluye comunicacin slo en los pines 0 y 1 pero gracias a esta biblioteca podemos realizar esta comunicacin con el resto de pines.

3.8.

Stepper
pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4),

Control de motores paso a paso unipolares o bipolares.23 Stepper(steps,

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 est 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)

3.9.

Wire

Envo y recepcin de datos sobre una red de dispositivos o sensores mediante Two Wire Interface (TWI/I2C). Adems las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con Arduino y sirven para manejo de matrices de leds. Tambin se ofrece informacin sobre diversas bibliotecas desarrolladas por contribuidores diversos que permiten realizar muchas tareas.

4. Proyect

5. Conclusiones

6. Bibliografa
Arduino. (s.f.). Arduino. Recuperado el 03 de 11 de 20134, de Arduino: http://www.arduino.cc/es/ Baeza, J. P. (2009). rua. Recuperado el 03 de Noviembre de 2013, de rua: http://rua.ua.es/dspace/bitstream/10045/11833/1/arduino.pdf Benitez, R. (s.f.). Botscience. Recuperado el 03 de 11 de 2013, de Botscience: http://botscience.wordpress.com/2012/06/05/historia-de-arduino-y-su-nacimiento/ CiDsTaR. (28 de Septiembre de 2013). rDuinostar. Recuperado el 03 de Noviembre de 2013, de rDuinostar:

http://rduinostar.com/documentacion/general/que-es-arduino/ derechoaleer. (01 de Mayo de 2011). Dalwiki. Recuperado el 03 de Noviembre de 2013, de Dalwiki: http://dalwiki.derechoaleer.org/Arduino/ DragoN. (06 de Enero de 2011). Dragonjar. Recuperado el 03 de Noviembre de 2013, de Dragonjar: http://www.dragonjar.org/documental-sobre-arduino-en-

espanol.xhtml platea. (s.f.). Recuperado el 03 de 11 de 2013, de platea:

http://platea.pntic.mec.es/~lmarti2/arduino/introardu/index.htm

sorayapa. (14 de Marzo de 2011). SORAYA PANIAGUA . Recuperado el 03 de Noviembre de 2013, de SORAYA PANIAGUA :

http://www.sorayapaniagua.com/2011/03/14/arduino-la-revolucion-silenciosa-delhardware-libre/ wikipedia. (30 de Octubre de 2013). wikipedia. Recuperado el 03 de Noviembre de 2013, de wikipedia: http://es.wikipedia.org/wiki/Arduino

Vous aimerez peut-être aussi