domingo, 17 de marzo de 2013

Bloques personalizados (NXT-G) 1/6

Esta primera entrada surge de la traducción del gran tutorial de Dave Parker que hice para mi equipo de FLL. He dividido el extenso tutorial en seis partes que incluiré en los próximos días esperando que os sirvan de referencia, al menos mientras nos llega el nuevo Mindstorm NXT 3.0 que seguramente deje estas entradas obsoletas. Tengo muchas ganas de que lo pongan a la venta para ver que opciones de programación ha implementado Lego.



¿Qué es un Mi Bloque?


Las paletas común y completa del sistema de programación NXT-G contienen todos los bloques integrados que se pueden utilizar para crear un programa de NXT. El software NXT-G también le permite crear sus propios bloques llamados "Mis Bloques". Estos bloques son de color azul y aparecen en la paleta personalizada en NXT-G. Un Mi Bloque es una secuencia de otros bloques que se ha empaquetado en un solo bloque para que sea más fácil de usar en un programa. Los usuarios de otros lenguajes de programación pueden conocer esto como una "subrutina", "subprograma" o "función".


Figura 1: My Blocks son de color azul, y aparecen en la paleta personalizada en NXT-G. 

¿Por qué utilizar Mis Bloques?


La razón más común para utilizar un Mi Bloque es que permite fácilmente usar una secuencia de bloques una y otra vez, sin necesidad de volver a crear la secuencia cada vez.Usando un Mi Bloque, sólo es necesario para crear la secuencia una vez, y entonces puede utilizarla tantas veces como desee en cualquiera de sus programas con sólo insertar un solo Mi Bloque. Otra ventaja de usar Mis Bloques es que la secuencia del programa que compone el Mi Bloque sólo se almacena en la memoria del NXT una vez para cada programa que lo usa, incluso si el programa utiliza el Mi Bloque varias veces, así que mis bloques pueden ser una buen manera de introducir más programación en la memoria limitada del NXT. Por último, también puede utilizar Mis Bloques simplemente para romper un programa largo en trozos para que sea más fácil trabajar con él, incluso si usted no planea usar un pedazo más de una vez, porque el trabajo con los programas más pequeños es mucho más fácil en NXT -G.

En este tutorial, vamos a ver ejemplos de cómo crear y utilizar Mis Bloques, comenzando con un ejemplo muy sencillo hasta ejemplos más complejos que utilizan características como parámetros de entrada, puertos de salida y variables para que sean más potentes y más flexibles . Un proceso paso a paso para crear y probar un complejo Mi Bloque será presentado como guía para crear sus propios bloques. Por último, vamos a aprender cómo se puede organizar y personalizar tus My Blocks y compartirlos con los demás.



Creación de su primer Mi Bloque


Para nuestro primer ejemplo Mi Bloque, vamos a crear un bloque llamado BeepBeep que emitirá dos tonos por el altavoz NXT, y luego lo vamos a utilizar en un programa junto con otros bloques que hacen que el robot se mueva. Este sencillo ejemplo muestra los pasos básicos necesarios para crear y utilizar cualquier Mi Bloque.

Creación de un Mi Bloque


El primer paso para crear un Mi Bloque consiste en escribir un programa que utiliza la secuencia deseada de bloques. La figura 2 muestra un programa compuesto por cinco de los bloques que hacen el robot se mueva hacia adelante, suenen dos tonos por el altavoz, y luego vuelve a avanzar. Los tres bloques seleccionados en el medio son responsables de los dos tonos de sonido (un bloque de espera se utiliza para separar los tonos en dos sonidos distintos). Vamos a convertir esta secuencia de tres bloques en un bloque llamado BeepBeep, lo que nos permitirá volver a utilizar fácilmente esta secuencia.



Figura 2: Una secuencia de bloques se pueden seleccionar y se convierte en un Mi Bloque para facilitar su reutilización. 

Una vez que usted tiene un programa de trabajo que incluye el comportamiento de su Mi Bloque, seleccione la secuencia de los bloques que componen el Mi Bloque arrastrando un rectángulo de selección sobre ellos, como se muestra en la Figura 2. Cada bloque seleccionado entonces debe mostrar un contorno de selección azul. Para hacer un Mi Bloque de los bloques seleccionados pulse el botón "Crear Mi Bloque" en la barra de herramientas, como se muestra en la Figura 3, que abrirá la ventana del Mi Generador de bloques,como se muestra en la Figura 4


Figura 3: Con una secuencia de bloques seleccionados, haga clic en "Create Mi Bloque" 
barra de herramientas botón para crear un Mi Bloque 

Mi Generador de My bloques consta de dos pasos. El primer paso se muestra en la figura 4 y muestra una vista previa de los contenidos de Mi Bloque en la sección de los bloques seleccionados. En este paso se debe introducir un nombre para mi el Bloque en el cuadro Nombre del bloque (en este caso BeepBeep). Elegir un nombre para el bloque que sea descriptivo pero corto. Aunque los nombres más largos son válidos, se cortará cuando se muestra en el bloque y por lo tanto serán más difíciles de leer en un programa. También puede introducir una descripción opcional del bloque en el cuadro Descripción de Bloque. Esta descripción se imprimirá junto con el diagrama de bloques si se imprime el contenido de su Mi Bloque utilizando el comando Imprimir del menú Archivo. También puede dejar en blanco la descripción y describir su bloque con la herramienta de comentarios dentro de los contenidos del bloque.

Pulse el botón Siguiente para pasar a la segunda etapa de Mi Bloque Builder, que le permitirá elegir un icono para que aparezca en la cara de su Mi Bloque. Al pulsar en Finalizar después de completar el primer paso se saltará la elección de icono y se usará el uso de un icono genérico de Mi Bloque.


Figura 4: En la primera etapa de mi Block Builder, escriba un nombre y una descripción para el Mi Bloque. 

El segundo paso de Mi Generador de Bloques le permite elegir un icono que se mostrará en su Mi Bloque, como se muestra en la Figura 5. Puede seleccionar un icono de la lista que se muestra y arrastrarlo a la casilla blanca en la parte superior del cuadro de diálogo. A continuación, puede colocar el icono en el frente del bloque arrastrando con el ratón o pulsando las teclas de flecha del teclado. También puede cambiar el tamaño del icono, arrastre las esquinas negras del rectángulo de selección. Si lo desea, puede seleccionar más de un icono de la lista y colocarlos como se desee para crear una imagen que es una combinación de iconos. En la Figura 5, dos copias del icono de nota musical (el segundo icono en la lista) se utilizan para crear una imagen que sugiere una función de este bloque de sonar dos tonos. Pulse Finalizar para completar el Mi Generador de Bloques y crear su Mi Bloque.


Figura 5: El paso Generador de icono le permite personalizar el icono de Mi Bloque. 

Después de crear nuestro mi bloque, el programa modificado se muestra en la Figura 6. Los tres bloques que conforman el bloque BeepBeep han sido sustituidos por un solo Mi Bloque azul que muestra el nombre y la imagen que hemos elegido para el bloque BeepBeep. El programa todavía va a hacer lo mismo que hacía antes (ir hacia adelante, emitirá dos tonos, y luego ir de nuevo hacia delante), pero ahora parte del programa está contenido dentro del Mi Bloque. 





Nota: A veces, después de crear un Mi Bloque en un programa, un espacio vacío en el rail de secuencia se quedará en el lugar donde estaban los bloques originales. Para eliminar este espacio adicional puede reducir el tamaño del rail de secuencia colocando el cursor en la ubicación que se muestra en la Figura 6 y arrastrando hacia la izquierda.


Figura 6: Queda espacio adicional en el rail después de crear una secuencia de Mi Bloque 
Se puede reducir arrastrando el rail de secuencia en la ubicación mostrada 

Ver y editar el contenido de un Mi Bloque


Una vez que nuestro bloque BeepBeep ha sido creado, los bloques contenidos en su interior han desaparecido de la vista en el programa original, tal como se muestra en la Figura 7. Para ver el contenido de un Mi Bloque o editar los bloques contenidos en él, puede hacer doble clic en Mi Bloque abriréndose el contenido del Mi Bloque como una nueva pestaña en el editor de programas NXT-G, como se muestra en la Figura 8. Esto es similar a tener otros programas NXT-G abiertos, excepto en que la solapa BeepBeep está marcado con dos barras de color azul para indicar que el contenido es un Mi bloque en lugar de un programa normal.


Figura 7: Para ver o editar el contenido de mi un bloque en un programa, haga doble clic en Mi Bloque. 


Figura 8: Un Mi Bloque abierto para su visualización o edición se abre como otro programa NXT-G en una nueva pestaña, 
con el nombre de Mi Bloque en él y dos barras de color azul para indicar que se trata de un Mi Bloque. 

Para cambiar el contenido de un Mi Bloque, simplemente edite los bloques como en un programa normal. Todos los cambios realizados en el contenido afectarán a todos los usos del My Block en todos los programas que lo utilizan, después de que los programas se vuelven a compilar y a descargar en el NXT. 





Nota: Después de cambiar el contenido de un Mi Bloque, cualquier programa que utilice debe ser vueto a descargar al NXT para incorporar los cambios, de lo contrario el programa se mantendrá sin cambios y utilizará los contenidos originales del Mi Bloque. Un error muy común después de la edición de Mi Bloque es descargar el contenido del mi bloque al NXT en lugar del programa que lo utiliza (porque tienes esa pestaña seleccionada en el editor), lo que no afectará a los programas que utilizan el bloque.

Inserción de un Mi Bloque en un Programa


Después de crear un Mi Bloque, NXT-G modificará automáticamente el programa original para usar el Mi Bloque en lugar de la secuencia de bloques original como se muestra en la Figura 7 arriba. Ahora también puedes volver a utilizar el Mi Bloque mediante otra inserción en el mismo programa o en otros programas. Para insertar un nuevo uso de un Mi bloque en un programa, seleccionar la paleta personalizada como se muestra en la Figura 9. El menú de la parte superior de los bloques de la paleta personalizada contiene los bloques Mis que ha creado. La figura 10 muestra el bloque BeepBeep junto con mis otros siete bloques que he creado. Los bloques se ordenan en el menú alfabéticamente por el nombre del bloque. Si está utilizando varios perfiles de usuario NXT-G, cada perfil de usuario contendrá su propia lista de Mis bloques que fueron creados por ese perfil de usuario.


Figura 9: Para insertar un Mi Bloque en un programa, seleccione la paleta personalizada. 


Figura 10: El menú de la parte superior de la paleta personalizada contiene los Mis bloques que haya creado. 

Mis Bloques elegidos de la paleta personalizada se puede insertar en un programa como bloques regulares. El programa modificado en la Figura 11 utiliza ahora el bloque BeepBeep dos veces. En comparación con la alternativa de introducir la secuencia de 3 bloques del bloque BeepBeep directamente en el programa principal dos veces, el programa utiliza el bloque BeepBeep es más corto, más fácil de leer, fácil de modificar, y ocupa menos memoria en el NXT.


Figura 11: Mis bloques pueden ser fácilmente reutilizados, lo que ahorra tiempo de programación y memoria en el NXT. 

No hay comentarios :

Publicar un comentario