Noticias:

¡Bienvenido a HispaLUG!

Menú Principal

Cambio del firmware en NXT

Iniciado por Ignacio, 30 de Enero de 2008, 17:05:09 PM

Tema anterior - Siguiente tema

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

Ignacio

El fin de semana estuve montando el escorpión del NXT. Aparte de lo bien que se lo pasan los enanos viendo como anda y pica, me ha servido para corroborar la primera impresión que tuve cuando monté el primer modelo de ejemplo, y es que la reacción ante los eventos no es muy fina.

Me explico: se supone que el escorpión te pica cuando pones la mano a una determinada distancia de los "ojos". Sin embargo, le pones la mano delante y hay veces que sigue moviéndose un rato y luego te pica, otras te pica inmediatamente, otras no te pica ...
Con el modelo anterior, que andaba en un sentido hasta chocar, luego hacía un ruidito y volvia para atrás, pasaba un poco lo mismo, ya que a veces sigue andando un buen rato a pesar de chocarse con la pared antes de volver atrás.

Supongo que parte de la culpa la tiene el modelo de programación en bloques. La pregunta es si metiéndole el leJOS o algún otro firmware para otro lenguaje de programación el funcionamiento es más suave.

Hace algún tiempo me compré un libro para programarlo en Java, pero antes de cambiar el sistema quiero montar el Alpha Rex, por ejemplo. Mientras, me gustaría ir viendo que opináis ...

g2bricks

A mi personalmente la forma que más me gusta para programar NXT es con C o C++ pero NO en modo "on-brick".

Es decir... Actualicé la firmware que viene en la página de LEGO y en vez de programar y bajar programas al brick, lo que hago
es un programa para Windows/PC que manda instrucciones al brick y este a su vez manda de vuelta los entradas que recibe por los sensores.  Es decir, que la NXT "no piensa por si mismo" y es siplemente un exclavo servicial de mi ordenador.

Toda la comunicacion entre el PC y NXT es via Bluetooth, aunque se puede usar el USB naturlmente.

Ventajas:

- Fácil de programar
- No hace falta "bajar" el programa al brick.
- Potente, ya que el PC puede hacer cálculos rápidos y complejos
- Muy extensible, ya que que abre un mundo de posibilidades. Ahora estoy controlando mis MOCs con la Wiimote. Haciendo comuniación Wiimote <-> PC <-> NXT. Estoy preparando sobre un mini-tutorial sobre el tema, ya te comentare...

Desventajas:

- El brick no es autónomo, es un mero exclavo de mi ordenador. Y para ciertas aplicaciones pierde gracia.
- Se pierde tiempo en la respuesta, es decir. Entre que NXT da cuenta de su situación y el PC responde, pues hay un retardo mayor que si el propio brick decide por si solo.

Un saludo....


Puedes ver mis MOCs en: http://g2bricks.blogsite.org/bricks

"Una de las características esenciales de los ladrillos LEGO a través de su historia ha sido que cada una es, ante todo, parte de un sistema", Wikipedia

Jetro

Por desgracia en NXT-G cuando un sensor está vinculado a un bucle no actua hasta haya ejecutado todos los bloques dentro del bucle. Por eso la reación a veces se deja esperar.

Pero existen alternativas a NXT-G sin cambiar de firmware!

Ignacio


Jetro

Hay muchos lenguages disponibles ara programar el NXT.

Aqui hay una lista basatante completa de ellas.

Personalmente la opción mas interesante me parece NXC (principalmente porque es el 'sucesor' de NQC con el que ya tengo algo de experiencia). Como su nombre indica está basado en C, y es relativamente sencillo aprender a usarlo, al menos para tareas sencillas. Y como está basado en C, para tareas mas complicadas tienes mucha documentación sobre como conseguir tu objetivo.


Cita de: g2bricks en 30 de Enero de 2008, 18:04:54 PM
A mi personalmente la forma que más me gusta para programar NXT es con C o C++ pero NO en modo "on-brick".

Pasate por el foro de LEGO Robotica y cuéntanos mas!
(¿Usas Mindsqualls?)

g2bricks

Yo uso NXT++ o nxt_remote: http://www.kyb.tuebingen.mpg.de/de/bu/people/berger/nxt/nxt.html. La primera es más sencilla en su estructura, pero he tenido problemas de conexión vía Bluetooh, la segunda es mas liosa pero sin problemas hasta ahora. También tengo que decir que nxt_remote por ejemplo, no puedes activar sonidos. Si no tienes problemas, NXT++ está muy bien.

Pero Mindsquals pinta muy bien!! No lo conocía. Parece muy chulo para un principiante en programación que quiere salir de NXT-G y empezar a meter código. Como está en .NET se puede usar en cualquier lenguaje .NET (C++, Visual Basic, C#...). Visual Basic puede ser un buen comienzo. Además como existen las version gratuitas del Visual Studio (los Visual Studio Express), facilita las cosas.

Para leJOS hay que cambiar la firmware, mientras para NXT++ o Mindsquals sólo hay actualizarla a la nueva versión oficial que provee LEGO. Lo mejor de LeJOS es que puedes programar el brick (con los de arribar es para controlarlo vía PC) y hacerlo autónomo.  Si no me equivoco  ??? Los de arribas SOLO son funciones para control remoto.

Si os quereis que os diga la verdad aunque entiendo NXT-G, no me gusta y solo he hecho un programita. Pero donde esté C (o Java o C++) que se quite lo demás  ;D Codigo puro y duro. Si te acostumbras resulta mas potente y rápido para programar los bichos.

un saludo a los dos...


Puedes ver mis MOCs en: http://g2bricks.blogsite.org/bricks

"Una de las características esenciales de los ladrillos LEGO a través de su historia ha sido que cada una es, ante todo, parte de un sistema", Wikipedia

Jetro

Efectivamente, los dos primeros no corren sobre el NXT sino sobre el PC.

Antes de meterte en Mindsqualls te recomiendo probar con NXC. Es muy comleto y está muy bien documentado.