seminario de arduino
DESCRIPTION
TRANSCRIPT
![Page 1: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/1.jpg)
Seminario de Arduino
Juan José Echevarría, Adolfo García
![Page 2: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/4.jpg)
Seminario Arduino
¿Para quién?
DiseñadoresAficionadosEstudiantes
Artistas
¡¡ PARA TODOS !!
![Page 5: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/5.jpg)
¿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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/6.jpg)
Evolución
Seminario Arduino
![Page 7: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/9.jpg)
Seminario Arduino
SECUduino: controladora de bus CAN
SECUduino: controladora de bus CAN
![Page 10: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/10.jpg)
Seminario Arduino
Proyectos con Arduino
SECUduino: controladora de bus CAN
http://www.youtube.com/watch?v=_JQyTYB3ZoA
![Page 11: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/11.jpg)
Seminario Arduino
Proyectos con Arduino
ArduPilot: UAV controlado por Arduino
![Page 12: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/12.jpg)
Seminario Arduino
Proyectos con Arduino
ArduPilot
http://www.youtube.com/watch?v=IvR3QM0iTPw
![Page 13: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/15.jpg)
Seminario Arduino
Proyectos con Arduino
Cerradura con combinación RGB
![Page 16: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/16.jpg)
Seminario Arduino
Proyectos con Arduino
IoT: Botanicalls
![Page 17: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/24.jpg)
Seminario Arduino
Shields Arduino
Ethernet XBEE
Wifi Relés
![Page 25: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/27.jpg)
Seminario Arduino
Arduino IDE
![Page 28: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/30.jpg)
Seminario Arduino
Programación
Estructura:
Inicialización
Bucle Principal
![Page 31: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/36.jpg)
Seminario Arduino
Ejemplo práctico : Semáforo
Programa completo
![Page 37: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/37.jpg)
PREGUNTAS
![Page 38: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/38.jpg)
Seminario Arduino
PAUSA
![Page 39: Seminario de Arduino](https://reader033.vdocuments.net/reader033/viewer/2022061300/54d1f90e4a79596d078b4591/html5/thumbnails/39.jpg)
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.