• No se han encontrado resultados

Manual de manejo de dispositivos Lego Mindstorms CAPÍTULO IV INTERFAZ DE LAS UNIDADES LEGO PARA PC

N/A
N/A
Protected

Academic year: 2021

Share "Manual de manejo de dispositivos Lego Mindstorms CAPÍTULO IV INTERFAZ DE LAS UNIDADES LEGO PARA PC"

Copied!
72
0
0

Texto completo

(1)

Manual de manejo de dispositivos Lego Mindstorms

CAPÍTULO IV

INTERFAZ DE

LAS UNIDADES

(2)
(3)

Manual de manejo de dispositivos Lego Mindstorms

4.1 Introducción

Las interfaces de las unidades LEGO que usan la plataforma en computadores tienen grandes prestaciones, alcances y funcionalidades, en comparación a las interfaces directas con los Bloques NXT y EV3, facilitan ampliamente la programación permitiendo ajustes de fondo tanto en los actuadores motores, lámparas como en los sensores e inclusive en el mismo Bloque. A continuación, se explican los aspectos generales de estas plataformas tanto para el Bloque NXT como para el Bloque EV3.

4.2 Fundamentación teórica

Así como la programación de computadores se ha convertido en una de las disciplinas de mayor impacto en la actualidad y que, en su devenir histórico, ha ido presentando una evolución cada vez más cercana al usuario. Desde la aparición de este tipo de actividad se ha trasegado por diferentes paradigmas como son la programación iterativa, la programación lógica y la programación funcional, entre otras, se puede ver que todas apuntan a que el producto final se encuentre enmarcado en mejorar cada vez los conceptos de accesibilidad de los usuarios partiendo de sistemas netamente intuitivos. Es por ello que hoy en día los llamados nativos digitales realizan un manejo de dispositivos móviles y afines de forma casi implícita. No obstante y partiendo de estas premisas, los dispositivos robóticos LEGO MINDSTORMS cuentan con una interfaz de programación basada en la lógica y el uso de Bloques lógicos, que a su vez interactúan con estructuras de programación para dar origen a procedimientos algorítmicos interactivos con el robot.

A estos elementos se suma que los estudiantes aprenden cada una de las estructuras básicas de programación de la plataforma Lab View propia del dispositivo robótico con el propósito de conocer la interfaz. Luego, aprenden a desarrollar sentencias básicas y finalmente pasan a desarrollar actividades de pensamiento matemático, las cuales deberá desarrollar en esta plataforma y consecuentemente trasmitidas al robot para que él las ejecute.

Hay que mencionar, además, que cada una de las herramientas vistas en este Bloque, incluyendo los elementos de programación, requieren que el estudiante haya desarrollado ciertas habilidades relacionadas con la lógica de programación y, en especial, desde el uso de Bloques lógicos que fundamenta la programación visual. Esta lleva a que el alumno que se encuentre inmerso en este escenario, ya tenga una noción más cercana a la resolución de problemas usando un esquema lógico bien

(4)

COLECCIÓN MAESTROS N° 22

Las matemáticas son una actividad humana inserta en y condicionada por la cultura y por su historia, en la cual se utilizan distintos recursos lingüísticos y expresivos para plantear y solucionar problemas tanto internos como externos a las matemáticas mismas. En la búsqueda de soluciones y respuestas a estos problemas surgen progresivamente técnicas, reglas y sus respectivas justificaciones, las cuales son socialmente decantadas y compartidas(MEN, 2003, p.50).

Por otra parte, cabe decir que si el estudiante logra encontrar la sinergia entre el pensamiento lógico y el matemático estaría cerrando la brecha entre el saber y la adquisición de un conocimiento que, a la larga, tiende a ser perdurable.

4.3 Metodología

Inicialmente, se realiza el reconocimiento de los diferentes elementos con los que cuenta la plataforma de programación con la que viene el dispositivo robótico LEGO MINDSTORMS; seguidamente, se presentan parámetros de programación.

4.4 Unidad EV3

Una vez esté instalado el software de la unidad EV3, tanto la edición para hogares y estudiantes como la edición para docentes. Se puede hacer la conexión con una PC, la cual puede ser una conexión física con cable USB, vía Bluetooth o vía WiFi.

Figura 103. Conexión de la unidad EV3 a un PC

(5)

Manual de manejo de dispositivos Lego Mindstorms

La conexión vía cable es la más sencilla; basta con conectar el mini puerto USB que está junto al puerto D de la unidad EV3, con un puerto USB estándar del computador. Una vez hecho esto, el hardware automáticamente genera los protocolos de comunicación entre las unidades y que se pueden visualizar desde la PC.

4.5 Pantalla de Inicio

Figura 104. Pantalla de inicio del software LEGO MINDSTORMS unidad EV3 La pantalla de inicio le permite al usuario interactuar con una serie de recursos con que cuenta las unidades LEGO MINDSTORMS, entre las cuales se destacan las siguientes herramientas:

1. Página de inicio: le permite al usuario regresar siempre a la pantalla principal del aplicativo y que se muestra en la Figura anterior.

2. Agregar Proyecto: esta pestaña crea un espacio para que el usuario realice un nuevo proyecto o abra un proyecto anterior. En este espacio es donde se programa a la unidad EV3

(6)

COLECCIÓN MAESTROS N° 22

4. Misiones: las misiones son un conjunto de proyectos en hardware y software

para que el usuario cree un robot con base en planos, secuencias e instrucciones dadas por el fabricante. Las cinco opciones que se ofrecen son TRAK3R, SPIK3R, EV3RSTORM, R3PTAR y el GRIPP3R

5. Inicio Rápido: le ofrece al usuario un conjunto de videos, guías y ayudas en línea para la unidad EV3 y los robots que se proponen como misiones.

6. Noticias: lleva al usuario a presentaciones, animaciones e historias relacionadas con experiencias de otros usuarios con las unidades LEGO.

7. Más Robots: las cinco opciones de construcción de robots del fabricante no son las únicas; diversos usuarios de muchas partes exponen sus propias creaciones que sirven como modelos para personas que estén interesadas.

Estas opciones son interactivas, muy gráficas y atractivas para que el usuario amplíe sus experiencias creativas con estos dispositivos.

4.6 Área de trabajo para la unidad EV3

Para crear un programa que controle el robot, estando en la pantalla de inicio se accede a Agregar Proyecto y una vez aquí el programa crea una carpeta donde se almacena no solo el programa sino también archivos de imagen, sonido, otros documentos de apoyo,

propiedades, variables y Bloques. Esto es una gran mejora en el sentido que la aplicación organiza de forma automática una serie de recursos útiles para gestionar la construcción tanto del hardware como del software.

(7)

Manual de manejo de dispositivos Lego Mindstorms

Al iniciar un nuevo proyecto, en la parte superior izquierda aparece una pestaña; en este caso, con el nombre de Project y dentro de estas dos o más pestañas importantes: la primera son Propiedades del Proyecto y las segundas son propiamente los espacios donde se programa del robot. Se pueden agregar cuantas pestañas como programas diferentes se quieran construir.

La pestaña de propiedades tiene una estructura parecida a la que se muestra en la Figura 106; aquí hay varias secciones que se deben tener en cuenta. Primero, existe un conjunto de opciones para describir el proyecto, en la cual se pueden agregar imágenes, textos y videos que le permiten a otros usuarios entender la naturaleza de la aplicación creada por un usuario; hace las veces de una estructura de trazabilidad o bitácora que ilustra la forma como se van construyendo tanto el robot como el programa que lo gobierna y la explicación gráfica o textual de los recursos que contiene.

Exactamente debajo de –Descripción de Proyecto– hay una casilla de verificación, denominada Modo Deisy–Chain, con la cual es posible programar hasta cuatro unidades LEGO a la vez.

(8)

COLECCIÓN MAESTROS N° 22

La sección inferior tiene, a su vez, pestañas que contienen y organizan los elementos usados por los programas, como los archivos de imagen, de sonido, Bloques construidos por el usuario o descargados de otras fuentes, variable y arreglos que contienen información cuando se hace tratamiento de la información capturada por los sensores; y finalmente, un listado de archivos que pueden ser exportados.

Cuando el usuario accede a la pestaña del proyecto aparece una distribución similar a la mostrada en la Figura 107; aquí se pueden distinguir cinco áreas o secciones importantes.

Área de Programación: donde el usuario crea el programa que rige el Bloque, a partir de los Bloques de construcción que se encuentran en la parte inferior, la combinación intencionada y organizada de estos Bloques en el área de programación es la que finalmente se compila en envía a la unidad EV3.

Figura 107. Área de trabajo de la unidad EV3. Zona de Proyecto

Las pestañas de programación se encuentran en la parte inferior izquierda; aquí el usuario encuentra organizados por categorías los Bloques constructivos, que son conjuntos de instrucciones que gobiernan partes específicas del Bloque EV3, los

(9)

Manual de manejo de dispositivos Lego Mindstorms

motores, los sensores y la manera como se organiza, manipula, recibe y envía la información.

La sección del hardware, a su vez, contiene la información relacionada con el

hardware del Bloque EV3, los puntos de conexión de los motores, los sensores y el estado en que se encuentran. Esta sección permite también cargar los programas al Bloque EV3 o a los Bloques, si hubiera más de uno.

Figura 108. Barra de Herramientas

Finalmente, en la parte superior derecha se encuentra la barra de herramientas que le permite al usuario, entre otras cosas, gestionar el área de programación e interactuar con los recursos dentro de este espacio.

4.7 Pestañas de Bloques Programación

Las pestañas con Bloques de programación son, tal vez, el recurso más valioso del aplicativo de programación de la unidad EV3, pues sobre él es que gira todo el control de los LEGO. En ellas están todos los Bloques constructivos que gobiernan cada elemento del hardware, pero también del software. Están organizados en carpetas por colores, en seis grandes grupos:

• Pestaña de Acción

• Pestaña de Control de Flujo • Pestaña de Sensores

• Pestaña de Operaciones de Datos • Pestaña de Avanzados

• Pestaña de Mis Bloques

4.7.1 Pestañas de Acción

Esta categoría contiene todos los Bloques que controlan los actuadores como los motores, la pantalla, lámparas y parlantes.

(10)

COLECCIÓN MAESTROS N° 22

Figura 109. Bloques constructivos de Acción

A continuación se especifican cada uno de estos Bloques constructivos, los cuales son de color verde:

Figura 110. Bloques constructivos de la pestaña de Acción

4.7.2 Pestaña de Control de Flujo

Las pestañas de control de flujo tienen el objetivo de agrupar conjunto de otras instrucciones y ejecutarlas más de una vez o cuando se cumplan algunas condiciones específicas.

(11)

Manual de manejo de dispositivos Lego Mindstorms

La denominación de cada uno de los Bloques constructivos es:

Figura 112. Bloques Constructivos de la Pestaña de Flujo

Más adelante se detalla la naturaleza y funcionamiento de estos elementos.

4.7.3 Pestaña de Sensores

La pestaña de sensores, que es de color amarillo, contiene los controles de los diferentes sensores con que cuenta las unidades EV3

Figura 113. Pestaña de sensores de las unidades EV3

Estos sensores captan la información del mundo exterior y la transmiten a la unidad EV3; desde aquí se puede configurar la forma como se toman las medidas e inclusive la forma como deben tratarse estos datos. Cada sensor cumple con una función específica y de cierta manera son los ojos, oídos y tacto del robot.

(12)

COLECCIÓN MAESTROS N° 22

Figura 114. Bloques Constructivos de la pestaña de Sensores

Una de las particularidades de la unidad EV3 es que puede utilizar los sensores de la unidad NXT, pero no al revés; no todos los sensores de la unidad EV3 pueden ser utilizados en los NXT

4.7.4 Pestaña de Datos

La pestaña de datos le permite al usuario capturar y hacer manipulación de datos, al igual que operar algebraicamente con ellos.

Figura 115. Pestaña de Bloques de Datos

En la paleta de colores se le asigna el color rojo. Estos Bloques constructivos realizan operaciones matemáticas con datos asignados por el usuario o datos provenientes de los actuadores y sensores.

(13)

Manual de manejo de dispositivos Lego Mindstorms

Figura 116. Bloques Constructivos de la pestaña de Datos

Los Bloques de construcción en la pestaña de datos pueden también enviar instrucciones a los actuadores para que, dependiendo de situaciones específicas, tengan uno u otro comportamiento.

4.7.5 Pestaña de Bloques Avanzados

Los Bloques constructivos en la pestaña de Bloques avanzados vienen en color azul, en la paleta de colores que se encuentra en la parte inferior de la interfaz del usuario, tal como se muestra en la Figura 117.

(14)

COLECCIÓN MAESTROS N° 22

Estos Bloques constructivos para la unidad EV3 acceden a funciones más complejas, especialmente en lo relacionado con el envío y recibo de información y el control de parámetros especiales de actuadores.

Figura 118. Bloques Constructivos de la Pestaña de Avanzado

Algunos de estos Bloques necesitan tener activo la conexión Bluetooth y otros la conexión WiFi. En el presente texto no se hará énfasis en estos elementos, ya que se salen del objetivo del libro.

4.7.6 Mis Bloques

Esta pestaña contiene secuencias de instrucciones que los usuarios normalmente guardan.

(15)

Manual de manejo de dispositivos Lego Mindstorms

Estos son segmentos de programas que el usuario ha identificado como frecuentes y que por simplicidad guarda dentro de carpetas propias. Otros usuarios pueden construir sus propios Bloques y colocarlos a disposición de una comunidad o grupo de personas.

4.8 Sección de Hardware

La sección de Hardware, que se encuentra en la parte inferior derecha, tiene información relacionada tanto con el Bloque EV3, el estado en que se encuentra como los sensores y actuadores conectados a él, su estado y

funcionamiento. La sección de Hardware tiene en la parte derecha tres botones importantes.

1 El botón Descargar que envía el programa desarrollado a la unidad EV3.

2 El botón Descargar y Ejecutar, que envía el programa desarrollado por el usuario a la unidad EV3 para posteriormente ser ejecutado por esta.

3 El botón Descargar y Ejecutar Seleccionado, que precisamente descarga y ejecuta la parte del programa que el usuario haya escogido del conjunto de toda la programación.

En la parte derecha de la sección de Hardware se encuentran tres pestañas más que son:

• La pestaña de Información del Bloque, que contiene entre otras cosas el nivel de la batería, el nombre actual del Bloque que se está trabajando; la versión del firmware, que es el conjunto de instrucciones de máquina para propósitos específicos y que controla toda la circuitería de la unidad EV3, contiene también el tipo de conexión –USB, Bluetooth o WiFi– actual del dispositivo.

(16)

COLECCIÓN MAESTROS N° 22

• La pestaña de Vista de Puerto le muestra al usuario los diferentes dispositivos que se encuentran actualmente conectados a los puertos del EV3, el estado en tiempo real de cada uno e igualmente se puede configurar el funcionamiento de los mismos

Figura 121. Pestaña Vista de Puertos

• En la pestaña de Bloques EV3 Disponibles se brinda información relacionada con todos los Bloques EV3 que actualmente tienen conexión con la computadora, al igual que el tipo de conexión de cada uno. De esta forma, se puede gestionar y escoger con cuál unidad trabajar y la manera de hacerlo.

Figura 122. Pestaña de Bloques EV3 disponibles

Es posible que algunos motores o sensores de las unidades NXT no se puedan visualizar en esta sección, para lo cual el usuario debe gestionarlos de forma manual.

4.9 Bloques constructivos de acción

Los Bloques constructivos, tal como se explicó anteriormente, son grupos de rutinas que controlan de forma específica los servomotores, los sensores o la misma unidad EV3; simplifica ostensiblemente la programación de todo el conjunto si se compara

(17)

Manual de manejo de dispositivos Lego Mindstorms

con la programación directa en el Bloque, además de ser mucho más potente y versátil. A continuación se detalla cada una de las partes de algunos de estos Bloques; lo más representativos para los objetivos de este texto.

Los Bloques de acción son rutinas de programa que controlan especialmente los motores, lámparas y luces de las unidades LEGO, entre los Bloques de acción están:

4.10 Bloque de Motor Mediano

Este Bloque controla el motor mediano de las unidades LEGO MINDSTORMS; puede encender, apagar y controlar el nivel de potencia. Los comandos a los cuales se tiene acceso y control son:

Figura 123. Bloque de Control de Motor Mediano

El Control de Puerto le indica a la unidad EV3 y al usuario dónde está conectado el motor; en el caso de la Figura 123, el motor está conectado en el puerto A. Cuando se usa un motor de otro tipo de unidad es posible que el EV3 no lo reconozca, por tanto, se debe configurar manualmente.

La función de Selector de Modo permite seleccionar la forma con la cual el usuario quiere controlar el motor y una vez escogido –ver Figura 125–, las entradas cambian de forma automática.

(18)

COLECCIÓN MAESTROS N° 22

Figura 124. Modos del Motor Mediano

Los modos que el usuario puede escoger se muestran en la siguiente imagen.

Figura 125. Opciones del Selector de Modos

El modo Apagado detiene el motor que normalmente se arrancó en el modo

Encendido; en las entradas, aparece a su vez dos opciones más, Detener que frena bruscamente el motor y Continuar por Impulso que sencillamente le quita la energía del motor y continuará girando hasta que se le acabe el impulso inercial.

La potencia del motor se refiere a la fuerza o velocidad con que gira la máquina. Valores positivos hacen que gire a la derecha; valores negativos hacen que gire a la izquierda.

(19)

Manual de manejo de dispositivos Lego Mindstorms

El modo Encendido inicia el motor controlando la potencia y la dirección del motor con las entradas; el motor permanecerá energizado hasta que se detenga o se cambie por otro Bloque. La Figura 125 ilustra estas dos condiciones.

Figura 126. Modos de Encendido el Motor

Los modos encendidos del motor mediano por criterio, a su vez, se dividen en tres categorías importantes: encendido por rotación, encendido por tiempo y encendido por grados.

En Encendido por Rotación, el EV3 enciende el motor por el número de vueltas especificado en la entrada para luego apagar el motor y continuar con el siguiente Bloque.

En Encendido por Tiempo, la unidad enciende el motor por un tiempo igual al especificado en la entrada; al finalizar el mismo, apaga el motor y sigue con próximo Bloque.

En Encendido por Grados, pasa algo muy semejante a Encendido por Rotación con la diferencia de que, en vez de contar vueltas, el Bloque cuenta el giro medido en grados; cumplidos estos, la unidad apaga el motor y continúa con el próximo Bloque.

4.11 Bloque de Motor Grande

(20)

COLECCIÓN MAESTROS N° 22

Figura 127. Bloque de Control Grande El Control de Puerto indica al usuario dónde está conectado el motor grande; en el caso de la Figura 127, el motor está conectado en el puerto D.

La función de Selector de Modo permite seleccionar la forma con la cual se controla el motor grande y una vez escogido, las entradas cambian de forma automática. Los modos posibles que el usuario puede escoger se muestran en la Figura 129.

Figura 129. Opciones en el selector de modos El modo Apagado detiene el motor que normalmente se arrancó en el modo Encendido; en las entradas

(21)

Manual de manejo de dispositivos Lego Mindstorms

aparecen, a su vez, dos opciones más: Detener, que frena bruscamente el motor, y

Continuar por Impulso, que le quita la energía al motor, dejando que se detenga por inercia.

En el modo Encendido, el motor empieza a rodar controlando la potencia, velocidad y dirección con las entradas; el motor permanecerá energizado hasta que se detenga o se pase por otro Bloque. La Figura 128 ilustra estas dos condiciones.

Los modos encendidos del motor grande son idénticos a los modos de encendido del motor mediano por criterio, a su vez, se dividen en tres categorías importantes: encendido por rotación, por tiempo y por grados.

En Encendido por Rotación, el EV3 enciende el motor y lo mantiene funcionando por el número de vueltas especificado en la entrada, para luego apagar el motor y continuar con el siguiente Bloque.

En Encendido por Tiempo, la unidad enciende el motor por un tiempo igual al especificado en la entrada para el tiempo y al finalizar el mismo apaga el motor y sigue con próximo Bloque.

En Encendido por Grados, pasa algo muy semejante a Encendido por Rotación, con la diferencia de que, en vez de contar vueltas, el Bloque cuenta el giro medido en grados; cumplidos estos, la unidad apaga el motor y continua con el próximo Bloque.

En cuanto a la entrada de Potencia, el control registra un valor que va desde 100 hasta 100, siendo 0 el motor en reposo y 100 la máxima velocidad posible.

(22)

COLECCIÓN MAESTROS N° 22

Figura 130. Tipos de Encendido del motor Grande

(23)

Manual de manejo de dispositivos Lego Mindstorms

Como se puede apreciar, no hay diferencia sustantiva con respecto al control y movimiento del motor mediano.

4.12 Bloque Mover la Dirección

Los dos Bloques anteriores mueven un solo motor a la vez; sin embargo, una de las funcionalidades de las unidades LEGO MINDSTORMS cuando se configura el

hardware como un robot con movimiento traslacional y rotacional es poder hacerlo de forma eficiente. Para ello, considérese el robot siguiente.

Esta configuración tiene dos motores, cada uno controlando una rueda, la izquierda y la derecha, que permiten el avance o retroceso en línea recta o el avance o retroceso en curva; para lograr entonces estas acciones y efectos, ambos motores deben trabajar de forma organizada y sincrónica y un Bloque constructivo específico llamado Bloque Mover Dirección; permite realizar estas configuraciones de forma rápida.

Figura 132. Configuración en hardware de la unidad EV3 como un robot de movimiento simple

Fuente: Imagen adaptada de https://www.lego.com/en-us/MINDSTORMS

Con respecto a los dos Bloques anteriores, en el Bloque mover en la dirección hay bastantes similitudes en los botones de entrada, con excepción de uno Dirección.

(24)

COLECCIÓN MAESTROS N° 22

Figura 133. Bloque Control de Dirección

En el botón de Control de Puerto, se puede apreciar en la Figura 133 que están indicados dos puertos, B y C; sin embargo, es posible escoger cualquier combinación de puertos para controlar los motores que están conectados allí.

La entrada Dirección tiene precisamente el control de la dirección del movimiento del robot; es una escala que va de cero –robot moviéndose en línea recta– hasta 100 –robot moviéndose en una curva–. Es importante tener en cuenta que este valor no es un registro en grados sino es una escala porcentual; un valor, por ejemplo, de 100 hace que el robot gire a la derecha en una curva pronunciada durante el tiempo, grados o revoluciones que indique las otras entradas. Para lograr esto, la rueda derecha gira avanzando y la rueda izquierda gira retrocediendo. Estas curvas entonces se obtienen precisamente haciendo girar las ruedas con velocidades diferentes.

(25)

Manual de manejo de dispositivos Lego Mindstorms

4.13 Bloque Mover Tanque

El Bloque Mover Tanque tiene un comportamiento similar al Bloque Mover

Dirección, con la diferencia que el usuario en el anterior define una dirección y el sistema programa las velocidades y potencias de los motores de forma autónoma. En el Bloque Mover Tanque, el usuario puede determinar de forma independiente la velocidad y potencia de cada rueda; aspecto que no se puede ejecutar en el modo dirección y que resulta bastante útil para lograr movimientos más complejos y detallados.

Figura 135. Bloque Mover Tanque

Nótese en la Figura 135 que el Bloque le ofrece al usuario dos opciones de potencia: la primera es para el motor de la derecha y la segunda para el motor de la izquierda. Si ambas potencias son iguales el robot avanza; si hay alguna diferencia entre las potencias el robot empieza a tomar curvas o inclusive puede empezar a girar. El control de modo, por su parte, toma como referencia la rueda que gire con mayor potencia.

El modo encendido, por ejemplo, tiene el mismo principio explicado en los Bloques anteriores. En este Bloque se muestran dos potencias para cada motor.

(26)

COLECCIÓN MAESTROS N° 22

Figura 136. Modo Encendido para el Control Tanque

4.14 Bloque Pantalla

El Bloque Pantalla permite colocar una imagen o un texto en la pantalla del Bloque EV3; algunas de estas imágenes o textos vienen pre-establecidas por el fabricante; otros, los usuarios pueden crearlos desde cero.

(27)

Manual de manejo de dispositivos Lego Mindstorms

Figura 138. Bloque Pantalla

Los controles que se pueden visualizar en la imagen anterior son:

El Campo de Texto, donde el usuario puede escoger entre el conjunto de alternativas visuales que le ofrece LEGO, tal como se puede ver en la Figura 138. Aquí hay un conjunto de imágenes prediseñadas organizadas en carpetas y categorías, de forma tal que el usuario puede acceder más fácil a ellas y escoger la de su gusto, preferencia o necesidad. También es posible cargar imágenes de otras fuentes; sin embargo, esta acción queda como tema de profundización para el lector, quien puede encontrar información en los manuales técnicos y de ayuda de LEGO MINDSTORMS. La opción Vista Previa permite que el usuario pueda ver en la pantalla de la computadora, lo que se visualizará en la pantalla de la unidad EV3.

La Entrada Borrar Pantalla borra precisamente el contenido de la pantalla antes de cargar la siguiente imagen o texto, siempre y cuando su valor lógico sea verdadero. Si el valor lógico es falso, superpone la imagen anterior con la imagen que se va a cargar en la pantalla.

(28)

COLECCIÓN MAESTROS N° 22

Figura 139. Visualización de la imagen en la interfaz de la PC

Las entradas X e Y ubican la imagen en una posición determinada de la pantalla, iniciando en la parte superior izquierda de misma; la pantalla de la unidad EV3 tiene una dimensión de 177 pixeles de ancho por 127 pixeles de alto.

Figura 140. Dimensiones de la pantalla de la unidad EV3

Fuente: Imagen adaptada de https://www.lego.com/en-us/MINDSTORMS

Por tanto, la posición inicial de cualquier imagen no puede ser superior a estas dimensiones. Por otro lado, si la imagen tiene un Tamaño superior al área útil de la pantalla, la imagen simplemente se corta hasta donde la visual lo permita.

(29)

Manual de manejo de dispositivos Lego Mindstorms

Figura 141. Opciones del Selector de Modos

El Selector de Modos le ofrece al usuario diferentes posibilidades de control de las imágenes y texto que se ven en la pantalla; entre estas posibilidades están Texto, Formas, Imagen y Reiniciar Pantalla, tal como se muestra en la Figura 141.

Al escoger Texto, la unidad EV3 le permite al usuario escribir una palabra o una frase corta, que se especifica en el campo de texto. La opción Texto, a su vez, tiene otras dos opciones: Pixeles y Cuadrícula.

Figura 142. Campo de Texto en el Bloque Pantalla

En Pixeles, las entradas se pueden configurar en adición a lo ya visto, el color de texto, que puede ser negro o blando y el tamaño de la fuente que va en tres tamaños posibles. En la opción Cuadrícula se puede hacer lo mismo con la diferencia que las posiciones relativas X e Y se toman en forma de columnas y filas; cada columna, una con 8 pixeles aproximadamente de ancho y cada fila con 10 pixeles a su vez.

(30)

COLECCIÓN MAESTROS N° 22

Con la opción Formas, el Bloque EV3 le permite al usuario crear líneas, rectángulos, círculos y puntos. En la opción filas, las entradas X1, Y1 especifica el punto inicial y las entradas X2 e Y2 especifican a su vez el punto final.

En el caso del Círculo, las entradas X e Y especifican el centro del círculo, el radio del mismo y el color tanto de la línea como del contorno, tal como se pueden apreciar en la Figura 143.

Figura 143. Bloques para la construcción de figuras en la pantalla

Finalmente, cuando el Selector de Modo se posiciona en rectángulo, el EV3 crea un rectángulo donde la posición X e Y es el vértice izquierdo superior; las dos entradas siguientes son el ancho y el alto, respectivamente; y las dos últimas entradas tienen que ver con el relleno y el color del mismo.

4.15 Bloque Sonido

El Bloque Sonido tiene la misma intencionalidad del Bloque Pantalla y es proporcionarle al usuario una interacción dinámica y agradable; las entradas, de

(31)

Manual de manejo de dispositivos Lego Mindstorms

hecho, son similares a las del Bloque anterior. En la parte superior derecha está nombre del archivo, que identifica el archivo de audio que se está o se va a ejecutar; estos archivos de audio pueden ser tanto de los que vienen por defecto con la unidad como los archivos de audio proporcionado por otro fabricante o por el mismo usuario.

Figura 144. Opciones del Selector de Modo

En cuanto al Selector de Modo, la unidad ofrece cuatro opciones: Detener, Reproducir Archivo, Reproducir Tono y Reproducir Nota.

Figura 145. Bloque Sonido

(32)

COLECCIÓN MAESTROS N° 22

Con la opción Reproducir un Archivo, el usuario puede ejecutar un archivo de sonido preinstalado o guardado en el software LEGO, las alternativas de archivos se encuentran categorizadas y se pueden visualizar en la parte superior derecha del Bloque en Nombre del Archivo, pero también puede cargar un archivo propio de sonido si escoge la opción –Conectado–. La entrada Volumen controla el nivel de intensidad de sonido es una escala de 0 a 100, mientras que la entrada Tipo de Reproducción determina si el usuario espera a que termine el sonido antes que continúe el EV3 con el siguiente Bloque y si el sonido se repetirá.

Con la opción Reproducir Tono, el usuario puede crear un tono uniforme especificando la frecuencia o tono del sonido, el cual es un valor definido en Hertz –Hz– y que se encuentra en una de las entradas del Bloque.

Figura 146. Bloque Sonido en la opción Tono

El usuario especifica el tiempo que se ejecuta este sonido, con la entrada Duración, la cual es representada mediante un reloj.

Con la opción Reproducir Nota, la entrada le muestra al usuario las teclas de un piano con una estructura similar a la mostrada en la Figura 147.

(33)

Manual de manejo de dispositivos Lego Mindstorms

Una vez escogida la nota deseada, aparece en la entrada la codificación internacional para esa nota. La diferencia entre estos dos últimos Bloques es que Reproducir Nota

define valores precisos de las mismas, mientras que Reproducir Tono le permite al usuario escoger cualquier frecuencia, inclusive las mismas frecuencias de las notas musicales.

4.16 Bloque Luz de Estado del Bloque EV3

El Bloque Luz de estado del Bloque EV3 controla el conjunto de los diodos –rojo, naranja y verde– que rodea los Botones de la unidad EV3; este control puede apagar, encender o apagar y encender intermitentemente –pulso– estos diodos.

Figura 148. Bloque Luz de Estado del Bloque EV3

En el Selector de Modo, la unidad EV3 tiene tres opciones fundamentales: Apagado, Encendido y Reiniciar.

(34)

COLECCIÓN MAESTROS N° 22

Con la opción Apagado, todos los diodos del teclado se apagan. Ahora cuando un programa se está ejecutando, por defecto, los diodos verdes se encienden y empiezan a pulsar –encender intermitentemente–; sin embargo, el usuario puede cambiar estos colores y patrones a través del modo Encendido. Si se quiere regresar al modo que tiene el EV3 por defecto, la opción Reiniciar, cumple con esta función.

La opción Encendido tiene dos entradas por defecto: una es Color, que permite escoger uno de los tres colores disponibles –rojo, naranja y verde–; la segunda entrada es Pulso. Si este valor es Verdadero, encenderán los diodos intermitentemente; si la opción es falso, se mantendrán encendidos los diodos.

Los últimos siete Bloques son los Bloques de Acción de las unidades EV3; con ellos se controlan, en esencia, todos los actuadores que incluyen los servomotores, la pantalla y los amplificadores. Para más información se puede consultar el manual del usuario.

4.17 Bloques de Control de Flujo

Antes de poder analizar los Bloques de control de flujo, es importante tener en cuenta una herramienta importante: las estructuras de datos. A continuación se especifican las características de los cables de datos, que son la forma como LEGO MINDSTORMS hace este tratamiento.

4.18 Cable de Datos

En la sección anterior se hace referencia a un conjunto de datos, tanto de entrada como de salida, sin profundizar en la naturaleza de los mismos; sin embargo, para poder entender mejor las utilidades y potencialidades que tienen las unidades LEGO MINDSTORMS para el análisis y tratamiento de datos, es importante definir algunas de sus propiedades.

Por lo general, los Bloques tienen puertos de Entrada y Salida de Datos; si el lector ha sido detallista, en la forma como el fabricante los representa en los diagramas, se percatará en unas pequeñas pestañas que tienen en la parte superior, como en el caso de los Bloques de acción o en la parte inferior, algunas veces, en los Bloques que vienen explicados más adelante.

Los datos pueden ser numéricos, alfanuméricos o de texto, lógicos y en las unidades LEGO MINDSTORMS, se introducen dos más, que son los de secuencia numérica y los de secuencia lógica.

(35)

Manual de manejo de dispositivos Lego Mindstorms

Figura 150. Tipos de datos

Los datos numéricos guardan precisamente relación con cantidades numéricas y se clasifican entre otras formas, como se muestra en la tabla. Con estos datos se pueden realizar operaciones algebraicas. Los datos alfanuméricos son normalmente cadenas de texto, donde se pueden guardar letras, números y caracteres especiales, tales como:

u dat01 @12reg ucp loro

Con los datos alfanuméricos no se pueden realizar operaciones algebraicas, aunque se registren como solo números. Los datos lógicos representan estados por lo general binarios, como ejemplos de datos lógicos y su equivalencia:

Tabla 10. Valores lógicos de salida (estado)

Verdadero Falso

Sí No

1 0

De nuevo, como el caso anterior, no se pueden operar algebraicamente estados lógicos; no tiene sentido sumar un 0 lógico con un 1 lógico.1

Las Secuencias Numéricas y las Secuencias Lógicas son precisamente conjunto de datos numéricos o lógicos que se muestran en forma de arreglo. Una instrucción puede tener, por ejemplo, una secuencia de numéricos que representen diferentes

Un dato –para los intereses de este documento– es una información o colección de informaciones del algo, de alguien o de un sistema que, por lo general, se registra en un espacio de memoria y que permite comprender algo del estado del objeto analizado o también la intención o decisión de un usuario.

Tipos de datos Numéricos Enteros 0, 1, 2, 3, 4,… Flotantes -1, 0, 1.3, -2.451, Binarios 0 y 1

(36)

COLECCIÓN MAESTROS N° 22

velocidades para un motor o también, por ejemplo, un sensor puede enviar un conjunto de datos de un mismo parámetro a la memoria del EV3.

Figura 151. Tipos de entradas y salidas de datos para los Bloques

Los Bloques de las unidades EV3 tienen Entradas y Salidas para el procesamiento de datos; esto le permite un mejor control al usuario del comportamiento del robot. En la Figura 151 se muestra en la segunda columna las entradas posibles que tienen algunos Bloques; la última columna muestra las salidas que tienen algunos Bloques. Con esta información, tanto de entrada como de salida es posible realizar un mejor control de las unidades, a la vez que procesar con mejor eficiencia y precisión el conjunto de datos que puede almacenar.

Bloques de Control de Flujo

Los Bloques Control de flujo son la forma como el usuario le indica al programa como debe ejecutarse y qué comando y esperas debe hacer para desarrollar una u otra parte del programa. Los Bloques de control de flujo usan, por lo general, información proveniente de los sensores, pero también pueden permitir ejecutar partes específicas del programa o dar ciclos anidados de rutinas.

4.19 Bloque Iniciar

(37)

Manual de manejo de dispositivos Lego Mindstorms

de una secuencia que se ejecutará simultáneamente una vez arranque el programa completo.

Figura 152. Bloque Iniciar

En todos los casos, todas las secuencias deben iniciar por este Bloque, si no es así sencillamente el conjunto de instrucciones de esta secuencia NO se ejecutan.

4.20 Bloque Esperar en Modo Comparar

Este es uno de los Bloques más importantes que tienen las unidades EV3 en su programación elemental; su función es precisamente esperar a que suceda algo para continuar con la rutina y ese algo puede ser un determinado tiempo, que el valor de un sensor cambie o que el valor de un sensor llegue a un determinado valor; en este sentido, el Bloque esperar está íntimamente relacionado con los sensores y sus estados. En el botón de selector de modo de este Bloque aparecen ocho funciones, que se ilustran en la Figura 153.

(38)

COLECCIÓN MAESTROS N° 22

En el modo Tiempo, el Bloque EV3 espera una cantidad de tiempo especificada por el usuario en la entrada Segundos, el cual se mide en segundos, pudiendo tener valores decimales; si por ejemplo, el usuario marca 2,5s, el robot espera dos segundos y medio antes de continuar con la siguiente instrucción. El tiempo se contabiliza desde que la unidad empieza a esperar.

Para los demás modos hay, por lo general, dos opciones más: Comparar y Cambiar; en la opción Cambiar, el EV3 lee el valor inicial que tiene el sensor y esperará a que ese mismo sensor cambie a un valor específico. El usuario puede escoger la forma en que se hace ese cambio, puede ser esperar a que se incremente el valor registrado por el sensor, a que disminuya o ambos, más adelante se detalla esta función.

Con la opción Comparar, el Bloque EV3 espera que el valor de un sensor llegue a un valor determinado o Cantidad; por ello, la unidad lee constantemente el valor del sensor y lo compara con un valor límite o valores específicos que el usuario preestablece en las entradas del Bloque. Hay que prestar especial atención en seleccionar adecuadamente el puerto donde está el sensor que debe recibir la señal de control y que conecta con el Bloque de espera; la Figura 156 ilustra de forma general la estructura de este Bloque en una configuración típica.

Figura 154. Opciones

(39)

Manual de manejo de dispositivos Lego Mindstorms

Figura 156. Estructura del Bloque Espera

Estos Bloques, adicionalmente a las Entradas, tienen salidas, las cuales pueden ser señales numéricas o lógicas; en secciones más adelante se analizan estas salidas de algunos Bloques de interés para el presente libro.

El Modo Botones del Bloque EV3, en la opción comparar, hace que la unidad EV3 espere hasta que el usuario presione un botón, un conjunto de botones a la vez o no presione ningún botón antes de seguir.

Figura 157. Bloque Esperar en la opción Conjunto de Botones

En el Conjunto de id., de botones del Bloque EV3 se facilita al usuario con qué botones desea interactuar; puede ser más de uno, la Figura 159 ilustra esta situación. En la opción Estado es posibles escoger si la acción se ejecuta con No Presionado

(40)

COLECCIÓN MAESTROS N° 22

Figura 158. Opciones dentro de Comparar para el Bloque de Espera en el modo de sensor de color

Figura 159. Opciones en las entradas del Bloque Botones del EV3

La Salida Valor Medido indica al usuario qué botón fue presionado; esta herramienta y su utilización se discute más adelante.

El Modo Sensor de Color, en la opción Comparar, tiene a su vez otras tres opciones más a saber: Color, Intensidad de la luz reflejada e Intensidad de la luz natural.

(41)

Manual de manejo de dispositivos Lego Mindstorms

Nótese en la Figura 160 que la entrada Comparar tipo cuando el Modo es Color define un conjunto de 8 valores; el primero sin señal y el último, un café oscuro. En el modo Intensidad de Luz Reflejada e Intensidad de Luz Ambiental, la entrada

Comparar Tipo tiene relaciones de igualdad y desigualdad, que desde luego permite hacer la comparación con el valor que el usuario registra en la entrada de Valor Límite. El último modo, Intensidad de Luz Ambiental, le permite al sensor estimar cuándo en un cuarto se enciende o apaga la luz.

Figura 161. Opciones dentro de Comparar para el Bloque de Espera en Modo de Rotación del Motor

En el modo Rotación del Motor aparecen tres opciones más dentro de la opción

Comparar: grados, rotaciones y potencial actual.

Figura 162. Opciones de Comparar en Modo Rotación del Motor

De la misma forma que en el modo anterior, el Bloque constructivo en cada caso permite al usuario determinar un valor límite o de referencia y medir las rotaciones del sensor, ya sea configurado en grados, en rotaciones o en la potencia actual del motor.

(42)

COLECCIÓN MAESTROS N° 22

Figura 163. Bloque Esperar en el modo Táctil

En el modo Temporizador, la unidad EV3 puede medir intervalos de tiempo y aunque está programado para que funcione como sensor, no necesita puerto. La unidad viene por defecto con ocho temporizadores, lo que implica que puede medir ocho cosas a la vez –o simultáneamente–, con la ventaja que el usuario puede reiniciar un temporizador a cero en cualquier parte del programa, cosa que no es posible hacer simplemente midiendo tiempo.

Figura 164. Bloque Esperar en Modo Temporizador

En la Figura 164 se muestran los ocho temporizadores: la entrada de Tipo de Comparación y el valor de referencia. Este Bloque constructivo funciona mejor cuando se integra a un sensor de temporizador, ya que desde él se puede reiniciar en

(43)

Manual de manejo de dispositivos Lego Mindstorms

En el Modo Táctil, cuando se selecciona la opción de comparar, el Bloque Constructivo continuamente va probando el estado del sensor de contacto. En

Comparar Tipo, el usuario puede escoger entre tres opciones, No Presionado,

Presionado y En Contacto, tal como se muestra en la Figura 165. Nótese que en todos estos Bloques constructivos aparece al final una salida, que informa al usuario el estado del sensor presionado a fin de que esta información se pueda trasmitir a otros Bloques.

Figura 165. Opciones del Bloque Entrada en el modo Sensor Infrarrojo.

El modo Sensor Infrarrojo permite trabajar con el sensor de proximidad de la unidad EV3, al escoger la opción Comparar; sin embargo, también viene con otras alternativas que no se trabajan en esta sección y son las balizas. En la opción

Proximidad del conjunto de alternativas aparece una estructura similar a las presentadas en la siguiente Figura y que tiene un comportamiento muy similar a los mostrados en los Bloques anteriores.

Figura 166. Bloque Constructivo de Espera en el modo Proximidad

Nótese que el comparador está en la opción 4, que corresponde a valores menores que al valor límite de 50. Aquí es importante recordar que el sensor de proximidad tiene un alcance de 250 cm (valores por encima no los puede medir, por tanto, no tiene sentido un límite superior a esto) e igualmente, una salida que comunica el valor entregado al sensor a otros Bloques, si fuera necesario.

(44)

COLECCIÓN MAESTROS N° 22

4.21 El Bloque Esperar en el Modo Cambiar

En la sección anterior se hace una introducción sobre las dos alternativas que tiene el Bloque Esperar y que son Comparar y Cambiar; en el primer modo, el Bloque continuamente detecta el estado de un sensor y compara ese estado con un valor límite definido por el usuario, para así tomar una decisión. En esta parte se analiza el Modo Cambiar del mismo Bloque constructivo.

El Modo Cambiar en las unidades LEGO MINDSTORMS EV3 implica permitirle al Bloque tomar decisiones una vez cambien el valor registrado por un sensor en un determinado valor y en una determinada dirección. Tiene un comportamiento muy similar al modo Comparar, por lo que en esta sección no se va a hacer mucho énfasis en esta opción.

Figura 167. Dirección de la variación

Figura 168. Bloque Esperar en opción Cambio

El Bloque Constructivo Esperar en la opción Cambio en cada Modo, tiene una estructura similar a la mostrada en la Figura anterior. Hay un Selector de Puerto, con el cual el usuario determina que sensor quiere registrar, un Selector de Modo que indica al Bloque con qué sensor o motor se está registrando los valores, la entrada Dirección le indica al Bloque como quiere registrar el cambio, que puede ser

(45)

Manual de manejo de dispositivos Lego Mindstorms

incremental –aumentar–, decrementar –disminuir– o bidireccional –cualquiera–. Es decir, el usuario puede determinar una acción del Bloque si el valor del sensor aumenta cierto valor, si disminuye no importa, o lo contrario determinar una acción solo cuando el valor registrado disminuya sin importar cuánto aumente, o cuando cambie en cualquier dirección. La entrada Cantidad define, por parte del usuario, el valor que debe cambiar el sensor antes de tomar una decisión; algunos modos no tiene esta opción, ya que no tiene sentido el registro de algunas magnitudes sino solamente el cambio, tal como sucede con el sensor de tacto.

En el modo Botones del Bloque EV3, en la opción cambiar, aparece un Bloque constructivo similar al mostrado en la Figura 169.

Figura 169. Bloque Espera en el modo Botones del Bloque EV3

En esta configuración, el Bloque EV3 espera a que se presione o se suelte cualquiera de los botones del Bloque EV3. La id del botón que se presiona o libera se muestra en Botón cambiado; nótese que aquí no es necesario definir un rango pues el cambio es en un estado binario, presionado o liberado.

El Bloque Esperar en el modo Táctil y en la opción Cambiar, tiene una estructura similar a la mostrada en la Figura 170.

(46)

COLECCIÓN MAESTROS N° 22

En esta configuración, el EV3 registra el valor inicial del sensor de presión o táctil, quedando a la espera de cualquier cambio y una vez se suelte este permite el cambio a la siguiente instrucción. Aquí tampoco hay un valor de cambio definido por el usuario, pues solamente existen dos posibles –presionado o liberado– y el estado siempre será uno u otro.

En el modo Sensor de Color y en la opción Cambiar hay tres alternativas posibles que se muestran en la Figura 171.

Figura 171. Bloque Sensor de Color en varios modos

En la opción Color, el EV3 permite determinar una acción cuando el color cambia, sin ninguna otra entrada; con las opciones Intensidad de Luz Reflejada y con

Intensidad de Luz Ambiental se puede establecer la dirección de ese cambio y la cantidad que debe cambiar para permitir la acción siguiente en el Bloque. Las tres alternativas tienen también una salida, la cual envía el valor registrado del cambio a fin de que pueda ese dato ser utilizado en otra parte del programa.

En el modo Sensor Infrarrojo, con la opción Cambiar y dentro de esta, escogida la opción proximidad, se puede programar al EV3 para que espere el tiempo que sea necesario para que la distancia a un objeto en su ruta a otro objeto sólido, cambie a un valor determinado.

Figura 172. Bloque Espera en el Modo Infrarrojo con la opción cambiar

De nuevo tiene las dos entradas, una para definir el sentido del cambio –incremento, decremento o en cualquier sentido– y la segunda, el valor de ese cambio.

(47)

Manual de manejo de dispositivos Lego Mindstorms

En el modo Temporizador y dentro de este en Cambiar, aparece una estructura similar a la mostrada.

Figura 173. Bloque Espera en modo Temporizador con opción Cambiar

Figura 174. Opciones del Bloque de Bucle

La primera entrada le permite al usuario escoger uno de los ocho temporizadores del Bloque; en la segunda entrada el valor de cambio que debe esperar. Nótese que por la misma naturaleza incremental de un contador o temporizador, no tiene sentido hablar de decrementos.

4.22 Bloque Bucle

Un bucle es una estructura de programación que se repite. En el caso de programación de las unidades EV3, las instrucciones que se repiten son las que están dentro del bucle y la repetición puede hacerse ya sea indefinidamente, un número finito y determinado de veces y también hasta que se cumpla una condición en un sensor o

(48)

COLECCIÓN MAESTROS N° 22

Figura 175. Bloque para un Bucle-Loop

Nótese que el bucle puede recibir cualquier nombre; una vez identificado en la parte superior, igualmente posee un conjunto de entradas que establecen los criterios para terminar los ciclos para pasar a la instrucción siguiente que esté por fuera del bucle, y también una salida que indica cuántas veces se ejecutó el conjunto de instrucciones. El Selector de Modo, una vez desplegado debe visualizar una lista de opciones tal como se muestra en la Figura 176. Estas opciones permiten controlar los ciclos del bucle dependiendo de la señal enviada por un sensor, pero también lo pueden controlar desde un contador de ciclo, un estado lógico, un mensaje de texto, entre otros.

(49)

Manual de manejo de dispositivos Lego Mindstorms

Nótese por ejemplo en la Figura 176, dos modos en que se puede configurar este sensor, en el modo Botones del Bloque EV3, el conjunto ID de Botones indica qué botón o conjunto de ellos se deben presionar para detener el bucle, al igual que el estado que debe tener para esta acción.

El segundo modo, mostrado en la Figura 176, ilustra el Bloque Bucle en modo Comparar Intensidad de Luz Reflejada. Nótese que las entradas están para hacer comparaciones con valores MENORES y el límite se encuentra en 50; una vez el sensor envíe una señal de Luz Reflejada menor a 50 unidades, este bucle se detiene y se continúan con las instrucciones que le sigan.

Figura 177. Dos modos de configuración de Bloque EV3

En la Figura 177 se muestra un bucle que se repite indefinidamente; esto implica que el conjunto de instrucciones que puede contener se ejecutarán hasta que el usuario detenga forzosamente la unidad EV3 a través del botón de comando en el Bloque directamente. La segunda Figura ilustra un bucle que se detendrá apenas aparezca en la entrada una condición lógica –sea esta verdadera o falsa–. Se deja al lector una exploración más detallada del conjunto de instrucciones que tiene esta opción.

4.23 Bloque Interruptor

El Bloque Interruptor tiene un comportamiento equivalente a la instrucción CASE cuando se programaba en otros lenguajes. Su función es ejecutar instrucciones específicas –sentencias–dependiendo de una condición que se evalúa al principio del Bloque en las entradas.

(50)

COLECCIÓN MAESTROS N° 22

Figura 178. . Opciones en el Selector de Modo

Figura 179. Bloque Interruptor para programación del EV3- Switch Case

La Figura 179 muestra un interruptor configurado con el sensor de proximidad en el selector de modo; aquí se ha dispuesto un punto de comparación con respecto a 50 cm. Si el sensor determina que el robot se encuentra a menos de esta distancia – condición verdadera–, se debe ejecutar la Sentencia 1; si por el contrario, la condición no se cumple –condición falsa en la entrada–, se debe ejecutar la sentencia 2.

(51)

Manual de manejo de dispositivos Lego Mindstorms

En el ejemplo ilustrado se tienen dos posibles situaciones: que esté a menos de 50 cm y que esté a más de 50 cm; sin embargo, en otros modos es posible tener más de dos grupos de sentencias. Para esto, considérese el Bloque Interruptor configurado en el modo Botones del Bloque EV3, en la opción Medida; una vez allí debe aparecer una estructura semejante a la mostrada a continuación.

Figura 180. Bloque Interruptor en el modo Botones del EV3

En la parte superior izquierda se puede apreciar un botón con un signo (+); aquí el usuario puede agregar más casos, como por ejemplo, un conjunto de instrucciones cuando el usuario presiona un determinado botón en el Bloque; como este tiene cinco botones de acceso para el usuario, es posible entonces tener cinco casos diferentes.

4.24 Interruptor de Bucle

El Bloque Interrupción del bucle anticipa la terminación de un Bucle, haciendo que no se ejecuten más las sentencias dentro de él y continuando así con los Bloques posteriores. Esta interrupción se hace ya sea por medio de una condición inesperada diferente a las contempladas dentro de la instrucción o también dentro de un conjunto

(52)

COLECCIÓN MAESTROS N° 22

Figura 181. Bloque Interrupción del Bucle-Break

En este Bloque solo se tiene un modo; el usuario debe especificar el nombre del Bloque, del cual se desplegará una lista de opciones. Una vez el programa llegue a este Bloque, el bucle nombrado que se esté ejecutando en cualquier otra parte del programa se detendrá inmediatamente, continuando con las instrucciones que siguen.

4.25 Operaciones con Datos

Los Bloques de datos son estructuras que tienen las unidades EV3, cuya función es permitirle al usuario gestionar los datos recogidos por los sensores, pero también realizar operaciones matemáticas o lógicas con estos o con otros datos definidos dentro de la programación del Bloque. Entre los Bloques constructivos disponibles en la versión estándar, están:

4.26 Bloque Variables

Una Variable es una estructura algebraica que, en términos computacionales, realiza una asignación de memoria única para que se pueda almacenar una información que puede ser un dato numérico, un dato alfanumérico o un dato lógico.

(53)

Manual de manejo de dispositivos Lego Mindstorms

El Bloque variable le permite al usuario recuperar esta información –leer la variable– o también guardar un dato –escribir una variable–, con el fin de utilizarla para que la unidad EV3 pueda así tomar decisiones más adelante.

El usuario puede crear cuantas variables desee o necesite, teniendo en cuenta las siguientes consideraciones:

• Debe asignar un nombre a cada variable. No puede tener dos o más variables con el mismo nombre; se recomienda usar un nombre que le recuerde la naturaleza de la variable que se está usando.

• Una vez sobre-escrita el valor de una variable, el dato que inicialmente se encontraba allí se borra y no puede ya recuperarlo.

• Una vez definida una variable y asignado un valor de la misma, se puede usar en cualquier parte del programa, ya sea escribiéndola o leyéndola.

La estructura básica del Bloque variable se muestra en la Figura 185.

Figura 185. Estructura del Bloque Variable

Las variables se agregan en la parte superior del Bloque, donde se especifica su nombre con una estructura semejante a la mostrada en la Figura 185. El selector de modo le permite establecer al usuario lo que desea hacer con la variable, ya sea sobre-escribir el valor que posee actualmente para almacenar un dato de interés proveniente de un sensor o de otra parte del programa, o también leer el valor almacenado en la variable, para usarlo discrecionalmente en alguna otra operación.

(54)

COLECCIÓN MAESTROS N° 22

Una vez se especifica en Modo el tipo de acción a ejecutar, el usuario debe definir la naturaleza del dato que quiere guardar o leer; entre las opciones que tiene la programación del EV3, están las mostradas en la Figura 186:

Figura 186. Opciones para el tipo de datos que se almacena o se lee

El usuario, al definir el tipo de dato a utilizar –Numérico, alfanumérico o lógico–, asegura la integridad de la información que está gestionando; no es lo mismo almacenar o leer un 1 como texto, que un 1 como número. Con el primero no se pueden hacer operaciones algebraicas, mientras que con el segundo sí es posible.

4.27 Bloque Constantes

El Bloque Constante le permite al usuario ingresar un dato –número, alfanumérico o lógico– para que pueda ser utilizado como una constante en diferentes partes de un mismo programa, al cambiar el valor de la constante; todos los demás Bloques que usen esta constante se actualizan automáticamente.

(55)

Manual de manejo de dispositivos Lego Mindstorms

El selector de modo, al igual que en el Bloque anterior, le permite al usuario definir el tipo de dato a trabajar, sea este numérico, alfanumérico o lógico, pero también secuencias de estos. A diferencia de las variables, las constantes únicamente las puede definir el usuario, especificando su valor en Campo para el Dato, que se encuentra en la parte superior del Bloque.

4.28 Bloque Secuencias

Resulta útil comparar en un Bloque Secuencia, con el arreglo algebraico de un vector; este último es una estructura de datos, donde la posición de cada elemento es única e indica algo.

Figura 188. Representación de vectores en R³

En este caso, el vector se define por tres componentes que corresponden a las proyecciones ortogonales del vector sobre los ejes coordenados; nótese que cada elemento está sujeto a representar a cada eje. En el caso de Bloque Secuencia para las unidades EV3, se tiene entonces de forma equivalente un arreglo vectorial definido por unos espacios de memoria, donde se pueden guardar datos numéricos o datos lógicos.

Para ello, el usuario puede imaginarse una secuencia como un conjunto de casilleros todos juntos e identificados por unos números denominados índices, que van desde el cero hasta la última casilla menos 1, es decir, si son 100 espacios –casilleros–, su numeración va del 0 al 99.

(56)

COLECCIÓN MAESTROS N° 22

Figura 189. Estructura de una secuencia o arreglo

Figura 190. Opciones en el Selector de modo

En cada casillero se puede guardar un número o un estado lógico, pero no un texto. Los elementos que tiene este Bloque se pueden ver en la Figura 191.

Figura 191. Estructura básica del Bloque Secuencia

El Bloque tiene un Selector de Modo, un conjunto de entradas y una salida. En el Selector de Modo, el usuario puede escoger entre varias opciones que ofrece la programación y que se muestra en la Figura 190; estas son: Anexar, Leer en el Índice, Escribir en el Índice y Longitud. Para cada opción, a su vez, aparecen dos opciones más que permiten escoger la naturaleza del dato que se va a guardar o que se va a leer; estos son: datos numéricos y datos lógicos.

(57)

Manual de manejo de dispositivos Lego Mindstorms

4.28.1 Opción Anexar

El modo Anexar agrega un elemento numérico o lógico siempre al final de una secuencia existente en el Bloque; para ello, considérese la Figura 192, donde se pueden apreciar dos entradas y una salida. En la entrada Secuencia con Parámetros de Entrada, el usuario especifica cada elemento almacenado dentro de la secuencia y que por defecto trae el valor de 0; en la entrada Valor se define el nuevo dato definido por el usuario y que hará parte de la secuencia, de nuevo hay que recordar que este dato siempre se anexará al final.

Figura 192. Modo Anexar en el Bloque Secuencias

La salida Secuencia con Parámetros de Salida indica la nueva secuencia después de anexar al final el nuevo dato, a fin de que el usuario pueda emplear estos valores en otra parte de la programación.

La entrada Secuencia con parámetros de entrada guarda la estructura previa con que cuenta el Bloque y, adicionalmente, el valor que será agregado al final, el cual siempre estará al final de la secuencia. Si el usuario determina que este espacio quede en blanco, el Bloque creará una nueva secuencia iniciando con el dato que está en ella.

4.28.2 Opción Leer en el Índice

(58)

COLECCIÓN MAESTROS N° 22

En ella, una vez el Selector de Modo está en la opción Leer Índice, el Bloque muestra la estructura secuencial almacenada en la entrada; elemento seguido, muestra el índice como la posición de memoria donde se almacena el dato.

Figura 193. Modo Leer Índice en el Bloque de Secuencias

Este índice inicia con CERO –0– para señalar la primera posición y va nombrando las demás posiciones en orden ascendente. Si en esta entrada el usuario coloca 3, por ejemplo, le está pidiendo al Bloque que devuelva el valor guardado en la posición número 2, que corresponde a la salida Valor.

4.28.3 Modo Escribir en Índice.

El modo Escribir en Índice le permite al usuario cambiar cualquier valor de una secuencia de datos, sean estos numéricos o lógicos.

(59)

Manual de manejo de dispositivos Lego Mindstorms

En el modo mostrado en la Figura 194 se muestran tres entradas: la primera es la

Secuencia con Parámetros de Entrada, que contiene los datos numéricos o lógicos almacenados iniciales; la segunda entrada es el índice que le indica al Bloque el dato específico que se quiere cambiar; y la tercera entrada es propiamente el Dato que el usuario pretende introducir a la secuencia. Una vez se haya hecho este cambio, toda la secuencia lógica pasa a la única salida con que cuenta este Bloque, de forma que pueda el usuario disponer de la nueva secuencia.

4.28.4 Longitud

Cuando este Bloque se configura en el modo Longitud se obtiene el número de datos de la secuencia, también conocido como longitud de cadena.

Figura 195. Bloque Secuencia en el modo Longitud

Una secuencia sin datos tiene una longitud CERO, y así sucesivamente.

4.29. Bloque Operaciones Lógicas

El Bloque de operaciones lógicas tiene la función de realizar operaciones binarias entre dos cantidades lógicas, aplicando el álgebra de Boole. La estructura básica de este Bloque es:

(60)

COLECCIÓN MAESTROS N° 22

Figura 196. Modos en el Bloque Operaciones Lógicas

Figura 197. Bloque Operaciones Lógicas

El Selector de Modo ofrece a su vez las opciones lógicas AND, OR, XOR y NOT; tiene también dos entradas a las cuales se les puede definir su valor como VERDADERO o FALSO y una única salida que contiene el resultado de la operación lógica, definida por el usuario. La Figura 198 ilustra claramente esta situación.

(61)

Manual de manejo de dispositivos Lego Mindstorms

Figura 198. Salidas del Bloque Operaciones Lógicas en diversos modos.

De la misma manera que en compuertas lógicas, es posible configurar varios Bloques para conformar una estructura más compleja.

4.30 Bloque Matemáticas

El Bloque matemáticas, de forma análoga al Bloque presentado en la sección anterior, realiza operaciones elementales binarias entre dos números; estas son: suma, resta, multiplicación, división, valor absoluto, raíz cuadrada, exponenciación o una combinación de ellas.

(62)

COLECCIÓN MAESTROS N° 22

Una vez el usuario especifica la operación que quiere realizar y los números o cantidades también están definidos en cada entrada, el Bloque procede a realizar la operación indicada.

La opción Avanzado, en el selector de modo, permite realizar operaciones más complejas que las dadas por las opciones mono-arias o binarias anteriores; para ellas, considérese la Figura 202 del Bloque Matemática en modo Avanzado.

Figura 202. Opciones del Selector de Modo

Figura 203. Bloque Matemática en el Modo Avanzado

El usuario puede definir hasta cuatro entradas diferentes con valores enteros o decimales. En la parte superior derecha del Bloque está una casilla donde puede escribir una ecuación con funciones más complejas, como se muestra en la Figura 203 de la barra lateral. Una vez se ejecuta el programa, el Bloque realiza las operaciones indicadas con los datos cargados en la entradas para, finalmente, dejar ese resultado en el botón de salida.

(63)

Manual de manejo de dispositivos Lego Mindstorms

Aquellas entradas que no se necesitan simplemente se dejan en cero o en blanco; si la ecuación no emplea esa entrada, el valor que posea no va a afectar el resultado.

4.31 Bloque Redondear

El Bloque redondear toma un número, por lo general decimal y, a partir de él y de la decisión del usuario, lo redondea o aproxima a cierto valor. El Selector de Modo brinda cuatro opciones para el tratamiento de estos datos (Figura 204).

Figura 204. Bloque Redondear

El Bloque tiene una o dos entradas, dependiendo del modo y una salida.

4.31.1 Modo Al más cercano

Este modo toma el valor que encuentra en la entrada y lo redondea al entero más cercano, sea este por encima –mayor– o por debajo –menos–. Por ejemplo: si el valor es 2,4 o un poco inferior, redondea con resultado de 2; si por el contrario, el valor es 2,5 o un poco superior, redondea a 3.

4.31.2 Redondear hacia Arriba o Redondear hacia abajo

Estas dos formas son muy similares, por lo que se trabajan de forma simultánea. En el modo redondear hacia arriba, el valor que se encuentra en la entrada del Bloque se aproxima al entero inmediatamente superior, sin importar el valor de la entrada;

(64)

COLECCIÓN MAESTROS N° 22

por ejemplo: si el valor es 2,1; 2,2; 2,4; 2,6; 2,7; ó 2,9, en todos los casos redondea hasta 3.

En modo Redondear hacia abajo, el sistema toma el valor en la entrada del Bloque y lo aproxima al valor inmediatamente menor, sin importar cuál sea; por ejemplo: si el valor es 2,1; 2.2; 2.4; 2.6; 2.7; ó 2.9, en todos los casos redondea hasta 2.

4.31.3 Truncar

En este modo, el usuario define la cantidad de decimales que debe tener un número sin aplicar las reglas básicas de redondeo; simplemente lo que hace el Bloque es eliminar –truncar– el resto de decimales.

Figura 205. Bloque Redondear en Modo Truncar

Una vez define el valor decimal en la entrada, el usuario estima la cantidad de números decimales que debe tener la nueva cantidad y que se define en la segunda entrada. Luego, el resultado aparece en la única salida que tiene el Bloque.

4.32 Bloque Comparar

El Bloque comparar realiza precisamente esa función con dos cantidades numéricas, emitiendo un resultado lógico. Las opciones de comparación se muestra en la Figura 206; hay seis alternativas posibles y la comparación entre las cantidades se hace de izquierda a derecha.

(65)

Manual de manejo de dispositivos Lego Mindstorms

Figura 206. Opciones en el Selector de Modo del Bloque Comparar

El usuario o el programa definen dos cantidades que van a las dos entradas del Bloque –a y b–, respectivamente; luego se hace la comparación según sea la configuración en el selector de modo.

Figura 207. Bloque Comparar

La salida es una cantidad lógica, es decir, la comparación se hace en términos de verdadero o falso, en el resultado o salida del Bloque.

4.33 Bloque Rango

El Bloque rango tiene una función muy similar a la del Bloque comparar: permite a la unidad EV3 determinar si un número está entre dos números definidos previamente por el usuario o del programa, o si está por fuera.

Referencias

Documento similar

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Gran parte de la información básica y características del LEGO Mindstorms NXT y de sus distintos componentes, necesarias para la elaboración de este proyecto, se

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

La determinación molecular es esencial para continuar optimizando el abordaje del cáncer de pulmón, por lo que es necesaria su inclusión en la cartera de servicios del Sistema