Documente Academic
Documente Profesional
Documente Cultură
3
Características del brick
• Procesador ARM9 @300MHz.
• 16 MB Flash (Linux).
• 64 MB RAM.
• 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.
• 600 piezas.
5
EV3 Set
6
EV3 Set
7
Education EV3 Core Set
• Componentes:
• EV3 brick.
• 541 piezas.
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:
• Microsoft EV3 API. Cualquier lenguaje soportado por Visual Studio. Gratuito. Windows.
• S.O alternativo:
• ev3dev. Basado en Debian. En desarrollo. Gratuito. Se carga arrancando desde una microSD.
17
Mindstorms EV3
PROS
• Curva de aprendizaje muy rápida para quien no haya programado antes en otro lenguaje.
CONS
• La programación es lenta si se compara con un lenguaje tradicional una vez que se domina éste.
• 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.
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.
25
Programando
• Cuando los bloques están juntos, se unen
automáticamente creando una secuencia de bloques.
26
Secuencias de bloques
• Todo programa empieza por un bloque iniciar.
27
Secuencias paralelas
• Puede haber más de un bloque iniciar dando
lugar a secuencias paralelas de bloques.
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.
• Para ello, se seleccionan los bloques que se desean agrupar y se ejecuta la herramienta
“Constructor de Mi Bloque”, en la que:
• Nombre.
• Icono.
• Tipo de dato.
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!.
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.
31
Cables de datos
• El lenguaje trata de evitar el uso explícito de variables en la medida de lo
posible.
32
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).
34
Bloques de programación
35
Bloques de programación
36
Inicio y fin de un programa
• Iniciar.
• Detener.
• Su uso no es obligatorio.
37
Espera
• Esperar.
• Modos de funcionamiento:
38
E/S básica
• Pantalla.
• Modos de funcionamiento:
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
3. Esperar – Tiempo[2 s]
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.
• Modos de funcionamiento:
loquean
te • Encendido. Enciende la luz (verde, naranja o
No b
roja).
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]
4. Esperar – Tiempo[2 s]
6. Esperar – Tiempo[2 s]
42
E/S básica
• Sonido.
• 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.
43
E/S básica
• Botones del bloque EV3.
• Modos de funcionamiento:
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]
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.
• Modos de funcionamiento:
nte • Encendido. Se encienden los dos motores hasta que otro bloque los opera o el
bloquea
No programa finaliza.
• 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.
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.
• 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 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.
47
Motores
• Ejemplo de uso de motores: realizar la siguiente
secuencia de movimientos utilizando el bloque
“mover dirección” y el bloque “mover tanque”
48
Motor grande
• Motor grande.
• Modos de funcionamiento:
49
Motor mediano
• Motor mediano.
• 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.
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
• Modos de funcionamiento:
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
4. Esperar – Tiempo[5 s]
53
Sensor de infrarrojos
• Sensor de infrarrojos.
• Modos de funcionamiento:
54
Sensor giroscopio
• Giroscopio.
• Máximo de 400º/seg.
• Modos de funcionamiento:
Amp
lía • Probamos el sensor en la página de hardware.
55
Sensor giroscopio
• Ejemplo de uso de sensor giroscopio:.
56
Sensor de color
• Sensor de color.
• Modos de funcionamiento:
• Color. Distingue entre siete colores: negro, azul, verde, amarillo, rojo, blanco
y marrón, además de “sin color”.
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
• Resolución de 1 grado.
• Modos de funcionamiento:
Amp
lía • Probamos el sensor en la página de hardware.
59
Sensor de contacto
• Sensor de contacto.
• Modos de funcionamiento:
Amp
lí a
• Probamos el sensor en la página de
hardware.
60
Sensor de temperatura
• Sensor de temperatura.
• Modos de funcionamiento:
61
Temporizador
• Temporizador.
• Modos de funcionamiento:
62
Temporizador
• Ejemplo de uso de temporizador:
• Se reinicia el temporizador.
63
Espera
• Esperar.
• Modos de funcionamiento:
64
Espera
• Ejemplo de uso de espera:
• A continuación se para.
65