Seminario de Arduino

Post on 04-Feb-2015

5.718 views 2 download

description

 

Transcript of Seminario de Arduino

Seminario de Arduino

Juan José Echevarría, Adolfo García

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

Seminario Arduino

¿Qué es Arduino?

Plataforma Electrónica

Software/Leguaje de Programación

Sistema Open Source

USO FÁCIL E INTUITIVO

www.arduino.cc

Seminario Arduino

¿Para quién?

DiseñadoresAficionadosEstudiantes

Artistas

¡¡ PARA TODOS !!

¿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!!!!

Evolución

Seminario 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

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

Seminario Arduino

SECUduino: controladora de bus CAN

SECUduino: controladora de bus CAN

Seminario Arduino

Proyectos con Arduino

SECUduino: controladora de bus CAN

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

Seminario Arduino

Proyectos con Arduino

ArduPilot: UAV controlado por Arduino

Seminario Arduino

Proyectos con Arduino

ArduPilot

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

Seminario Arduino

Proyectos con Arduino

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

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

Seminario Arduino

Proyectos con Arduino

Cámara con movimientos Pan/Tilt y mando Wii

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

Seminario Arduino

Proyectos con Arduino

Cerradura con combinación RGB

Seminario Arduino

Proyectos con Arduino

IoT: Botanicalls

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,…

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

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)

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

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

Seminario Arduino

Placas: Arduino Nano

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

Seminario Arduino

Placas: Arduino LilyPad

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

6 PWM

Seminario Arduino

Shields Arduino

Ethernet XBEE

Wifi Relés

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

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

Seminario Arduino

Arduino IDE

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

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

Seminario Arduino

Programación

Estructura:

Inicialización

Bucle Principal

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

Seminario Arduino

Programación: periféricos Arduino Uno

Salidas/ Entradas Digitales

Entradas Analógicas

Alimentaciones

USB

Alimentación 6-9 DC

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

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

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

Seminario Arduino

Ejemplo práctico : Semáforo

Programa completo

PREGUNTAS

Seminario Arduino

PAUSA

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.