Está en la página 1de 65

Iniciación á robótica con

LEGO MindStorms EV3

Vicerreitoría de Títulos, Calidade e Novas Tecnoloxías


Aula de Formación Informática
Francisco Javier Bellas Bouza e José Antonio Becerra Permuy
LEGO MindStorms EV3
LEGO MindStorms EV3
• Robots modulares que se construyen con piezas de Lego
con un coste total muy reducido.

• Utilizan piezas de la línea Technic.

• Varios sensores y actuadores de bajo coste (no hay


cámara de vídeo).

• El módulo de control (brick) tiene una potencia


equivalente a la de un smartphone de gama baja.

• Tercera generación de desarrollo de robots de Lego,


tras RCX y NXT.

3
Características del brick
• Procesador ARM9 @300MHz.

• 16 MB Flash (Linux).

• 64 MB RAM.

• 4 puertos de entrada para sensores y 4 puertos de salida para actuadores.

• Ranura microSDHC (hasta 32 GB). Se puede arrancar un S.O. diferente al que trae de
serie desde una tarjeta en esta ranura.

• Bluetooth.

• Soporta wifi (sin encriptación o con WPA2) conectando dongle NetGear WNA1100 en
puerto USB.

• Se pueden conectar hasta 4 bricks en daisy chaining para ampliar el número de puertos
para sensores y actuadores (el programa se ejecuta solo en uno de los bricks).

4
EV3 Set
• Componentes:

• EV3 brick.

• Sensores: 1 contacto, 1 color, 1


infrarrojos.

• Mando a distancia por IR.

• 600 piezas.

• Software de desarrollo gratuito


(Windows y OS X).

5
EV3 Set

6
EV3 Set

7
Education EV3 Core Set
• Componentes:

• EV3 brick.

• Batería recargable (el cargador se adquiere por separado).

• Sensores: 2 contacto, 1 color, 1 ultrasonidos, 1 giroscopio.

• 541 piezas.

• El software de desarrollo se adquiere por separado


(Windows y OS X), pero incluye material multimedia para su
uso en docencia y capacidades de data logging (lo que
requiere un firmware distinto en el brick).

8
Education EV3 Core Set

9
Education EV3 Core Set

10
Education EV3 Expansion Set
• 853 piezas.

11
Education EV3 Expansion Set

12
Education EV3 Expansion Set

13
Education EV3 Expansion Set

14
Componentes adicionales

• Sensores:

• Medidor de energía.

• Sensor de sonido.

• Sensor de temperatura.

15
Software de programación
Software de programación
• De ejecución en el brick:

• Mindstorms EV3. Basado en WebUI Builder de National Instruments (similar a LabVIEW). Programación visual mediante
bloques que simbolizan los elementos del lenguaje y los componentes de Lego. Versión 1.2.1. Gratuito (data logging de
pago). Windows y OS X.

• LabVIEW. Programación visual. Soporte para las versiones 2012 y superiores. Comercial. Windows y OS X.

• RobotC for LEGO Mindstorms. Basado en C. Simulador 3D (Robot Virtual Worlds). Versión 4.52. Comercial. Windows.

• MonoBrick. Basado en Mono (C#, F#, IronPython). Gratuito. Multiplataforma. Se carga arrancando desde una microSD.

• LeJOS. Basado en Java. Versión 0.9.1. En desarrollo. Gratuito. Multiplataforma. Se carga arrancando desde una microSD.

• Python EV3. Requiere ev3dev. En desarrollo. Gratuito. Multiplataforma. Se carga arrancando desde una microSD.

• De control remoto:

• Matlab. Comercial. Windows, OS X y Linux.

• Microsoft EV3 API. Cualquier lenguaje soportado por Visual Studio. Gratuito. Windows.

• MonoBrick. Basado en Mono (C#, F#, IronPython). Gratuito. Multiplataforma.

• S.O alternativo:

• ev3dev. Basado en Debian. En desarrollo. Gratuito. Se carga arrancando desde una microSD.

17
Mindstorms EV3
PROS

• Muy fácil construir comportamientos reactivos / programar autómatas.

• Curva de aprendizaje muy rápida para quien no haya programado antes en otro lenguaje.

• Fomenta la documentación de los programas.

• Ejecución paralela trivial.

• Herramienta de data logging muy sencilla de utilizar.

• Muy buena documentación.

CONS

• Tedioso manejar estructuras de datos complejas.

• No hay reserva dinámica de memoria.

• La programación es lenta si se compara con un lenguaje tradicional una vez que se domina éste.

• Programas medianos o grandes complicados de gestionar. Es necesario acostumbrarse a particionar todo en


bloques propios.

• No hay simulador (aunque se puede acoplar al Robot Virtual Worlds usando Virtual Brick).

18
Mindstorms EV3
• La ayuda y la documentación (muy buena y llena de ejemplos) se ejecuta en
su propio servidor web (http://localhost:58401).

19
Mindstorms EV3

20
Proyectos
• Al igual que en la mayoría de los
IDE, los archivos se organizan en
proyectos.

• Un proyecto puede contener varios


programas, experimentos, imágenes
y archivos de sonido.

• Los experimentos son programas


creados automáticamente por el IDE
con el objetivo de realizar capturas
de datos para su posterior análisis.

21
Propiedades del proyecto

22
Barra de herramientas de programación

23
Página de hardware

24
Programando
• Los programas se crean
arrastrando bloques de
programación (de las paletas
de programación, ubicadas en
la parte inferior de la pantalla)
al área de documento de
programación.

• Los bloques representan los


elementos básicos del
lenguaje: lectura de datos de
los sensores, órdenes para los
actuadores, operaciones
aritméticas, sentencias
condicionales, bucles, etc.

25
Programando
• Cuando los bloques están juntos, se unen
automáticamente creando una secuencia de bloques.

• Cuando los bloques de programación no están juntos,


se pueden conectar uniéndolos con un cable de
secuencia.

26
Secuencias de bloques
• Todo programa empieza por un bloque iniciar.

• La ejecución en una secuencia de bloques va de izquierda a


derecha.

• En la mayoría de los casos, el programa no pasa de un bloque a


otro hasta que el primero ha finalizado completamente.

• Sin embargo, algunos bloques tienen una ejecución no


bloqueante, es decir, un bloque inicia una acción, “finaliza” y el
programa pasa al siguiente bloque, pero la acción persiste en el
tiempo hasta que otro bloque posterior la finaliza explícitamente.

• La ejecución de un programa finaliza tras llegar al extremo derecho


de todas las secuencias de bloques presentes en el programa.

27
Secuencias paralelas
• Puede haber más de un bloque iniciar dando
lugar a secuencias paralelas de bloques.

• También se pueden crear secuencias


paralelas a partir de un punto concreto del
programa simplemente conectando un
bloque a varios bloques, cada uno con su
correspondiente cable de secuencia.

• Todas las secuencias comparten variables.

• En caso de conflicto en el uso de recursos el


comportamiento es impredecible. Solo está
garantizada la ejecución atómica de cada
bloque individualmente.

28
Bloques de secuencias
• El lenguaje fomenta la aplicación de divide y vencerás mediante la creación de bloques propios
resultado de agrupar secuencias de bloques.

• Equivalente a funciones en otros lenguajes.

• Para ello, se seleccionan los bloques que se desean agrupar y se ejecuta la herramienta
“Constructor de Mi Bloque”, en la que:

• Se da nombre al nuevo bloque.

• Se selecciona un icono para él con el que aparecerá en la paleta de programación “Mis


Bloques”.

• Se definen las entradas y salidas. Para cada una:

• Nombre.

• Icono.

• Tipo de dato.

• Valor por defecto.

29
Bloques de secuencias
• Los bloques propios se
pueden editar pero no se
pueden cambiar las
definiciones de sus entradas
y salidas. ¡En ese caso, es
necesario volver a crearlo!.

• Imprescindible usar bloques


propios en programas no
triviales, si no se vuelven
inmanejables, ¡por extensión
y por lentitud del IDE!.

30
Tipos de datos
• Tipos de datos:

• Numérico.

• Lógico.

• Texto.

• Secuencia numérica.

• Secuencia lógica.

• El texto puede ser unicode, pero la pantalla del brick solo representa los
caracteres ASCII de 7 bits.

• Las secuencias son arrays unidimensionales. No existen otro tipo de arrays.

31
Cables de datos
• El lenguaje trata de evitar el uso explícito de variables en la medida de lo
posible.

• En su lugar, fomenta el uso de cables de datos (evita problemas con


secuencias paralelas).

• Si un cable de secuencia lleva el flujo de ejecución del programa de un bloque


a otro, un cable de datos lleva un dato de un bloque a otro.

• Cuando la ejecución del programa llega a un bloque determinado, si este es


destino de un cable de datos, no se ejecuta hasta que el dato está disponible:

• El bloque de origen debe de estar antes que el bloque de destino en la


secuencia.

• Se pueden usar cables de datos para sincronizar secuencias paralelas.

32
Cables de datos

Tipos de cables de datos.

Se puede ver el contenido de un cable de datos durante la ejecución de un programa dejando el cursor encima.

33
Variables y constantes
• El lenguaje soporta los conceptos tradicionales de variables
(posiciones de memoria en las que se almacenan datos que
se pueden cambiar durante la ejecución del programa) y
constantes (posiciones de memoria en las que se almacenan
datos que no cambian durante la ejecución del programa).

• Las variables se usan:

• Si un dato va a ser accedido / actualizado en diferentes


sitios alejados del programa.

• Si se necesita un dato en diferentes secuencias sin que


exista una necesidad de sincronización entre ellas.

34
Bloques de programación

35
Bloques de programación

36
Inicio y fin de un programa
• Iniciar.

• Marca el inicio de una secuencia de bloques en el


programa.

• Puede haber más de una secuencia.

• Todas las secuencias se inician automáticamente cuando


se ejecuta el programa y se ejecutan al mismo tiempo.

• Detener.

• Finaliza de inmediato cualquier secuencia de bloques y


termina el programa. Equivalente a exit() en C.

• Su uso no es obligatorio.

• Útil cuando hay varias secuencias ejecutándose y


queremos finalizarlas todas desde una en concreto.

37
Espera
• Esperar.

• Espera a que suceda algo antes de continuar


con el siguiente bloque de la secuencia.

• Modos de funcionamiento:

• Tiempo. Espera una cantidad de tiempo


específica en segundos.

• Sensor. Espera a que un sensor alcance un


valor determinado (comparar) o simplemente
cambie de valor, ya sea a cualquier valor o en
una cantidad determinada (cambiar).

• Mensaje. Espera a recibir por bluetooth un


mensaje del tipo especificado.

38
E/S básica
• Pantalla.

• Muestra texto o gráficos en la pantalla del bloque EV3.

• La posición (0, 0) es la esquina superior izquierda de la


pantalla.

• Modos de funcionamiento:

• Texto. No se pueden usar caracteres no ingleses. Se puede


borrar la pantalla antes de escribir. Se pueden especificar
coordenadas (x,y) o fila (10 pixeles de alto) y columna (8
pixeles de ancho). Dos tamaños de fuente y posibilidad de
usar negrita.

• Formas. Permite dibujar líneas, círculos, rectángulos y puntos.

• Imagen. Carga una imagen de la librería y la muestra.

• Reiniciar. Regresa a la pantalla de información normal que se


muestra cuando se está ejecutando un programa. Cuando el
programa finaliza la pantalla se reinicia automáticamente.

39
E/S básica
• Ejemplo de uso de pantalla: se muestra en pantalla la imagen “Big Smile” durante 2 segundos y, sin
borrar la pantalla, se sobrescribe el texto “AFI”.

1. Iniciar

2. Pantalla – Imagen[Big Smile] - Borrar pantalla[TRUE]

3. Esperar – Tiempo[2 s]

4. Pantalla – Texto[AFI] - Borrar pantalla[FALSE] - [x=8, y=1]

5. Esperar – Tiempo[2 s]

Amp
lía • Prueba a borrar la pantalla y poner el texto centrado .

40
E/S básica
• Luz de estado.

• Controla la luz de estado del bloque EV3.

• Funcionamiento continuo o con pulsos.

• Modos de funcionamiento:

loquean
te • Encendido. Enciende la luz (verde, naranja o
No b
roja).

• Apagar. Apaga la luz.

• Reiniciar. Regresa la luz de estado a su


patrón intermitente en verde estándar que
indica que se está ejecutando un programa.

41
E/S básica
• Ejemplo de uso de la luz de estado: luz fija de color rojo durante 2
segundos que cambia a luz naranja intermitente durante otros 2
segundos.

1. Iniciar

2. Esperar – Tiempo[2 s]

3. Luz de estado del Bloque EV3 – Color[2] (Rojo), Pulso[Falso]

4. Esperar – Tiempo[2 s]

5. Luz de estado del Bloque EV3 – Color[1] (Naranja), Pulso[Verdadero]

6. Esperar – Tiempo[2 s]

42
E/S básica
• Sonido.

• Reproduce un sonido con el altavoz del bloque EV3.

• Se puede ajustar el volumen y reproducir en bucle.

• La reproducción puede ser bloqueante o no bloqueante.

• Modos de funcionamiento:
nte
No bloquea • Archivo. Carga un archivo de la librería y lo reproduce.

e
• Tono. Reproduce un tono en una frecuencia específica
ueant
No bloq durante un tiempo determinado.

te
• Nota. Reproduce una nota musical durante un tiempo
oquean
N obl determinado.

• Detener. Detiene cualquier sonido que se esté


reproduciendo.

43
E/S básica
• Botones del bloque EV3.

• Obtiene datos de los botones del bloque


EV3.

• Modos de funcionamiento:

• Botones. Muestra el identificador del


botón presionado.

• Para el modo anterior existe un modo


comparación en el que se compara lo
percibido con un valor especificado y
devuelve un valor lógico (combina
sensorización y condicional).

44
E/S básica
• Ejemplo de uso de los botones del bloque EV3: esperar 3
segundos para pulsar un botón y reproducir una nota musical o
archivo de audio el tiempo indicado por el ID del botón.

1. Iniciar

2. Esperar – Tiempo[3 s]

3. Pantalla – Imagen[Sad]

4. Botones del bloque – Medida (salida al bloque siguiente)

5. Sonido – Reproducir nota[A5] – Vol 100 - Tiempo (cable de


datos del bloque de botones) -Tipo de reproducción[0]
(Esperar que complete)

45
Motores
• Mover la dirección.

• Se asume que el robot posee dos motores grandes, uno que impulsa el lado
izquierdo del vehículo y otro que impulsa el lado derecho del vehículo.

• Mueve el robot indicando un único valor de potencia y una dirección deseada.

• La potencia y dirección se especifican en unidades arbitrarias entre -100 y


100.

• Modos de funcionamiento:

nte • Encendido. Se encienden los dos motores hasta que otro bloque los opera o el
bloquea
No programa finaliza.

• Encendido por segundos. Se encienden los dos motores durante el tiempo


especificado. Después se apagan.

• Encendido por grados / rotaciones. Se encienden los dos motores hasta que
uno de ellos ha girado los grados / vueltas indicados. Después se apagan. Si
!! los motores encuentran resistencia y no son capaces de completar el número
¡ P e ligro!
¡¡ de grados especificado, el bloque seguirá esperando y ningún otro bloque del
programa se ejecutará hasta que se elimine la resistencia.

• Apagado. Apaga los dos motores. Éstos se pueden detener o simplemente


desactivar la energía y dejar que sigan girando utilizando el momento restante.

46
Motores
• Mover tanque.

• Se asume que el robot posee dos motores grandes, uno que impulsa el lado
izquierdo del vehículo y otro que impulsa el lado derecho del vehículo.

• Mueve el robot indicando un valor de potencia diferente para cada motor.

• La potencia se especifica en unidades arbitrarias entre -100 y 100.

• Modos de funcionamiento:

te • Encendido. Se encienden los dos motores hasta que otro bloque los opera o
loquean
No b el programa finaliza.

• Encendido por segundos. Se encienden los dos motores durante el tiempo


especificado. Después se apagan.

• Encendido por grados / rotaciones. Se encienden los dos motores hasta que
uno de ellos ha girado los grados / vueltas indicados. Después se apagan.
!!!
¡ ¡ P e ligro Si los motores encuentran resistencia y no son capaces de completar el
¡
número de grados especificado, el bloque seguirá esperando y ningún otro
bloque del programa se ejecutará hasta que se elimine la resistencia.

• Apagado. Apaga los dos motores. Éstos se pueden detener o simplemente


desactivar la energía y dejar que sigan girando utilizando el momento
restante.

47
Motores
• Ejemplo de uso de motores: realizar la siguiente
secuencia de movimientos utilizando el bloque
“mover dirección” y el bloque “mover tanque”

1. Girar una vuelta hasta quedar de nuevo de frente

2. Avanzar durante 2 segundos en línea recta

3. Volver al punto de partida marcha atrás mientras


suena el sonido de alerta “Marcha
Atrás” (Backing Alert)

48
Motor grande
• Motor grande.

• Par motor de 20 Ncm. y velocidad de giro de 160-170 rpm.

• La potencia se especifica en una unidad arbitraria entre -100 y 100. Un


número positivo implica un giro en el sentido de las agujas del reloj y un
número negativo un giro en el sentido contrario al de las agujas del reloj.

• Incluye sensor de rotación.

• Modos de funcionamiento:

nte • Encendido. Se enciende el motor y se selecciona una potencia que se aplica


bloquea
No continuamente hasta que otro bloque la cambia o el programa finaliza.

• Encendido por segundos. Se enciende el motor y se selecciona una potencia


que se aplica durante el tiempo especificado. Después se apaga el motor.

• Encendido por grados / rotaciones. Se enciende el motor y se selecciona una


potencia que se aplica hasta que el motor ha girado los grados / vueltas
!! indicados. Después se apaga. Si el motor encuentra resistencia y no es capaz
P e ligro!
¡¡¡ de completar el número de grados especificado, el bloque seguirá esperando
y ningún otro bloque del programa se ejecutará hasta que se elimine la
resistencia.

• Apagado. Apaga el motor. Éste se puede detener o simplemente desactivar la


energía y dejar que siga girando utilizando el momento restante.

49
Motor mediano
• Motor mediano.

• Par motor de 8 Ncm. y velocidad de giro de 240-250 rpm.

• La potencia se especifica en una unidad arbitraria entre -100 y 100. Un


número positivo implica un giro en el sentido de las agujas del reloj y un
número negativo un giro en el sentido contrario al de las agujas del reloj.

• Incluye sensor de rotación.

• Modos de funcionamiento:

ueant
e • Encendido. Se enciende el motor y se selecciona una potencia que se aplica
oq
N o bl continuamente hasta que otro bloque la cambia o el programa finaliza.

• Encendido por segundos. Se enciende el motor y se selecciona una potencia


que se aplica durante el tiempo especificado. Después se apaga el motor.

• Encendido por grados / rotaciones. Se enciende el motor y se selecciona una


potencia que se aplica hasta que el motor ha girado los grados / vueltas
!! indicados. Después se apaga. Si el motor encuentra resistencia y no es capaz
¡ P e ligro!
¡¡ de completar el número de grados especificado, el bloque seguirá esperando
y ningún otro bloque del programa se ejecutará hasta que se elimine la
resistencia.

• Apagado. Apaga el motor. Éste se puede detener o simplemente desactivar la


energía y dejar que siga girando utilizando el momento restante.

50
Motor mediano
• Ejemplo de uso de motor mediano: hacer que el robot
baje la pinza y coja la caja de colores, después gire
hacia atrás un cierto tiempo arrastrándola y finalmente
la libere subiendo la pinza.

1. Iniciar

2. Motor Mediano – Grados[100], Potencia[-30]

3. Mover Tanque o Mover Dirección

4. Motor Mediano – Grados[100], Potencia[30]


51
Sensor de ultrasonidos
• Sensor de ultrasonidos.

• Envía ondas de sonido de alta frecuencia y mide cuánto


tarda el sonido en reflejarse de vuelta al sensor.

• Rango de detección: 3 a 250 cm.

• Modos de funcionamiento:

• Distancia al objeto más cercano (cm o pulgadas).


Devuelve 255 si no detecta nada.

• Presencia. No emite, detecta señales de ultrasonidos de


otras fuentes.

• Para cada modo anterior existe un modo comparación en


el que se compara lo percibido con un valor especificado y
devuelve un valor lógico (combina sensorización y
condicional).

Amp
lía • Probamos el sensor en la página de hardware.

52
Sensor de ultrasonidos
• Ejemplo de uso de sensor de ultrasonidos: se lee el valor del sensor y si la
distancia es menor que 50, se muestra el valor lógico verdadero (1) o falso
(0) por pantalla durante 5 segundos.

1. Iniciar

2. Ultrasonidos – Comparar[Menor que 50] - Salida lógica a cable

3. Pantalla – Texto[Conectado] - Entrada a cable

4. Esperar – Tiempo[5 s]

53
Sensor de infrarrojos
• Sensor de infrarrojos.

• Envía luz en el espectro de los infrarrojos y detecta el reflejo de


esta luz en otros objetos.

• Rango de detección: hasta 70 cm.

• Modos de funcionamiento:

• Proximidad. Distancia al objeto más cercano en un rango ficticio


[0:100]. Necesario modelar para comprobar la correspondencia
con distancias reales en función del objeto.

• Baliza (posición). Distancia al mando a distancia por IR de Lego


funcionando en modo baliza, así como orientación respecto al
sensor. El alcance máximo en este modo son 200 cm.

• Baliza (remoto). Indica el botón o botones pulsado(s) del mando a


distancia por IR de Lego funcionando en modo remoto. El alcance
máximo en este modo son 200 cm.

• Para cada modo anterior existe un modo comparación en el que


se compara lo percibido con un valor especificado y devuelve un
valor lógico (combina sensorización y condicional).

54
Sensor giroscopio
• Giroscopio.

• Detecta el movimiento de rotación en un plano.

• Máximo de 400º/seg.

• Modos de funcionamiento:

• Ángulo. Rotación en grados desde el último reinicio.

• Velocidad de rotación. Medida en grados por segundo.

• Para cada modo anterior existe un modo comparación en el que


se compara lo percibido con un valor especificado y devuelve
un valor lógico (combina sensorización y condicional).

• Existe también un modo que muestra conjuntamente ángulo y


velocidad de rotación.

• Reinicio. Reinicia la referencia (0º).

Amp
lía • Probamos el sensor en la página de hardware.

55
Sensor giroscopio
• Ejemplo de uso de sensor giroscopio:.

1. Hacer que el robot gire de forma indefinida hacia la


izquierda

2. Mediante el sensor giroscopio controlar cuándo el


giro es de 720º y en ese caso parar el giro hacia la
izquierda e iniciarlo hacia la derecha

3. Cuando haya girado otros 720º parar el motor

56
Sensor de color
• Sensor de color.

• Detectar el color o la intensidad de la luz.

• Modos de funcionamiento:

• Color. Distingue entre siete colores: negro, azul, verde, amarillo, rojo, blanco
y marrón, además de “sin color”.

• Intensidad de luz reflejada. Emite un haz de luz roja y devuelve la intensidad


de luz reflejada percibida también en una escala de 0 a 100. El sensor debe
de emitir perpendicularmente a la superficie.

• Intensidad de luz ambiente. Intensidad de luz percibida en una escala de 0


a 100.

• Para cada modo anterior existe un modo comparación en el que se compara


lo percibido con un valor especificado y devuelve un valor lógico (combina
sensorización y condicional).

• Calibrar mínimo. Establece el valor de intensidad de luz para el 0.

• Calibrar máximo. Establece el valor de intensidad de luz para el 100.

• Reinicio. Restaura la calibración a su estado por defecto.

lía Probamos el sensor en la página de hardware.


Amp •

57
Sensor de color
• Ejemplo de uso del sensor de color: hacer que el robot
avance hacia delante hasta que se apaguen las luces

• Iniciar

• Mover Dirección – Encendido - de frente, a


velocidad constante

• Esperar – Comparar intensidad de luz ambiental - si


está debajo de un umbral

• Mover Dirección – Apagado


58
Sensor de rotación del motor
• Sensor de rotación del motor.

• Obtiene información de un motor acerca de lo que está


girando o potencia aplicada.

• Resolución de 1 grado.

• Modos de funcionamiento:

• Rotación. Cuanto ha girado desde el último reinicio en grados


o en rotaciones completas.

• Potencia. Nivel de potencia actual en la salida.

• Para cada modo anterior existe un modo comparación en el


que se compara lo percibido con un valor especificado y
devuelve un valor lógico (combina sensorización y
condicional).

• Reinicio. Reinicia la referencia (0º).

Amp
lía • Probamos el sensor en la página de hardware.

59
Sensor de contacto
• Sensor de contacto.

• Modos de funcionamiento:

• Estado. Indica si el sensor está


presionado o no.

• Para el modo anterior existe un modo


comparación en el que se compara lo
percibido con un valor especificado y
devuelve un valor lógico (combina
sensorización y condicional).

Amp
lí a
• Probamos el sensor en la página de
hardware.

60
Sensor de temperatura
• Sensor de temperatura.

• Mide la temperatura en la punta de su sonda


metálica. El sensor mide en grados Celsius (de
-20°C a 120°C) y Fahrenheit (de -4°F a 248°F)
con una exactitud de 0,1°C.

• Modos de funcionamiento:

• Temperatura. Obtiene la temperatura en grados


Celsius o Fahrenheit.

• Para el modo anterior existe un modo


comparación en el que se compara lo percibido
con un valor especificado y devuelve un valor
lógico (combina sensorización y condicional).

61
Temporizador
• Temporizador.

• Obtiene tiempos de alguno de los 8


temporizadores internos del bloque EV3.

• Modos de funcionamiento:

• Tiempo transcurrido en segundos desde el


último reinicio.

• Para el modo anterior existe un modo


comparación en el que se compara lo percibido
con un valor especificado y devuelve un valor
lógico (combina sensorización y condicional).

• Reinicio. Reinicia el temporizador.

62
Temporizador
• Ejemplo de uso de temporizador:

• Se reinicia el temporizador.

• Se mueve el robot durante 5 segundos.

• Se lee el tiempo transcurrido.

• Se imprime por pantalla durante 3 segundos.

63
Espera
• Esperar.

• Espera a que suceda algo antes de continuar


con el siguiente bloque de la secuencia.

• Modos de funcionamiento:

• Tiempo. Espera una cantidad de tiempo


específica en segundos.

• Sensor. Espera a que un sensor alcance un


valor determinado (comparar) o simplemente
cambie de valor, ya sea a cualquier valor o en
una cantidad determinada (cambiar).

• Mensaje. Espera a recibir por bluetooth un


mensaje del tipo especificado.

64
Espera
• Ejemplo de uso de espera:

• El robot se mueve hacia delante hasta encontrar un objeto a menos de


10 cm.

• A continuación se para.

• Se mueve hacia atrás hasta tenerlo a 30 cm.

• Prueba ahora a utilizar el sensor de luz ambiente para que el robot no


Amp
lía
pare de moverse hasta que la intensidad de luz no cambie en 10
unidades .

65