TUTORIAL PARA CREAR

MY BLOCK

Icono my Block de LEGO Mindstorm NXT

down-amarillo-flecha

Actualización 20-4-12: Pack and Go, Borrar, modificar, duplicar My Blocks.

Actualización 20-4-12: Organizar los My Blocks en la paleta "Custom".

¿QUE ES UN MY BLOCK?


Un My Block consiste en agrupar un conjunto de iconos de tu programa en uno sólo. Cada vez que uses ese icono, es como si hubieras escrito todo su contenido. Puedes crear tantos como quieras. Al igual que un icono normal, de él pueden salir o entrar cables de programación.


El siguiente es un ejemplo de un My Block que uso bastante ya que estoy un poco aburrido de tener que seleccionar y configurar iconos cada vez que tengo que ver un número en pantalla. Así que he reunido en uno sólo 3 iconos:


Icono configurar My Block LEGO Mindstorm NXT

El display en este caso está configurado en Texto, Línea 6 y Clear Off. Tengo en total 4, cada uno usa una línea. Así puedo presentar en pantalla hasta 4 números de forma simultánea y en distintas líneas, sin que se borren unos a otros cada vez.


El icono central Text o "a" tiene en la línea B del panel de configuración unos espacios. Está señalado con un círculo rojo en la imagen. Esto sirve para que cada vez que el valor se actualice, se escriban espacios en blanco que borren posibles números que puedan quedarse en pantalla sin borrar (por solapamiento).


Ejemplo de solapamiento. Imagina que obtienes los siguientes 3 valores de un sensor: 1 y 1,34 y 1,1. Si no tienes la precaución de programar como antes o de hacer un clear en el display cada vez, lo que verás en pantalla será: 1 y 1,34 y al final verás 1,14!!! ya que el 4 no se borrará.


USOS


"My Blocks" tienen varios usos. Uno es el de agrupar en uno sólo varios iconos que usemos con frecuencia. Otro uso podría ser el de simplificar programas cuando hay partes en él que se repiten. De esta forma, en lugar de volver a escribir todo ese trozo de programa de nuevo, lo sustituimos por un My Block.


Otro uso posible es el de "trocear" determinadas tareas de un programa para hacerlo más claro. Los programas de NXT pueden convertirse fácilmente en kilométricos. Esta es una buena forma de hacerlos más legibles.


Por ejemplo, puedes separar del programa principal una tarea que sea "lectura de los sensores". Otro de "Finalización del programa. Otro de "interpretación de datos", etc. Luego se reúnen todos en el programa principal, que sin duda será mucho mas corto.


CÓMO SE CREAN


Vamos a ir por pasos. Lo primero que hay que tener en cuenta es que cuando creas un My Block es para interaccionar con él. Lo normal por tanto es que al icono le lleguen cables con datos o salgan de él una vez hayan procesado la información.


Por tanto Mi Icono deberá incluir los cables de entrada o salida de informacón, los "data wires". Si no incluyes estos cables a la hora de crear el My Block, luego no podrás introducir o sacar los datos que el icono debe procesar.


Empezaremos escribiendo el programa e incluyendo los iconos que formarán parte del My Block. Si, como hemos dicho, salen o entran cables conéctalo a algún otro icono simulando su futuro comportamiento, aunque luego lo tengas que borrar.


Me refiero a esto: el My block sólo constará de 3 iconos, el Convertir a número, el Text y el Display, pero en el programa añado un sensor de contacto para poder conectar el cable. De esta forma, el My Block tendrá en cuenta ese cable de entrada. Todos los iconos que formen parte del My Block (dentro del recuadro rojo de más abajo) deben estar ya configurados.


Crear My Block en LEGO Mindstorm NXT

Una vez escrito este pequeño programa, seleccionamos con el cursor exactamente esa zona del recuadro rojo de la imagen (se sombreará en azul en el NXT-G cuando lo hagas).


Con todo el trozo de programa que formará el My Block seleccionado, le damos en el Menú a Edit/Make a New My Block o bien le damos al icono de acceso rápido que existe en el menú del escritorio del NXT-G.


Guardar My Block en LEGO Mindstorm NXT

Hagas lo que hagas, nos aparecerá un desplegable. En el lugar en el que señala la flecha amarilla, debes escribir el nombre del nuevo icono que estás creando. Será además el nombre del archivo. El recuadro de bajo (flecha roja) es una pequeña descripción de lo que hace el icono. Es recomendable, ya que cuando tengas varios, te puedes liar.


Verás que el primer icono queda conectado a un pequeño cuadradito (flecha azul). Indica que en esa posición podrá entrar un cable de datos de tipo numérico (ver imagen más abajo).


Configurar My Block LEGO Mindstorm NXT

Ahora le damos a Next. Aparecerá una pantalla llena de iconos. Pinchamos el o los que más nos gusten y los arrastramos hasta el cuadro superior. Desde el menú lo podrás editar posteriormente si no te gusta. Cuando acabes, le das al Finish. Y ya lo tienes hecho. Para usarlo, lo podrás encontrar pulsando el menú "Custom Palette" (flecha rosa de abajo) y seleccionando.


Diseñar My Block LEGO Mindstorm NXT


CAMBIAR LOS NOMBRES DE LOS TERMINALES


Si haces doble click sobre un My Block ya creado, se abrirá el contenido y podrás modificar su programación interna.


Otra cosa que podrás modificar (y que resultará muy útil) son los nombres de los terminales de los My Blocks. Me explico. Si pones el cursor sobre los terminales del siguiente My Block de ejemplo, saldrá "A" y "Result" en sus conexiones. Otras veces pone "Number" por defecto, etc. No son precisamente nombres que nos ayuden a recordar sus funciones.


Diseñar My Block LEGO Mindstorm NXT

Vamos a modificar eso y a ponerle un nombre que resulte más fácil de recordar, según el uso del My Block. Para ello, pon el My Block creado en pantalla y haces doble click sobre él. Te aparecerá su contenido:


Diseñar My Block LEGO Mindstorm NXT

Ponte sobre la palabra "Result" y haces doble click con el ratón. Modifica ahora las palabras. En el ejemplo pone "tiempo" y "velocidad". Cierra y guarda las modificaciones.


Diseñar My Block LEGO Mindstorm NXT

Para que los cambios tengan efecto, simplemente borra y pon un nuevo My Block modificado en el programa.


CREATE PACK AND GO...


Si decides subir programas que contengan My Blocks a algún foro, plataforma, etc, o decides enviarlo vía correo electrónico a algún/a amig@ para que lo ejecute en su PC, no le funcionará, ya que no dispondrá de tu My Block. La solución es subir el My Block que has creado junto al programa o bien usar la herramienta "Pack and Go...".


Diseñar My Block LEGO Mindstorm NXT

Esta utilidad del NXT-G comprime todos los elementos del programa, incluyendo My Blocks creados, sonidos, gráficos, etc necesarios para ejecutarse en otro ordenador distinto al tuyo. El resultado es un archivo único tipo "zip". Hasta tal punto es tipo zip que, según la página de nxtprograms de la que he sacado mucha de esta información, podrías incluso cambiarle la extensión y usar el programa winzip.


Esto podría ser útil para versiones antiguas de NXT-G que no dispongan de la opción Pack and Go, aunque yo no lo he probado.


CÓMO BORRAR UN MY BLOCK


Destruir es más fácil que construir. Para acceder, simplemente pulsa en el menú en Edit/Manage Custom Palette y directamente elimina el archivo correspondiente.


Diseñar My Block LEGO Mindstorm NXT

PEQUEÑAS MODIFICACIONES DE UN MY BLOCK


Puede que quieras duplicar un My Block para modificar una pequeña cosa, como por ejemplo la dirección de un motor y que todo el resto quede igual. Para eso, lo más cómodo es duplicar el My Block y guardar uno con avance y otro con retroceso.


Vuelve a abrir desde "Edit/Manage Custom Palette" y entra en la carpeta "My Blocks" que es donde se alojan los My Blocks creados. Simplemente con el ratón selecciona un archivo, y le das a "copiar y pegar". Tendrás una copia del my block. Ahí mismo puedes renombrar cualquiera de los My Blocks que tengas ya hechos.


UN MY BLOCK AVANZADO


Otra cosa que puedes hacer es agrupar varios My Blocks en 1 único My Block que contenga a todos ellos. La forma de proceder es exactamente igual y pueden entrar y/o salir cables de la misma forma que como lo hemos visto.


MODIFICAR EL ICONO DE UN MY BLOCK


Selecciona el My block-copia desde el programa, modificalo y lo guardas de nuevo. Podrás cambiar el nombre directamente desde Edit/Manage... También podrás cambiar el icono del My Block. Para ello, selecciona el "My Block" y le das Edit/Edit My Block Icon:


Diseñar My Block LEGO Mindstorm NXT

ORGANIZAR LOS "MY BLOCKS"


Como le pilles algo de práctica a los "My Blocks", acabarás con un pequeño follón. Esta es la paleta que ahora mismo tengo disponible:


Diseñar My Block LEGO Mindstorm NXT

La idea de este "truco" es que puedas crear nuevos directorios en la paleta "Custom" y allí puedas alojar los iconos que quieras, agrupados a tu gusto. Aquí unos My Blocks movidos de sitio con respecto a la imagen anterior:


Diseñar My Block LEGO Mindstorm NXT

Vamos a explicar cómo se hace, no es nada complicado. Lo primero, le das a Edit/Manage Custom Palette:


Diseñar My Block LEGO Mindstorm NXT

Ahí verás "My Blocks" y "Web Blocks". Crea una nueva carpeta y ponle un nombre suficientemente descriptivo, por ejemplo "Display" en mi caso.


Diseñar My Block LEGO Mindstorm NXT

De todas formas, este nombre no aparecerá en ninguna parte, es solo a efectos internos, para aclararte tú. Una vez creado, podrás poner ahí todos los "My Blocks" ya creados que quieras. Simplemente abre la carpeta "My Blocks", seleccionas los que quieras y los mueves a la carpeta "Display".


El siguiente paso ahora es crear un par de archivos y alojarlos dentro del directorio que hemos creado. Con ellos, personalizaremos el icono con el que aparece en la paleta "Custom" y el nombre con el que aparece. Los archivos se deben llamar: PaletteIcon.txt y PaletteIcon.png y ambos son necesarios. La nueva carpeta "Display" quedará así:


Diseñar My Block LEGO Mindstorm NXT

Para crear el primero, puedes usar programas del tipo "bloc de notas" o Wordpad". Una vez creado el archivo, lo abres y escribes un nombre. Con ese nombre aparecerá el nuevo icono en la paleta "Custom". En mi caso también le he llamado "Display".


El segundo icono es un poco más complicado de crear. Para ello, haz lo siguiente: usa cualquier imagen o haz un pantallazo como en mi caso sobre el software del NXT. Abre un programa tipo Paint y le das a "Pegar". Dale a "Propiedades de archivo" y selecciones 45x45 píxeles:


Diseñar My Block LEGO Mindstorm NXT

Una vez seleccionada la imagen de 45x45, le das a "Guardar como..." en esa misma carpeta. DEBES guardar la imgen con extensión "png" y con el nombre PaletteIcon. Y ya está todo hecho. El archivo PaletteIcon.png quedará guardado en la carpeta recién creada, "Display" en mi caso. Puede que sea necesario reiniciar el programa para que los cambios tengan efecto.




.