Taller de Fabricación DE
Robots CON
ORGANIZA:
COLABORAN:
SUMARIO 1ª SESIÓN
•  INTRODUCCIÓN A ARDUINO
•  CONCEPTOS BÁSICOS
•  PRACTICANDO
•  PRÁCTICAS
–  P1: SALIDAS DIGITALES
–  P2: ENTRADAS DIGITALES
–  P3: ENTRADAS ANALÓGICAS
–  P4: SALIDAS ANALÓGICAS
–  P5: CONTROL MOTOR
•  ¿ QUÉ ES?
•  OPEN SOURCE HARDWARE
•  QUÉ PODEMOS HACER
•  LA PLATAFORMA ARDUINO
INTRODUCCIÓN A ARDUINO
¿QUE ES?
"
Es una plataforma de hardware libre para la
creación de prototipos basados en software y
hardware flexibles y fáciles de usar
	
  
OPEN SOURCE HARDWARE
"
	
  
OPEN SOURCE HARDWARE
"
	
  
OPEN SOURCE HARDWARE
Consecuencias:
•  Multitud de escudos y versiones de placas
•  Comunidad de usuarios à información
•  Posibilidad de desarrollar nuestros propios
prototipos	
  	
  
•  Precios	
  
"
	
  
QUÉ PODEMOS HACER
"
	
  
LA PLATAFORMA ARDUINO
Se apoya en cuatro pilares:
•  Hardware: la placa Arduino
•  IDE: entorno de desarrollo
•  Software
•  Soporte en red
"
	
  
•  HARDWARE
•  SOFTWARE
CONCEPTOS BÁSICOS
HARDWARE
•  Qué es un microcontrolador
•  Entradas y Salidas
•  Digital y Analógico
•  Arduino UNO: características
"
	
  
Qué es un microcontrolador
Es un circuito integrado programable capaz de
realizar operaciones matemáticas a gran
velocidad
"
	
  
Entradas y Salidas
Entradas: proporcionan información al sistema
Salidas: realizan actuaciones
"
	
  
•  Pulsadores	
  
•  Sensores	
  
	
  
•  Motores	
  
•  LEDs	
  
•  Zumbador	
  
	
  
Digital y Analógico
"
	
  
Arduino Uno
"
	
  
Arduino Uno
"
	
  
IDE: ENTORNO DE PROGRAMACIÓN
"
	
  
SOFTWARE
"
	
  
SOPORTE EN RED
"
	
  
PRACTICANDO
•  PROTOBOARD
•  CABLES
•  RESISTENCIAS
•  POLÍMETRO
	
  
PROTOBOARD
	
  
CABLES
	
  
Rojo=5v	
  
Colores	
  pines	
  
Negro=0v	
  
RESISTENCIAS
	
  Son elementos que limitan el paso de la corriente
Código de
colores
RESISTENCIAS
	
  
220	
  Ω	
  
1	
  KΩ	
  
Resistencias típicas
10	
  KΩ	
  
POLÍMETRO
	
  Medir tensión:
POLÍMETRO
	
  Medir continuidad:
POLÍMETRO
	
  Medir intensidad:
PRACTICAS
P1: SALIDAS DIGITALES
P2: ENTRADAS DIGITALES
P3: ENTRADAS ANALÓGICAS
P4: SALIDAS ANALÓGICAS
	
  
P1: SALIDAS DIGITALES
•  FINALIDAD
•  HARDWARE
•  PROGRAMACIÓN
	
  
FINALIDAD
- Hacer que un LED parpadee cambiando la
frecuencia
- Comprobar cual es el límite de la
percepción humana
+ Montar el circuito con protoboard
+ Probar a hacer que parpadee un número
limitado de veces
	
  
HARDWARE: LED
El LED es un Diodo Emisor de Luz
•  Tiene polaridad
•  Necesita resistencia de protección
•  Imax=20mA
•  VLED=2v
A	
   K	
  
HARDWARE: HOLA MUNDO
A	
  K	
  
HARDWARE: LED
HARDWARE: CÁLCULO RESISTENCIA
Cálculo de la resistencia de protección del LED
Datos:
•  V=5v
•  Imax=20mA
•  VLED=2v
V	
  
R	
  
SOFTWARE: HOLA MUNDO
SOFTWARE: SALIDAS DIGITALES/ TIEMPO
- pinMode(pin, INPUT/OUTPUT);	
Configura el pin como entrada o salida digital
pin: el pin digital que queremos configurar
OUTPUT: establece el pin digital de salida	
- digitalWrite(pin, ESTADO);	
Escribe 5 o 0v en la salida
pin: pin digital de salida
ESTADO: HIGH=5v o LOW=0v
- delay(ms);	
Tiempo de espera en ms
P2: ENTRADAS DIGITALES
•  FINALIDAD
•  HARDWARE
•  PROGRAMACIÓN
	
  
FINALIDAD
- Controlar con un pulsador el encendido de
un LED
- Añadir función memoria de modo que al
pulsar se encienda y al volver a pulsar se
apague
+ Ver: Ejemplosà Digital à Debounce
	
  
HARDWARE: PULSADOR
•  Tiene 4 patas conectadas 2 a 2
•  Podemos usar el polímetro en modo
continuidad para deducir su funcionamiento
•  Configuración ''pull down'' lógica positiva
HARDWARE: PULSADOR
SOFTWARE: ENTRADA DIGITAL/ IF-ELSE
- digitalRead(pin);	
pin: pin digital de entrada. Declararlo en el set up
•  V<3,5V à Lee un 0
•  SI V>3,5V à Lee un 1
	
- if(condicion){	
	 	// Caso A	
	}	
	else{	
	 	// Caso B	
	}
SOFTWARE: PULSADOR-LED
SOFTWARE: PULSADOR-LED
Pulsador LED con estado de memoria	
  
P3: ENTRADAS ANALÓGICAS
•  FINALIDAD
•  HARDWARE
•  PROGRAMACIÓN
	
  
FINALIDAD
Realizar un interruptor crepuscular
- Muestear el valor del sensor de luz por el
puerto serie
- Controlar el encendido de un LED
mediante la luz ambiental
+ Encontrar otra aplicación a la LDR
	
  
HARDWARE: LDR
Es una Resistencia Dependiente de la Luz
RNOCHE=	
  1	
  MΩ	
  	
  
	
  
RDIA=	
  100	
  Ω
HARDWARE: LDR
HARDWARE: DIVISOR DE TENSIÓN
Montaje para sensores resistivos
VOUT=5*R/(LDR+R)	
  
	
  
Día	
  à	
  RLDR=100Ω	
  à	
  VOUT≈5v	
  
	
  
Nocheà	
  RLDR=1MΩ	
  à	
  VOUT≈0v	
  
	
  
SOFTWARE: ENTRADA ANALÓGICA
- analogRead(pin);	
pin: pines Analógicos entrada A0-A6
valor: entre 0-1023 (0-5v)
SOFTWARE: COMUNICACIÓN SERIE
	
•  Utiliza los pines Rx D0 y Tx D1 para comunicarse
•  Permite enviar datos de Arduino al PC
•  Nos permite monitorizar sensores
SOFTWARE: EJ. COMUNICACIÓN SERIE
SOFTWARE: FUNCIÓN SERIAL
	- Serial.begin (velocidad);	
Abre el puerto serie y establece la velocidad de
comunicación en baudios, declarar en el set up
Serial.begin (9600);
- Serial.print ();	
Imprime los datos por el puerto serie
Serial.print ("Texto");	
Serial.print (variable);	
- Serial.println ();	
Añade retorno de carro
SOFTWARE: MONITORIZACIÓN DE VARIABLES
P4: SALIDAS ANALÓGICAS
•  FINALIDAD
•  HARDWARE
•  PROGRAMACIÓN
	
  
FINALIDAD
- Controlar el encendido de un LED con un bucle for:
usar Ejà Analogà Fading
- Controlar el encendido de un LED con un
potenciómetro, usar la función map
+ Añadir otro potenciómetro para controlar 2 colores
de un LED RGB
+ Usar un potenciómetro con dos funciones map, una
de ellas invertida para controlar los 3 colores LED RGB
	
  
HARDWARE: LED RGB
Son tres Diodos LEDs en un encapsulado
En este caso con cátodo común
HARDWARE: LED RGB
HARDWARE: potenciómetro
Es una resistencia variable
•  Resistencia variable 0-10 kΩ
•  Divisor de tensión 0-5v
5v	
  
VANALOG	
  
0v	
  
HARDWARE: POTENCIÓMETRO
SOFTWARE: SALIDA ANALÓGICA pwm
PWM: Modulación por Anchura de Pulso	
- analogWrite(pin, valorPWM);	
pin: pines digitales con PWM:
D3, D5, D6, D9, D10, D11
valor: entre 0-255 (0-5v)
VS=5*PWM/255
SOFTWARE: BUCLE FOR
Se usa para repetir las ordenes entre corchetes
	
- for(inicio; paro; incremento){	
	 	// Ordenes a repetir	
	}	
	
for(i=0; i<10; i++){	
	 	// Ordenes a repetir	
	}
SOFTWARE: CONTROL SALIDA ANALÓGICA
SOFTWARE: MAP
Escala un valor de un rango a otro	
	
- map(value;fromLow;fromHigh;toLow;toHigh);	
value: valor a escalar
El caso más típico es de una entrada analógica
0-1023 a una salida analógica 0-255	
	
sensorMapvalue=map(sensorValue;0; 1023;0;255);
SOFTWARE: ENTRADA- SALIDA ANALÓGICA
•  MOTORES CC
•  SERVOMOTORES POSICIÓN
•  SERVOMOTORES CONTINUA
MOTORES
MOTORES CC
Características:
•  Son económicos
•  Permiten regular su velocidad en función de
su tensión de alimentación
•  Invierten el sentido de giro en función de su
polaridad
•  Pueden necesitar un circuito de potencia cc
"
MOTORES CC
Circuito de Potencia cc
"
	
  
MOTORES CC
Inversión de giro mediante puente en H
"
	
  
L298
Inversión de giro mediante puente en H y
L298
"
	
  
L298
"
	
  
CONTROL DE UN MOTOR V Y SG
"
	
  
 
	
  
	
  
Esta	
  guía	
  se	
  distribuye	
  bajo	
  licencia	
  Reconocimiento-­‐	
  ComparWrIgual	
  CreaWve	
  
commons	
  4.0	
  	
  
	
  
	
  
(cc)	
  2015	
  José	
  Pujol	
  Pérez	
  Some	
  rights	
  reserved.	
  This	
  work	
  licensed	
  under	
  CreaWve	
  
Commons	
  A_ribuWon-­‐ShareAlike	
  License.	
  To	
  view	
  a	
  copy	
  of	
  full	
  license,	
  see	
  	
  	
  	
  	
  	
  	
  	
  	
  
h_p://creaWvecommons.org/licenses/by-­‐sa/3.0/	
  or	
  write	
  to	
  CreaWve	
  Commons,	
  559	
  
Nathan	
  Abbo_	
  Way,	
  Stanford,	
  California	
  94305,	
  USA.	
  	
  
Some	
  of	
  the	
  figures	
  have	
  been	
  taken	
  from	
  the	
  Internet	
  Source,	
  and	
  author	
  and	
  licence	
  
if	
  known,	
  is	
  specified.	
  	
  
For	
  those	
  images,	
  fair	
  use	
  applies.	
  	
  
licenciaLICENCIA

Taller fabricación de robots-d1