LEGO Mindstorms NXT Power Programming: Robotics in C

  • ISBN13: 9780973864977
  • Condition: NEW
  • Notes: Brand New from Publisher. No Remainder Mark.

Product Description
With fun projects, tips, instructions, illustrations, and programs, this comprehensive companion to the powerful Mindstorms NXT robot kit will help LEGO popularize robotics in the way that the iPod did for digital music. This second edition to programming on the NXT helps users make the most of the latest LEGO Mindstorms NXT release for further robot enhancements. Included is an ingenious set of projects that explore the complete arsenal of basic and advanced NXT fu… More >>

LEGO Mindstorms NXT Power Programming: Robotics in C


Posted in LEGO Books and tagged , , , , .


  1. I bought this book as an experiment because I really wanted to teach my students to use Java on their NXTs. I was surprised by how well the book explains C programming on the NXT and delighted by the many excellent examples. We were able to get a program running on the first day. We did not use but I was impressed by the many excellent, illustrated examples of construction.

    C programming is hard for students to grasp and they eventually gave up but this was not the book’s fault.
    Rating: 5 / 5

  2. This is an excellent book written by someone who was involved in-depth with NXT programming as the NXT product evolved. Lots of good examples of C code will speed your learning curve.
    Rating: 5 / 5

  3. If you are interested in programming your NXT beyond what NXT-G can do (the environment that comes with the retail kit) this is the book for you. You don’t have to change out the firmware as you do for other text based programming languages, so you can continue to use NXT-G. In fact both types of programs can reside on the NXT at the same time.

    There is a great chapter giving details on the Bricx integrated development environment and all the tools that come with it. It is very complete.

    The versa bot that is detailed in the book is a great platform to add to and make your own modifications to. I have already made several of my own modules for it and wrote programs to take advantage of them with NXC.

    There are several other bots to be built in the book that I have yet to get built, as I am still adding to the versa bot, but I definitely will though. The etch a sketch one looks really cool and I am sure programming it will teach me a lot.

    Thanks should go out to John Hansen (the author) for all the contributions he has made, and continues to make to the Mindstorms Robotic community. The Mindstorms is a great platform to aid the young in learning and teaching the old to stay young.

    Rating: 5 / 5

  4. Summary: An excellent ‘next step’ for getting the most from this powerful computer system

    Mindstorms NXT is robot building tool from Lego. The centrepiece is a large “brick” containing a 32-bit ARM7 computer – the kind of computer you might find in a PDA or a Smartphone. The kit includes a graphical programming environment capable of quite complex programs as well as being accessible to beginners and youngsters. The kit also includes motors and sensors, wheels, gears, and a whole lot of technic-style Lego to hold them together.

    John Hansen’s book takes all of these components and organises them in a coherent and easily understandable fashion. He describes how to use the various components and explains the sensors (that range from a simple contact switch to a sophisticated ultrasonic distance sensor). However, the real strength of the book is in its approach to programming of the system.

    Power Programming describes how to maximise the capability of the kit by programming it using a conventional, textual programming language that is close to standard C. This is both more natural to anyone who already has a smattering of programming knowledge and, ultimately, capable of more complex and much faster programs for the NXT. Best of all, the system that Hansen describes is a free, open-source toolkit usable on Mac, PC and Linux; just download it from the WWW and you’re ready to roll.

    NXC (Not eXactly C) and the complementary assembler, NBC (NeXT Byte Code) are explained in a clear and authoritative way (Hansen is the author of the compilers too) before the book explores the rest of the system. Each item is introduced in the context of a real robot (you can build these from the step by step instructions) but in a style that explains how it actually works; so the reader is left understanding how to apply each item in their own programs. Later chapters dig deeply into advanced programming of the sensors and communication between several robots without ever becoming inaccessible. And, lest I have made it all sound too dry and worthy, there are detours to examine such things as playing Space Invaders on the NXT and producing a Bedroom security system and remote controlled car.

    This is a well-written, clearly presented and very well produced book from an acknowledged expert. It’s not for young children but anyone with a little programming knowledge and an interest in computers and robots will find it entirely indispensable. Just beware that, while the tools it describes are free, it could well convince non-owners that they need to buy a NXT!
    Rating: 5 / 5

  5. While the official NXT-G programming language included in the LEGO Mindstorms NXT set works well for many people, what if you want to increase your programming potential or simply prefer a text-based language rather than a graphical one? John C. Hansen’s book provides the answer to both of these questions by teaching you how to program the NXT in NeXT Byte Codes (NBC) and Not eXactly C (NXC).

    The book begins with an introduction to some basic programming concepts and then shows you how to set up NBC/NXC. Since these unofficial languages are based on the standard firmware, you don’t have to download custom firmware to your microcomputer, making setup a breeze. Chapters 2 through 4 discuss the NXT hardware, NXT firmware, and basic construction concepts, respectively. If you’re new to the NXT set, you’ll find these chapters helpful.

    Chapter 5 covers the BricxCC IDE, which supports NBC, NXC, and a number of other languages. This is definitely one of my favorite chapters. BricxCC is an incredibly powerful but user-friendly program, and this chapter shows how to effectively use and customize BricxCC. Perhaps the most interesting chapter in the book is Chapter 6, which discusses free NXT utilities that perform miscellaneous functions.

    The real power programming begins in Chapters 7 and 8, which cover NXC and NBC. If, like me, you’ve programmed the RCX microcomputer in Not Quite C (NQC), you’ll be glad to see that Hansen created NXC with a lot of the same features and same “feel.” Naturally, these chapters are most easily understood if you have a background in C or programming in general, but such knowledge is not required. The book assumes you are a beginner and explains fundamental programming concepts. If you need more information about a basic concept that the book doesn’t discuss in great detail (for example, using arrays), you could easily consult an online resource.

    Chapters 9 through 16 teach you how to build a basic robot (Versa), program basic and advanced NXT outputs, program basic and advanced NXT inputs, create an intruder alert robot, explore “games that people play” on the NXT, and control an NXT robot remotely. It is through these chapters that you get practical experience in using NBC/NXC.

    In conclusion, if you’re looking for an effective and user-friendly text-based programming language for the NXT, then this book is for you. NBC, NXC, and the BricxCC IDE are outstanding resources, and this book teaches not only the basics but also quite advanced concepts (which will be of interest to expert users out there). Bear in mind, however, that this isn’t primarily a book of building instructions. Its purpose is to teach you how to effectively program robots–and it accomplishes that purpose very well.

    Rating: 5 / 5

Leave a Reply

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