seminario de arduino

39
Seminario de Arduino Juan José Echevarría, Adolfo García

Upload: adolfo-garcia

Post on 04-Feb-2015

5.718 views

Category:

Self Improvement


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Seminario de Arduino

Seminario de Arduino

Juan José Echevarría, Adolfo García

Page 2: Seminario de Arduino

Seminario Arduino

Índice

¿Qué es Arduino? Historia Plataformas relacionadas Proyectos sobre Arduino Placas Arduino Shields Arduino Entorno Arduino Configuración Programación Ejemplo programación Ejercicios

Page 3: Seminario de Arduino

Seminario Arduino

¿Qué es Arduino?

Plataforma Electrónica

Software/Leguaje de Programación

Sistema Open Source

USO FÁCIL E INTUITIVO

www.arduino.cc

Page 4: Seminario de Arduino

Seminario Arduino

¿Para quién?

DiseñadoresAficionadosEstudiantes

Artistas

¡¡ PARA TODOS !!

Page 5: Seminario de Arduino

¿Cómo surge Arduino?

Seminario Arduino

2005 ->Instituto de Diseño Interactivo Ivrea (Italia) David Cuartielles y Massimo Banzi

Problemas existentes Limitación tecnológica

Usuario no experto Plataformas existentes ->complejas, especializadas o cerradas

Limitación económica Solución

Plataforma OpenSource ¡¡¡La comunidad Arduino tiene más de 120 mil

usuarios!!!!

Page 6: Seminario de Arduino

Evolución

Seminario Arduino

Page 7: Seminario de Arduino

Seminario Arduino

Plataformas relacionadas

Processing Entorno de desarrollo para proyectos multimedia e interactivos Diseño digital y procesado

Wiring Basado en Processing Programación uC para no expertos Arduino se basa en Wiring

Fritzing Entorno visual Creación esquemas electrónicos

Page 8: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

SECUduino -> controladora bus CAN ArduPilot -> control avión no tripulado Robótica -> robot araña controlado por voz Robótica -> control cámara pan/tilt con mando Wii Seguridad -> control de acceso mediante leds IoT -> control del estado de una planta mediante

tweets

Page 9: Seminario de Arduino

Seminario Arduino

SECUduino: controladora de bus CAN

SECUduino: controladora de bus CAN

Page 10: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

SECUduino: controladora de bus CAN

http://www.youtube.com/watch?v=_JQyTYB3ZoA

Page 11: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

ArduPilot: UAV controlado por Arduino

Page 12: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

ArduPilot

http://www.youtube.com/watch?v=IvR3QM0iTPw

Page 13: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

Robot araña controlado por voz (Arduino+Processing)

http://www.youtube.com/watch?v=wj8f9xL9_Hw

Page 14: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

Cámara con movimientos Pan/Tilt y mando Wii

http://www.youtube.com/watch?v=MD_-YnFZFP8

Page 15: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

Cerradura con combinación RGB

Page 16: Seminario de Arduino

Seminario Arduino

Proyectos con Arduino

IoT: Botanicalls

Page 17: Seminario de Arduino

Seminario Arduino

¿Por qué usar Arduino?

Sencilla Programación Rápido Prototipado Grabación mediante USB Gran extensibilidad todo tipo de sensórica y

comunicaciones. “SHIELDS”

SHIELD: Módulo extra para añadir funciones: Ethernet, Wifi, Zigbee, GPRS,…

Page 18: Seminario de Arduino

Placas: Arduino Uno

uC ATmega 328 a 16MHz Flash 32KB RAM 2KB EEPROM 1KB 5 entradas Analógicas [0-5V] 14 Pines E/S Digitales

6 PWM

Puerto serie (0,1) I2C (4,5) SPI (10, 11, 12, 13)

Seminario Arduino

Page 19: Seminario de Arduino

Seminario Arduino

Placas: Arduino Mega2560

uC ATmega 2560 a 16MHz Flash 256KB RAM 8KB EEPROM 4KB 15 entradas Analógicas [0-5V] 54 Pines E/S Digitales

14 PWM

4 Puertos series (0-1,19-18,17-16,15-14)

I2C (20,21) SPI (50,51,52,53)

Page 20: Seminario de Arduino

Seminario Arduino

Placas: Arduino Duemilanove

uC ATmega 168 a 16MHz Flash 16KB RAM 1kB EEPROM 512B 5 entradas Analógicas [0-5V] 14 Pines E/S Digitales

6 PWM

Puerto serie SPI e I2C

Page 21: Seminario de Arduino

Seminario Arduino

Placas: Arduino Fio

Orientado a aplicaciones inalámbricas Atmega328P a 8MHz 14 Entradas/Salidas digitales

6 PWM

Pines de alimentación de 3.3V Conector para baterías Conector para módulos xbee

Page 22: Seminario de Arduino

Seminario Arduino

Placas: Arduino Nano

Idénticas características que Duemilanove Alimentación a través de Mini-USB Pensado para aplicaciones embebidas

Page 23: Seminario de Arduino

Seminario Arduino

Placas: Arduino LilyPad

Diseñado para prendas textiles Pequeño y ligero 14 E/S digitales

6 PWM

Page 24: Seminario de Arduino

Seminario Arduino

Shields Arduino

Ethernet XBEE

Wifi Relés

Page 25: Seminario de Arduino

Seminario Arduino

Características entorno Arduino

Basado en C/C++

Uso librerías: programación

por objetos (C++) Serial.begin(9600);

Entorno propio de desarrollo

Uso librería familia AVR

Page 26: Seminario de Arduino

Seminario Arduino

Arduino IDE: configuración

Descargar la última publicación de la página web -> www.arduino.cc

Descomprimir fichero Conectar Arduino mediante USB

Si los drivers no se instalan automáticamente, buscar los drivers en la carpeta …/arduino-00xx/drivers

Ejecutar aplicación Seleccionar en la interfaz el puerto serie Seleccionar en la interfaz la placa Arduino en uso

Page 27: Seminario de Arduino

Seminario Arduino

Arduino IDE

Page 28: Seminario de Arduino

Seminario Arduino

Arduino IDE: interacción

Funciones principales Nuevo -> crear un programa en blanco Guardar -> guardar el programa escrito (sketch) Compilar -> comprueba errores en el código Abrir -> abrir ejemplos hechos o programas propios Descargar -> descargar el código a la plataforma Monitor serie -> recepción y envío de caracteres/cadenas

por puerto serie

Page 29: Seminario de Arduino

Seminario Arduino

Programación

Estructura: setup( )

Al inicio de un programa Inicia variables, estado de pines, librerías, ...

loop() Función principal del programa. Contiene la lógica. Ejecución infinita

Estructuras de control, operadores, tipos de datos… C/C++

Constantes propias HIGH/LOW INPUT/OUTPUT

Page 30: Seminario de Arduino

Seminario Arduino

Programación

Estructura:

Inicialización

Bucle Principal

Page 31: Seminario de Arduino

Seminario Arduino

Programación: funciones básicas Funciones E/S digitales:

pinMode(pin, modo); Inicialización digitalWrite(pin, estado); Activación de una salida Val=digitalRead(pin); Lectura de una entrada

Funciones E/S analógicas: analogWrite(pin, valor); Salida en PWM Val=analogRead(pin); Entrada de PWM val=map(val,ini,fin,ini2,fin2); Mapear valor

Funciones puerto serie: Val= Serial.read(); Recepción serie Serial.print(a)/Serial.println(a); Imprimir en pantalla Serial.write(a); Envío de un dato Serial.begin(baudios); Inicialización serie Val=Serial.available(); Número de bytes en puerto

Función espera: delay(ms) Retraso en milisegundos

Page 32: Seminario de Arduino

Seminario Arduino

Programación: periféricos Arduino Uno

Salidas/ Entradas Digitales

Entradas Analógicas

Alimentaciones

USB

Alimentación 6-9 DC

Page 33: Seminario de Arduino

Seminario Arduino

Shield desarrollada

Conexiones LDR: pin A0 Led rojo: pin 3 Led amarillo: pin 5 Led verde: pin 6 Pulsador 1: pin 4 Pulsador 2: pin 7 RFID: pin RX Jumper desconectado para grabación Jumper conectado para ejecución

No conectar el jumper

en los pines superiores

Page 34: Seminario de Arduino

Seminario Arduino

Ejemplo práctico: Semáforo Definición de variables

#define boton 4 //pin correspondiente al botón 1 #define ledRojo 3 #define ledAmbar 5 #define ledVerde 6 //pines correspondientes a los distintos leds int estadoBoton = 0; //estado actual del botón

Inicialización/Configuración pinMode(boton, INPUT); //botón como entrada pinMode(ledRojo, OUTPUT); pinMode(ledAmbar, OUTPUT); pinMode(ledVerde, OUTPUT); //leds como salidas digitalWrite(ledVerde, HIGH); //estado inicial: led verde encendido Serial.begin(9600); //iniciar puerto serie a 9600

Page 35: Seminario de Arduino

Ejemplo práctico: Semáforo

Seminario Arduino

Bucle principal estadoBoton = digitalRead(boton); //leer estado botón if (estadoBoton >0){ //si el estado es mayor que 0 (se ha pulsado) delay(6000); //espera digitalWrite(ledVerde, LOW); digitalWrite(ledAmbar, HIGH); //cambio led a ambar delay(2000); //espera digitalWrite(ledAmbar, LOW); digitalWrite(ledRojo, HIGH); //cambio led a rojo Serial.println(“Se puede cruzar”); delay(12000); //espera digitalWrite(ledRojo, LOW); digitalWrite(ledVerde, HIGH); //vuelta a led verde (estado inicial) }

Page 36: Seminario de Arduino

Seminario Arduino

Ejemplo práctico : Semáforo

Programa completo

Page 37: Seminario de Arduino

PREGUNTAS

Page 38: Seminario de Arduino

Seminario Arduino

PAUSA

Page 39: Seminario de Arduino

Seminario Arduino

Ejercicios

Desarrollar una aplicación que obtenga datos de un sensor y según el valor de dicho sensor alimente de forma proporcional un led.

Desarrollar una aplicación que obtenga datos de un sensor de luz (LDR) y active un led cuando la iluminación sea reducida.

Desarrollar una aplicación que lea 2 tarjetas RFID, de forma que al pasar una de ellas encienda los leds, y al pasar la otra los apague.