IRB1001 T01 Taller Programacion

26
IRB1001 – Introducción a la Robótica Sensores y Actuadores Sergio Aguilera M. ROBOTICS AND AUTOMATION LABORATORY Departamento de Ingeniería Eléctrica PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE ROBOTICS AND AUTOMATION LABORATORY Departamento de Ingeniería Eléctrica PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE 2 – Tema En esta clase • Arduino: Utilizar la IDE Placa de desarrollo Programación básica • Sensores Familias de sensores Ejemplo push boton Mundo Digital vs Análogo Ejemplo potenciometro • Actuadores Motor DC PWM Servomotor Trabajo con servomotor y motores DC Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

description

Programa de arduino, como programar micro controladores con sensores y partes móviles.Introduccion a la robotica, robotica básica y de introduccion

Transcript of IRB1001 T01 Taller Programacion

Page 1: IRB1001 T01 Taller Programacion

IRB1001 – Introducción a la RobóticaSensores y Actuadores

Sergio Aguilera M.

ROBOTICS AND AUTOMATION LABORATORYDepartamento de Ingeniería EléctricaPONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE

ROBOTICS AND AUTOMATION LABORATORYDepartamento de Ingeniería EléctricaPONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE

2– Tema

En esta clase

• Arduino: Utilizar la IDE Placa de desarrollo Programación básica

• Sensores Familias de sensores Ejemplo push boton

• Mundo Digital vs Análogo Ejemplo potenciometro

• Actuadores Motor DC PWM Servomotor Trabajo con servomotor y motores DC

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 2: IRB1001 T01 Taller Programacion

3– Tema

Arduino – Utilizar la IDE

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

1. Verificar2. Cargar3. Nuevo4. Abrir5. Guardar6. Monitor serial7. Nombre del sketch8. Área de código9. Área de mensajes

4– Tema

Arduino – Configuración I

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 3: IRB1001 T01 Taller Programacion

5– Tema

Arduino – Configuración II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

6– Tema

Arduino – Placa de Desarrollo

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

1. Programador, alimentación y Reset.

2. 14 Pines digitales y 6 salidas analógicas (~)

3. Microcontrolador

4. Salidas de voltaje: 5V, 3.3V y GND

5. Entradas analógicas

Page 4: IRB1001 T01 Taller Programacion

7– Tema

Arduino – Programación Básica

• El programa en arduino se divide en seccionesbásicas:

Declaración: Define el valor de una cierta variable o el tipo, asi como agregar las librerias necesarias

Inicialización: Función llamada “void setup()” la inicializa la función de los pines y algunas librerias

Ciclo: Código que se ejecutará de manera ciclica. Se utiliza la función llamada “void loop()”

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

8– Tema

Arduino – Ejemplo – Encender un LED

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 5: IRB1001 T01 Taller Programacion

9– Tema

Arduino – Ejemplo - Funciones

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

• pinMode(pin,mode)• Configura el pin para que funcione como entrada o

salida.

• digitalWrite(pin,value)• Permite escribir una salida como HIGH o LOW, en

pin.

• delay(T_ms)• Realiza una pausa de T_ms milisegundos.

10– Tema

Arduino – Ejemplo – Encender LED II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 6: IRB1001 T01 Taller Programacion

11– Tema

SENSORESSensores generales y Aplicaciones

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

12– Tema

Sensores

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

• Miden magnitudes físicas Ej: luz, presión, temperatura.• Entregan una medida conocida Ej: Resistencia, voltaje corriente.• Análogos a nuestros sentidos Ej: Piel, los ojos, oídos.

¡Permiten comunicarnos con el medio que nos rodea!

Page 7: IRB1001 T01 Taller Programacion

13– Tema

Sensores – Familia de Sensores I

• Clasificación según origen de la variable medida Sensores de Estados Internos (Sensores Propioceptivos) Sensores de Estados Externos (Sensores Exteroceptivos)

• Clasificación según método de medición Sensores Pasivos Sensores Activos (Invasivos)

• Clasificación según clase de la variable medida Sensores de Distancia (Range sensors) Sensores de Posición Absoluta Sensores Ambientales Sensores Inerciales

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

14– Tema

Sensores – Familia de Sensores II

• Sensores de Estados Internos (Propioceptivos) miden variables internas del robot

Ejemplos: carga de baterías, posición de las ruedas, ángulos de las articulaciones de un brazo o pierna robótica.

• Sensores de Estados Externos (Exteroceptivos) miden variables externas del robot

Ejemplos: distancia a obstáculos, color de objetos, temperatura.

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 8: IRB1001 T01 Taller Programacion

15– Tema

Sensores – Familia de Sensores III

• Sensores Pasivos no emiten energía al entorno energéticamente eficientes

no modifican el entorno no-intrusivos útiles cuando se requiere inconspicuicidad

Ejemplos: visión por computador empleando cámaras, medición de distancia basada en estereoscopía, medición de altitud basada en medición de presión atmosférica.

• Sensores Activos emiten energía al entorno energéticamente menos

eficientes

modifican el entorno invasivos no son inconspicuos presentan problemas en ambientes con múltiples robots

Ejemplos: sensores de contacto, sonar, radar, medición de distancia laser.

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

16– Tema

Sensores – Familia de Sensores IV

• Sensores de Distancia retornan distancia entre el sensor y objetos en el ambiente

• Sensores Posición Absoluta retornan posición absoluta del robot, por ejemplo, en término

de latitud, longitud y altitud

• Sensores Ambientales retornan propiedades ambientales, como temperatura,

colores o luminosidad de entorno

• Sensores Inerciales retornan aceleraciones y velocidades (propiedades

diferenciales de posición)

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 9: IRB1001 T01 Taller Programacion

17– Tema

Sensores – Familia de Sensores V

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Clasificación General según Aplicación SensorVariable

Interna / Externa Pasivo/ActivoTáctiles: Detección de contacto físico, Switches de Contacto, bumpers E Pproximidad, switches de seguridad. Barreras ópticas E A

Sensores de proximidad sin contacto E ASensores para Motores/Ruedas: Encoders con escobillas I PMedición de posición y velocidad. Potenciometros I P

Synchros, Resolvers I AEncoders ópticos I AEncoders magnéticos I AEncoders inductivos I AEncoders capacitivos I A

Sensores de Orientación/Posición: Brújulas E POrientación/Posición del robot con Giróscopos I P/Arespecto a un marco de referencia fijo. Inclinómetros E P/A

Acelerómetros I P/AFaros terrestres: GPS E ALocalización en un marco de referencia Faros ópticos o RF activos E Afijo. Faros ultrasónicos activos E A

Faros reflectivos E AMedición Activa de Distancia: Sensores de reflectividad E AReflectividad/intensidad de la señal, Sensores ultrasónicos E Atiempo de vuelo, triangulación, Sensores laser (laser range finder) E Amedición de fase. Triangulación óptica 1D E A

Luz estructurada 2D E ASensores de Velocidad/Movimiento: Radar Doppler E AVelocidad relativa a objetos fijos o en Sonido Doppler E Amovimiento.Sensores basados en visión: Cámaras CCD/CMOS E PMedición visual de distancias, con software de procesamientoanálisis de la imagen entera, de imágenes y seguimiento deextracción de bordes y características, objetossegmentación, reconocimiento deobjetos y patrones.

18– Tema

Sensores - Aplicaciones

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

• Digital: Son valores de 0 y 5 volts que representan los números binarios 0 (o LOW) y 1 (o HIGH) respectivamente.

Valor = digitalRead(pin)• Permite leer una entrada digital en pin.

Entrega una variable binaria: HIGH o LOW.

pinMode(pin,INPUT)• Define que pin será una entrada

Page 10: IRB1001 T01 Taller Programacion

19– Tema

Sensores – Ejemplo Botón I

• Realizar un programa que encienda un LED cuandose apriete un boton y que se apague cuando estedeje de presionarse.

• HINT: Utilizar la función if(condición) y else

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

20– Tema

Sensores – Ejemplo Botón II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 11: IRB1001 T01 Taller Programacion

21– Tema

Sensores – Ejemplo Botón III

• Esquemático

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

22– Tema

Sensores – Ejemplo Botón IV

• Conexiones

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 12: IRB1001 T01 Taller Programacion

23– Tema

MUNDO DIGITAL VS ANALÓGICO

ADC

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

24– Tema

Mundo digital vs analógico

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

• Mundo digital: Representado solo por dos valores 0 y 1.

• Mundo analógico: Puede tener cualquier rango de valores en todo instante de tiempo.

Page 13: IRB1001 T01 Taller Programacion

25– Tema

Mundo digital vs analógico - ADC I

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

1 bit

Numero Voltaje [V]

0 0

1 5

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

1

2

3

4

5

26– Tema

Mundo digital vs analógico - ADC II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

2 bit

Numero Voltaje [V]

00 0

01 1.66

10 3.33

11 5

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

1

2

3

4

5

Page 14: IRB1001 T01 Taller Programacion

27– Tema

Mundo digital vs analógico - ADC III

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

3 bit

Numero Voltaje [V]

000 0

001 0.71

010 1.42

011 2.14

100 2.85

101 3.57

110 4.28

111 5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

1

2

3

4

5

28– Tema

Mundo digital vs analógico - ADC IV

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

5 bit

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Page 15: IRB1001 T01 Taller Programacion

29– Tema

Mundo digital vs analógico - ADC V

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

10 bit

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

30– Tema

Mundo digital vs analógico - Funciones

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

• Analógico: Son valores entre 0 y 5 V los cuales se transforman a un valor entre 0 y 1024

Valor = AnalogRead(pin)• Permite leer una entrada digital en pin.

Entrega una variable entre 0 y 1024.

• Nota: No es necesario definir el pinMode para estas salidas, puesto que siempre son INPUTs

Page 16: IRB1001 T01 Taller Programacion

31– Tema

Mundo digital vs analógico – Potenciometro I

• Construir un circuito que encienda un LED amarillo si el potenciómetro esta bajo la mitad y uno rojo si esta por sobre la mitad.

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

32– Tema

Mundo digital vs analógico – Potenciometro II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 17: IRB1001 T01 Taller Programacion

33– Tema

Mundo digital vs analógico – Potenciometro III

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

34– Tema

Mundo digital vs analógico – Potenciometro IV

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 18: IRB1001 T01 Taller Programacion

35– Tema

ACTUADORESMotor DC y Servo motor

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

36– Tema

Motor Eléctricos

• Pueden funcionar sumergidos en líquidos

• Tienen una alta eficiencia (75% - 96%)• Combustión: 25% - 55%

• Silenciosos

• No contaminantes

• Alta duración

• Muy controlables

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 19: IRB1001 T01 Taller Programacion

37– Tema

Motor DC – Funcionamiento I

• En un imán las líneas de campo viajan de norte a sur.

• Un electroimán es una bobina a la cual se le aplica voltaje.

• Dependiendo del sentido de la pila, es la orientación del electro imán.

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

38– Tema

Motor DC – Funcionamiento II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

http://www.magnet.fsu.edu/education/tutorials/java/dcmotor/

Page 20: IRB1001 T01 Taller Programacion

39– Tema

Motor DC – Funcionamiento III

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

• La velocidad de giro del motor depende del voltaje aplicado.

• Tienen un voltaje máximo que puede ser aplicado

• El sentido de giro del motor, depende de la polaridad que se le dá.

40– Tema

PWM - I

• Como el voltaje de una bateria es constante. ¿Comópuedo cambiar el voltaje aplicado?

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 21: IRB1001 T01 Taller Programacion

41– Tema

PWM - II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Si la PWM es suficientemente rápida el motor

verá solo el voltaje promedio!!

42– Tema

PWM - III

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 22: IRB1001 T01 Taller Programacion

43– Tema

Transistor

• Interruptor controlado por un transistor

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

44– Tema

PWM – Ejemplo I

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

InterruptorControlado!

Transistor

Page 23: IRB1001 T01 Taller Programacion

45– Tema

PWM – Ejemplo II

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

46– Tema

PWM - Función

• Para crear una señal de PWM se utilizan los pines con (~) y la función:

analogWrite(pin, duty);

• Donde pin es el pin definido como output y duty es un numero entre 0 y 255 que define el ciclo de trabajo de la PWM

• NOTA: Para realizar una transformación lineal, se utiliza la función “map”.

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 24: IRB1001 T01 Taller Programacion

47– Tema

Servomotor I

• Son motores utilizados para controlar principalmente la posición que tienen de forma muy simple.

• Su giro es controlado, no pueden dar más de una vuelta.

• Tienen mayor torque que un motor DC normal de similar tamaño.

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

48– Tema

Servomotor II

• El servo se maneja utilizando 3 cables.• Rojo: Voltaje positivo• Negro o Marrón: Tierra• Amarillo, Naranjo o Blanco: Señal (Control)

• La señal de control es muy similar a una PWM.

• Arduino tiene una librería que genera la señal de control.

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 25: IRB1001 T01 Taller Programacion

49– Tema

Servomotor III

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

50– Tema

Servomotor - Funciones

• Para utilizar un servo motor en arduino, se puede incluir la librería en la declaración:

#include <Servo.h>

Servo motor;

• Se debe inicializar en que pin va a estar el control del motor:

motor.attach(9);

• Se le asigna un valor entre 0° y 179°:

motor.write(angulo);

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Page 26: IRB1001 T01 Taller Programacion

51– Tema

Servomotor - Conexión

Proyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

52– TemaProyecto/Conferencia/Curso M. Torres-Torriti – Diciembre 2004 –

Laboratorio de Robótica y AutomatizaciónEscuela de Ingeniería

Pontificia Universidad Católica de Chile

Laboratorio de Robótica y AutomatizaciónEscuela de Ingeniería

Pontificia Universidad Católica de Chile

ral.ing.puc.cl

RAL – FIN