Crear bloques para NXT-G con LabVIEW

En alguna ocasión nos hemos preguntado por la posibilidad de crear un nuevo icono gráfico para aquella funcionalidad que nos gustaría ver implementada. En su momento explicamos cómo implementar funciones trigonométricas en NXT-G en dos artículos, dado que estas funciones no han sido implementadas. Existen una forma distinta de resolver el problema, y consiste en crear un icono nuevo de NXT-G que ejecute dicha función. Esto es posible mediante el uso de LabVIEW. Vemos, pues, hoy, cómo crear bloques para NXT-G con LabVIEW.

Para crear bloques que se puedan importar en el software de LEGO MINDSTORMS NXT necesitamos hacer uso del LabVIEW 7.1. Debido a que el software de LEGO MINDSTORMS NXT se basa en la versión 7.1 necesitamos hacer uso explícito de esta versión para crear nuevos bloques NXT-G. También es necesario utilizar el Kit de herramientas de LabVIEW para LEGO MINDSTORMS NXT junto con el LabVIEW 7.1. El objetivo de este artículo es aprender a crear e importar nuevos bloques para el software gráfico del MINDSTORMS NXT-G. Dado que este proceso es un poco tedioso, dividiremos el artículo en dos o más partes.

La creación de un bloque de MINDSTORMS NXT implica tanto la creación de una serie de varios archivos necesarios como su importación en el software de MINDSTORMS. Para llevar a cabo con éxito este proceso es necesario seguir una convención de nombres especificado puesto que el proceso de importación se basa en una estructura de directorios estrictamente definida.

Vamos a crear un nuevo bloque que genere el valor de las funciones trigonométricas para un determinado ángulo. A este nuevo bloque lo denominaremos trigonometría. Si lo llamaramos de otro modo deberíamos tenerlo en cuenta en las explicaciones que siguen.

LabVIEW dispone de una ayuda para la generación de nuevos bloques. La siguiente imagen nos muestra dónde podemos localizar esta herramienta.

Ayuda para la creación de un nuevo bloque NXT-G

Ventana creación nuevo bloque NXT-GEsto nos lanza la ventana de la figura. Como vemos tenemos la opción de elegir entre cuatro posibles plantillas. Como es nuestro primer bloque, seleccionamos el más simple, la opción inferior, el nombre que queremos darle al bloque (trigonometría), el directorio de destino, y le damos a create. En el directorio seleccionado se crearán varios ficheros. Los ficheros que se generan en este proceso dependen de la plantilla seleccionada. En nuestro caso, si vamos al directorio que hemos elegido nos encontraremos los siguientes ficheros:

ficheros creados por la ayuda

Dependiendo del nivel de funcionalidad que queramos darle a nuestro nuevo bloque puede ser conveniente el crear otros ficheros adicionales. Esto quiere decir que existen unos ficheros que son estrictamente necesarios, y otros no. Veamos cuáles son todos ellos.

Archivos necesarios
Para importar un bloque al software NXT-G debemos crear los siguientes archivos:

  • Aplicación vi
    El vi Aplicación es el archivo que el software de MINDSTORMS compila y, por tanto, el que descargamos en el NXT. El nombre que debemos dar a nuestro vi aplicación debe ser de la siguiente manera:
    trigonometriatrigonometria.vi
    Si abrimos este vi, nos encontramos que el contenido del panel frontal generado por el template es el siguiente:
    Panel frontal trigonometria
    Y su correspondiente diagrama de bloques contiene el siguiente código:

    Diagrama de bloques trigonometria
    Los booleanos de Secuencia de Flujo que tanto nos recuerdan a los del NXT-G son específicos del compilador de NXT, y se emplean para la conexión de SubVIs que necesitan ejecutarse secuencialmente. Ni se compilan en el programa, por lo que son ignorados, ni tampoco incrementan el tamaño del programa. Tan solo sirven para crear una dependencia en el orden de ejecución entre SubVIs.

    Lo siguiente que vamos a realizar es modificar el contenido del vi para que genere las funciones trigonométricas.

    trigonometria_block_diagram

Importación de nuevos bloques desde el NXT-G
Aunque no hemos acabado el proceso, veamos lo que hemos hecho hasta ahora, porque esto nos ayudará para entender el resto de operaciones más fácilmente. Salvemos este fichero y tratemos de importarlo desde el NXT-G. Para ello arrancamos el NXT-G y, desde una ventana de programa cualquiera.

Cómo importar nuevos bloques en NXT-G

Debemos seleccionar el directorio en el que hemos creado nuestros ficheros, así como la paleta en la que deseamos que nuestro nuevo icono se incorpore y le damos a importar. Hecho esto, ya podemos incorporarlo en nuestro programa. Para ello vamos a la paleta seleccionada, lo encontramos en (2) y lo arrastramos al programa, donde tiene el aspecto según (1). La forma con la que se nos aparece en estos contextos depende del contenido del resto de los ficheros que explicamos a continuación.

Bloque NXT-G

Opciones de configuración del bloque NXT-G

Si pinchamos sobre el bloque que acabamos de añadir al programa vemos que en la parte inferior izquierda del entorno se nos despliegan las opciones de configuración del programa. Para explicar el porqué de las opciones que aparecen aquí como “Example boolean”, “Example Numeric”, etc. debemos seguir con los ficheros necesarios que explicábamos antes…

    • Configuración vi
      El vi de configuración es el que define lo que aparece en el panel de configuración en la parte inferior del software NXT-G. El vi de Configuración proporciona varias funciones, incluyendo la actualización de los valores por defecto en su Aplicación VI y lectura de datos del sensor. Debemos nombrarlo:
      trigonometriaConfig trigonometria.vi

Abramos este fichero que se ha creado de forma automática al ejecutar el template. Nos encontramos que el panel frontal de Config trigonometria.vi no es otra cosa que exactamente la parte inferior del menú de configuración del icono que vemos en NXT-G. Su diagrama de bloques es un chorizo que asusta un poco, pero que tan sólo se encarga de capturar los datos con los que queremos configurar nuestro bloque: recordemos que lo que ahí aparece proviene de un template y nosotros lo vamos a modificar según nos convenga.

VI de configuracion, diagrama de bloques creado por el template

  • Dibujar vi
    El vi de Dibujo es el encargado de mostrar la imagen que queremos que tenga nuestro bloque en el diagrama de bloques del NXT-G. Su nombre será:
    trigonometriaDraw trigonometria.vi
  • Bloque Icono
    El bloque icono sirve para representar la imagen que queremos que tenga nuestro bloque en la paleta y en el diagrama de bloques. Esto lo podemos hacer con el editor gráfico que más nos guste, por lo que no haremos mayor hincapié. Lo nombraremos:
    trigonometriatrigonometria.png
  • Bloque Nombre del fichero
    El nombre del bloque del archivo contiene el texto que aparece cuando nos situamos con el cursor sobre nuestro bloque en la paleta del NXT-G:
    trigonometriatrigonometria.txt
  • Fichero Sensor
    Este fichero es necesario exclusivamente si queremos crear un bloque de sensores. El objetivo de este fichero es el de proporcionar la información necesaria para el correcto funcionamiento del bloque del sensor que implementamos Wait For, Loop, Switch o Calibration.
    trigonometriaSensor.ini

La segunda parte del artículo la presentaremos en breve. Los comentarios y dudas en el foro de electricBricks, como siempre!!

Comments are closed.