3. ¿Qué es Arduino?
Plataforma Electrónica
Software/Leguaje de Programación
Sistema Open Source
USO FÁCIL E INTUITIVO
www.arduino.cc
Seminario Arduino
4. ¿Para quién?
Diseñadores
Aficionados
Estudiantes
Artistas
¡¡ PARA TODOS !!
Seminario Arduino
5. ¿Cómo surge 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!!!!
Seminario Arduino
7. 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
8. 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
17. ¿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,…
Seminario Arduino
21. 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
22. Placas: Arduino Nano
Idénticas características que Duemilanove
Alimentación a través de Mini-USB
Pensado para aplicaciones embebidas
Seminario Arduino
25. 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
26. 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
28. 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
29. 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
30. Programación
Estructura:
Inicialización
Bucle Principal
Seminario Arduino
31. 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
32. Programación: periféricos Arduino Uno
Salidas/ Entradas
Digitales
USB
Alimentació
n
6-9 DC
Alimentacione Entradas
s Analógicas
Seminario Arduino
33. 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
34. 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
Seminario Arduino
35. Ejemplo práctico: Semáforo
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
39. 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.
Seminario Arduino