Comandos avanzados

Si seleccionamos la segunda pestaña , accedemos a la colección completa de bloques, más genéricos, pero que admiten una configuración más compleja.

Al colocar el cursor sobre cada uno de los bloques se despliega la colección de comandos asociados a ese bloque:

BLOQUES COMUNES

La primera opción contiene todos los bloques de los comandos básicos. Se arrastran hasta la viga de programación y sus opciones son las mismas que se han visto ya:

BLOQUES DE ACCIÓN

De forma similar, la segunda opción contiene bloques de comandos algo más ampliados que los básicos:

Al arrastrar el bloque de motor podemos comprobar que el cuadro de propiedades varía ligeramente del que ya conocíamos: ahora se trata del control de un único motor y además aparece un apartado que indica Control: Potencia del motor. Se trata de una opción para que el bloque emita una señal con el valor de la velocidad a que está girando.

Las otras novedades son los bloques para emitir una comunicación vía Bluetooth:

Y dos bloques para encender o apagar lámparas, una de tres diodos y la normal con una bombilla, que es con la que cuentan los equipos:

BLOQUES DE SENSOR

Aquí se agrupan los comandos para activar el sensor y analizar qué valor se recibe de él:

Los cuatro primeros ya los conocíamos, pero ahora, al arrastrarlos al espacio de programación podemos comprobar que sólo aparece el bloque del sensor, con un pequeño cuadro "colgando" del bloque principal. Cuando el sensor de contacto se active, emitirá la señal de verdadero. En la ventana de propiedades podemos decidir si el sensor se activa al ser pulsado, al ser liberado o al producirse una pulsación y liberación (chocado):

Esta señal se comunicará a otro bloque, y para ello se coloca el cursor en la garra del cuadrado y cuando se transforma en un "carrete de hilo" se arrastra la línea de comunicación hasta el bloque que corresponda:

Seguramente que hasta ahora no hemos sido conscientes de la existencia de un pequeño escalón en la parte inferior del bloque. Si pulsamos en él veremos que se despliegan más garras. Las del lado izquierdo sirven para introducir datos al bloque, y las del lado derecho para exportar datos.

Con ésto, los sensores más comunes que utilizaremos son los siguientes:

Sensor

Contacto

Sonido

Luz

Ultrasónico

Botón NXT

Rotación

Medidor del consumo de salida

Símbolo

Propiedades

Lo normal será conectar en la salida Verdadero/Falso

Se suele aprovechar la salida Verdadero/Falso o la del Nivel de sonido, que da el valor de sonido detectado en tanto por ciento.

Se suele aprovechar la salida Verdadero/Falso o la de Intensidad, que da el valor de intensidad de luz detectado en tanto por ciento.

Se suele aprovechar la salida Verdadero/Falso o la de Distancia, que da el valor de la distancia a la que está el obstáculo en centímetros o en pulgadas. De todas formas, es un sensor poco fiable, por lo que habrá que usar el método de prueba y error hasta dar con el valor deseado.

Analiza si se ha pulsado alguno de los botones del ladrillo, (Intro, Derecha o Izquierda). Se suele utilizar la salida Verdadero/Falso.

Analiza el giro del motor conectado al puerto correspondiente. Se suele utilizar las salidas Verdadero/FalsoDirección  y  Grados.

Analiza el consumo eléctrico de un sensor.

BLOQUES DE FLUJO

En la paleta completa, los bloques de flujo son también casi idénticos a los de la paleta común, salvo que aparece el bloque STOP, para dar por finalizado un programa, lo cual es particularmente necesario para salir de bucles infinitos:

El bloque de Espera se incluye una opción para fijar que el control sea hasta que se active un sensor, que funciona de forma idéntica al bloque genérico, o se puede fijar que la espera sea por tiempo (en realidad la única diferencia es que se sustituye al temporizador de los bloques comunes por uno genérico de espera).

El Bucle funciona exactamente igual que con la programación común. Pero ahora, además de las opciones Siempre, Sensor, Tiempo y Contar, al seleccionar la opción Lógica aparece una garra, y el bucle se repetirá hasta que se reciba la señal en esa garra:

Con las Bifurcaciones condicionales ocurre algo parecido. Además de la opción de sensor, tenemos la posibilidad de analizar un valor. De nuevo aparece la garra de recepción de valores:

En este caso no sólo se puede analizar si la señal recibida es Verdadero o Falso; además, podemos decidir qué tipo de valores activarán un camino u otro. Pulsando en el triangulito del Tipo, se despliegan las otras dos opciones:

Con valores numéricos podemos hacer que se siga el camino de arriba cuando el valor sea el indicado en la Condición 1, que podemos modificar en el rectángulo de edición. Seguirá el camino de abajo cuando el valor recibido sea igual al de la Condición 2.

Con valores de texto podemos hacer que se siga el camino de arriba cuando el texto sea el indicado en la Condición 1, que podemos modificar en el rectángulo de edición. Seguirá el camino de abajo cuando el texto sea el de la Condición 2.

BLOQUES DE LÓGICA

Cuando trabajamos la electrónica digital vimos que con las puertas lógicas se podían realizar operaciones de comparación. Las señales Verdadero/Falso se suelen asociar a 1 y 0, para poder operar con ellas. Los bloques de lógica realizan este tipo de operaciones, entre otras:

El primer bloque es el de Lógica propiamente dicho, con el que se realizan las operaciones lógicas AND (Y), OR (O), NOT (NO) y O EXCLUSIVA. Se comparan las señales que se reciben por la izquierda y se emite el resultado por la derecha (también se pueden traspasar las señales de entrada para llevarlas a otro bloque):

El bloque de Matemáticas realiza operaciones con valores numéricos Suma, Resta, Multiplica, Divide, obtiene el Valor absoluto y la Raiz cuadrada. El resultado, al igual que los valores de entrada, lo emite por la derecha:

El tercer bloque es el de Comparar, que emite la señal de Verdadero/Falso cuando compara las dos señales recibidas y comprueba si una es Mayor, es Menor o es Igual que la otra:

Con el bloque Intervalo, se comprueba si el valor numérico recibido se encuentra comprendido entre un límite inferior y un límite superior, o si está fuera de esos límites:

Por fin los dos bloques de variables nos permiten definir nombres para variables y para constantes que se utilizarán durante la ejecución del programa por ejemplo, para que un bloque de matemáticas multiplique la una señal recibida por un valor fijo:

BLOQUES ESPECIALES

fin de página