About NXT…

I always found the idea about making robots interesting, but I’ve never really thought about doing it until I saw an article about the Lego® Mindstorms™ robot in the December (2011) issue of IEEE Spectrum. This sounded like a fun thing to have, so I got it.

The Mindstorms™ box coLego Mindstroms NXT 2.0mes with 619 building blocks, plus the NXT™ brick (i.e., the micro-computer), servo motors with built-in rotation sensors, and multiple types of sensors (color, touch, and ultrasonic). The box also comes with the NXT-G™ software – a graphical, icon-based drag-and-drop, programming interface, developed in the colaboration with National Instruments (unfortunately, NXT-G™ currently lacks a support for Linux). The NXT-G™ provides intuitive way to program NXT™ and it can be seen as an introduction to NXT™ programming. Nevertheless, this does not mean that NXT-G™ can be used to program only simple activities and, hence, more experienced users may also find it quite useful.

However, the best thing about the Lego® Mindstorms™ is  that it is not dependent on NXT-G, but allows for many different programming software/packages to be used for the NXT™ brick programming (here is a nice summary). Additionally, users can get additional motors, sensors, e.g., sound, compass, or acceleration sensor, and  NXT™ bricks. Of course, there is always an option to include and reuse already own Lego block in the robot assembly. Finally, as the NXT™ bricks come with a Bluetooth adapter, all creations can be controlled through a Bluetooth link. All these features give a user a wide range of possibilities for robot designs, as well as a fun way of learning robotics and programming.

Unfortunately, there are not many on-line resources that provide introductory tutorials for the NXT™ brick programming, especially for people without previous programming experience. Thus, in this blog, I plan to write about how to build a simple robot and how to program it to perform different tasks (using Not eXactly C – NXC – programming language). Since neither the robot assembly nor programming are trivial tasks, I will start with a basics of NXC programming, then demonstrate how to use NXC to get and process inputs from different sensors, how to combine sensors with motors, how to create stable mechanic, and finally how to combine everything in a robot.

For those who want to learn more, I can recommend the John C. Hansen’s book “Lego® Mindstorms™ NXT™ Power Programming – Robotics in C.” This book provides lots of examples and references for the NXC API functions.

Leave a Reply

Your email address will not be published. Required fields are marked *