Noticias:

¡Bienvenido a HispaLUG!

Menú Principal

Crear un nuevo bloque NXT-G de cero

Iniciado por pulipuli, 24 de Enero de 2012, 15:47:06 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

pulipuli

Me preguntaba ayer brujuleando sobre como crear bloques personalizados, qué es lo que hace falta para crear un nuevo bloque "de cero".
Me explico, si yo estoy trabajando con sensores oficiales o de distribuidores autorizados, me importo sus bloques y los uso, si quiero hacer bloques personalizados que internamente tienen programas, tampoco hay problema pero ¿y si diseño un sensor casero y quiero fabricarme un nuevo bloque? Si lo hago con piezas más o menos estándar puedo usar los bloques de control de I2Cbus, algún bloque matemático y poco más, para luego encerrar todo en un bloque personalizado, pero ¿y si lo que quiero es crear un bloque de cero?
Dicho de otra manera, dado un hardware "X", ¿como se programa un bloque NXT-G a la medida? no se si hay que escribirlo en algún lenguaje de programación concreto, el formato del fichero del bloque, si hay alguna herramienta para compilarlo y genere el bloque en un fichero con su icono y todo, etc.


nxtorm

Para crear un icono en NXT-G desde 0 necesitas LabView 7.1 (espero no errar la versión), que ya no está disponible. Ese software (que no la versión) es con el que hice este video y programa (versión de prueba):

http://www.hispalug.com/foro/index.php?topic=14680.msg247243#msg247243

El LabView (LV) es el software que corre por debajo del NXT-G, con lo que está programado, vaya. Esa versión (7.1) disponía de un "New Block Wizard" o algo así para tal cometido, cosa que ya no traen las versiones posteriores. Para esa versión existen tutoriales y pdf's oficiales de National Instruments (NI), que es la empresa del LV de cómo crearlos, pero partiendo del "New Block Wizard". Estoy convencido de que se pueden hacer con versiones posteriores, pero ni en NI me supieron dar la respuesta: me puse en contacto con ellos por ese motivo y no sabían. LV es un entorno gráfico potente (industrial/universitario) y una cuestión tan específica y minoritaria, pues no supieron.

Un icono sencillo (por ejemplo elevar al cuadrado) puede tener 5 o 6 archivos para su creación, o sea, que no es precisamente intuitivo. Se podrían modificar los de la red e intentar guardarlos con nuevo nombre, cosa que no he probado. Los iconos originales van protegidos, así que esos no se pueden ver ni modificar.

La versión más actual de LV es LV2010, ojo con esto y cuesta un riñón, aunque hay versiones para centros educativos a precios "reducidos". Para que funcione en el NXT, hay que descargar un módulo específico. Este más o menos sería un resumen de lo que he ido recopilando al respecto, supongo que algo te orientará. Así que yo me tengo que conformar con crear "My Blocks" propios con NXT-G para mis artilugios electrónicos, aunque aun no he tirado la toalla del todo   :_(

Por no extenderme demasiado, si quieres que te cuente algún detalle adicional del programa y porqué (en versión propia) se quedó la cosa parada en el 7.1, ya me dices.

pulipuli

recuerdo LV de mis años universitarios, fue una de las opciones que barajé para mi PFC aunque luego me decanté por otros menesteres. No creo que sea demasiado difícil, aunque llevará su tiempo, copiando como dices a partir de un bloque ya creado de ejemplo, lo único sería coger el hilillo al lenguaje. Yo creí que se haría en C, pero si es un entorno gráfico la dificultad real es hacerte con el programita de marras, el resto, pues un lenguaje más, que para cuatro cosas básicas tampoco ha de costar demasiado.

Lo de hacer el bloque de cero en lugar de usar "my blocks" en nxt-g lo decía sobre todo porque si el bloque es muy tocho siempre correrá más rápido y estará más optimizado si se hace en el lenguaje de bajo nivel, pero tampoco es imprescindible, más que nada curiosidad malsana (de eso tengo p'aburrir :P)