El software de programación que se incluye con el kit del Lego Mindstorms NXT se llama NXT-G. Es un ambiente de programación "gráfico" que funciona arrastrando bloques y conectándolos unos a otros usando "cables".
Este ambiente funciona bien, pero hay veces que las personas que tenemos conocimientos de otros lenguajes de programación o incluso somos programadores profesionales nos parece muy sencillo o quisiéramos tener un poco mas de poder.
Pues no se preocupen, por que hay ambientes de desarrollo alternativos a NXT-G que se pueden usar para escribir programas para el bloque programable.
NXCEl primero al que me referiré es
NBC/NXC es un ambiente de desarrollo donde puedes usar ya sea un pseudo ensamblador o un lenguaje muy similar a C (sin llegar a serlo 100%).
Así que si sabes programar en C este es una muy buena opción. Entre las ventajas que tiene es que los programas se compilan para el firmware por default del NXT y por lo tanto no necesitas cambiarlo como en otros ambientes.
NXC tiene un IDE (Ambiente de desarrollo integrado), el
Bricx Command Center que se integra muy bien con el compilador y el bloque programable.
Otra de las ventajas es que si eres un usuario de Linux, puedes desarrollar tu NXT desde este sistema operativo usando NXC.
Una de las cosas que no me gusta tanto de NXC es su documentación, que en muchos casos es muy espesa y con muy poco detalle.
LeJOSLeJOS NXJ es la plataforma de desarrollo en
Java para el bloque programable del NXT. Es una máquina virtual de Java pequeña que puede correr dentro del bloque programable.
Por tal motivo hay que reemplazar el firmware estándar del Lego NXT por el de LeJOS, pero no hay que temer, ya que siempre podemos resetear nuestro bloque para regresar al firmware original.
Las ventajas que tiene este método de programar nuestro robot son obviamente que hay muchos programadores de Java ahí afuera, y muchas de las APIs estándares de Java están disponibles para ser usadas.
Este ambiente también se puede usar en Windows/Mac/Linux y viene con un plugin para
Eclipse para poder comunicarse fácilmente con el ladrillo
.
RobotC
RobotC es otra opción para programar nuestro ladrillo en C. Este es un ambiente comercial y cuesta una $$$. Una de sus principales ventajas es su rapidez de ejecución.
También necesita nuevo firmware.
Robotics StudioEste software de Microsoft nos permite programar nuestros robots usando los lenguajes de .NET (C#, Visual Basic, Python, etc).
La principal ventaja de este ambiente es esa, que nos permite programar en varios lenguajes y encontrar el que mas nos guste.
La desventaja es que la versión completa hay que comprarla, aunque hay una versión "Express" que es gratuita.
Hay algunos otros ambientes pero estos son los principales, pueden ver una tabla comparativa de estos y otros ambientes en
esta liga.