Académique Documents
Professionnel Documents
Culture Documents
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.
El equipo de desarrollo de Arduino est formado por Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis y Nicholas Zambetti.
1.2.
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.
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++.
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
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.
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.
2.2.2.
E/S Analgico
2.2.3.
E/S Avanzado
2.2.4.
Tiempo
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
2.2.8.
lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()
Bits y Bytes
2.2.9.
Interrupciones Externas
2.2.10.
interrupts(), noInterrupts()
Interrupciones
2.2.11.
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.
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
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.
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
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),
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-
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