Lego Mindstorms - Programming Languages

Programming Languages

Further information: Lego Mindstorms NXT#Programming
Name Language type(s) Notes URL
Actor-Lab Custom flowchart-like language
Ada Ada Requires nxtOSEK
Ada Interface to MindStorms Ada
brickOS C/C++
Ch C/C++ Interpreter Control Lego Mindstorm in C/C++ interactively without compilation
Enchanting Drag and drop, similar to NXT-G Program your robots simply by dragging the line of functions.
FLL NXT Navigation Uses NXT-G and .txt files http://fllnxtnavigation.codeplex.com/ FLL NXT Navigation
GCC C/C++, Objective-C, Fortran, Java, Ada, others ,
GNU Toolchain for h8300 C/C++, ASM
jaraco.nxt Python Python modules providing low-level interfaces for controlling a Lego NXT brick via Bluetooth. Also includes code for controlling motors with an Xbox 360 controller using pyglet.
LabVIEW National Instruments LabVIEW visual programming language (G code) Core language used to develop Mindstorms NXT software. Can use available add-on kit to create and download programs to NXT, create original NXT blocks or control robot directly via USB or Bluetooth using NXT fantom.dll
Lego.NET Anything that can compile to CIL, works best with C# Does not come with a compiler, converts CIL to machine code
Lego::NXT Perl Set of Perl modules providing real-time low-level control of a Lego NXT brick over Bluetooth.
LegoNXTRemote Objective-C Remote control program for remotely operating and programming a Lego NXT Brick. Supports NXT 2.0 and 1.0, sensors, all 3 motors, automatic "steering" control, and running preloaded programs.
leJOS Java A java based system for advanced programmers can handle most sensors and things like GPS, speech recognition and mapping technology. Can be interfaced with the Eclipse IDE or run from the command line
NXTGCC Assembly, C, makefiles, Eclipse, etc. The first GCC toolchain for programming the Lego Mindstorms NXT firmware.
nxtOSEK C/C++
librcx C/C++ A library for GCC
Logitech SDK Visual Basic, Visual C++ Can be combined with an RCX control library such as spirit.ocx from the MindStorms SDK to make use of the Lego Cam
MicroWorlds EX Robotics Edition This is a program in the MicroWorlds series that allows students to control the NXT.
NQC NQC, a C-like language
NXT++ C++ Allows controlling the NXT directly from any C++ program, in Visual Studio, Windows.
NXT_Python Python NXT_Python is a package for controlling a LEGO NXT robot using the Python language. It can communicate via USB or Bluetooth.
NXT-Python Python Based on NXT_Python, includes additional advanced features, support for around 30 sensors, and multiple brick connection backends. Works on Windows, Linux, Mac.
Lestat C++ Allows you to control the NXT directly from any C++ program in Linux.
OCaml Mindstorm OCaml Module to control LEGO NXT robots using OCaml through the Bluetooth and USB interfaces.
Mindstorms SDK Visual Basic, Visual C++, MindScript, LASM You do not need VB to use the VB features as MS Office comes with a cut down version of VB for making macros Unofficial Site. The LEGO Company no longer offers technical support to advanced users on the historical MINDSTORMS range, specifically those using the SDK 2.5 (RCX and Scout), and Spybotics range. Related tools and documentation were removed from the Official LEGO MINDSTORMS website in 2008.
OnScreen A custom language which can be programmed directly on the RCX
pbForth Forth
PBrickDev PBrickDev, a flowchart based language. Has more functionality than the RIS language, such as datalogs and subroutines/multithreading.
PRO-BOT A kind of Visual Basic/spirit.ocx-based language Designed for robots which are in contact with the workstation at all times
QuiteC C A library for use with GCC and comes with GCC for Windows.
RCX Code RCX Code, a custom flowchart-based language Included in the Mindstorms consumer version sold at toystore
ROBOLAB A flowchart language based on LabVIEW This is the programming environment offered to schools who use MindStorms, supports the Lego Cam
RoboMind Simple educational scripting language available from Arabic to Ukrainian. The RoboMind learning environment allows to quickly develop and test scripts for a virtual robot environment. The scripts can then directly be transferred to a Lego Mindstorms NXT robot. It works on the standard firmware.
RoboRealm A multi-platform language that works with IRobot Roomba, NXT, RCX, VEX, and many other popular robotic sets. This language is also capable for video processing using a webcam, this gives your robot excellent vision since it can filter out certain colors, lock-on to a certain area of color, display variables from the robot or computer, and much more. The software works with keyboard, joystick, and mouse.
Robotc A multi-platform C language designed for users needing powerful debugging tools for the NXT, RCX, VEX, and soon-to-be FIRST Controller (for FRC). ROBOTC gives the ability to use a text-based language based on the C language. It includes built-in debugger tools, as well as (but not limited to) code templates, Math/Trig operations (sin, cos,tan, asin,acos... etc.), user-friendly auto-complete function built into the interface, built-in sample programs
ROS A Linux based library for writing robots. The stack "nxt" provides interface with the NXT.
Robotics.NXT Haskell A Haskell interface over Bluetooth. It supports direct commands, messages and many sensors (also unofficial). It has also support for a simple message-based control of a NXT brick via remotely executed program (basic NXC code included).
ruby-nxt Ruby Provides low-level access to the NXT via Bluetooth as well as some preliminary high-level functionality.
RWTH – Mindstorms NXT Toolbox MATLAB Interface to control the NXT from MATLAB via Bluetooth or USB (open-source).
SqLego Squeak
TclRCX Tcl
Terrapin Logo LOGO
TinySoar Soar An implementation of the Soar artificial intelligence architecture that runs on the RCX brick. Soar incorporates acting, planning, and learning in a rule-based framework.
TinyVM Java A predecessor to the lejos language. An open source Java based replacement firmware for the Lego Mindstorms RCX microcontroller.
The Transterpreter Occam
TuxMinds (Linux) GUI for various distributions, an open source IDE based on Qt. Supports a lot of bots. RcX, NxT and Asuro are predefined. With the XML-based configuration file almost any kind of bot (or microcontroller) can be added. Own equipment can be added in the same manner.
Gostai URBI for Lego Mindstorms NXT URBI, C++, Java, Matlab Easy to use parallel and event-driven script language with a component architecture and opensource interfaces to many programming languages. It also offers voice/speech recognition/synthesis, face recognition/detection, Simultaneous localization and mapping, etc.
Vision Command RCX Code The official programming language for use with the Lego Cam, that allows you to control your robot with color, motion, and flashes of light.
XS Lisp
LegoLog Prolog Uses an NQC program to interpret commands send from the PC running the Prolog code
Microsoft Visual Programming Language (VPL) Graphical flowchart, based on .NET With the Microsoft Robotics Studio, it uses a native NXT program msrs to send and receive messages to and from a controlling program on a computer via Bluetooth
DialogOS Graphical Flowchart for voice controlled robots DialogOS combines speech recognition and speech synthesis with robotics, enabling you to build talking robots that react to your voice commands.
Processing Java (Simplified / programmed C-style) Processing (programming language) is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. To control the NXT with Processing you can use the NXTComm Processing library developed by Jorge Cardoso. ,
Interactive C C-style language. Language developed for the MIT Lego Robot Design Contest
pbLua API for the Lua programming language for the Mindstorms NXT, text-based pBLua: ... is written in portable C, with minimal runtime requirements; can be compiled on the fly on NXT; is a small, easy to read, and easy to write language; has extensive documentation available online and in dead-tree format, and a very friendly newsgroup pbLua, Lua.org

Read more about this topic:  Lego Mindstorms

Famous quotes containing the words programming and/or languages:

    If there is a price to pay for the privilege of spending the early years of child rearing in the driver’s seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.
    Melinda M. Marshall (20th century)

    People in places many of us never heard of, whose names we can’t pronounce or even spell, are speaking up for themselves. They speak in languages we once classified as “exotic” but whose mastery is now essential for our diplomats and businessmen. But what they say is very much the same the world over. They want a decent standard of living. They want human dignity and a voice in their own futures. They want their children to grow up strong and healthy and free.
    Hubert H. Humphrey (1911–1978)