Lego NXT vs Arduino
I have always been interested in Lego NXT. It seems like a really easy way to get into robotics, and programming. I have never really figured out how functional it is in the “real world” (whatever that means)
The other day a coworker was really pushing the idea on me telling me I needed to buy a kit because it was so easy to build things. Now I really struggle with the arduino most of the time, but I enjoy the struggle, and I know that if I ultimately build something then I can replicate it fairly cheaply. That is my issue with NXT. It is REALLY expensive. It is expensive for legos, it is expensive for a microprocessor, and it is expensive for the peripherals. I think I’m past the target age of these things, but regardless, I priced out how much it would cost for me to “replicate” an NXT kit with and arduino.
Here’s the NXT specs fro the lego site (lightly edited for clarity)
# 3 Interactive Servo motors
# sound sensor
# ultrasonic sensor
# touch sensor
# light / color sensor
# 519 specially selected LEGO TECHNIC pieces
# 4 input ports, 3 output ports and 7 6-wire cords
# Matrix display
# Real sound speaker
# USB 2.0 and Bluetooth support
# Easy-to-use PC and Mac compatible interface
# Intuitive, icon-based drag-and-drop program “building” environment.
and there is this special offer
*Purchase 8527 LEGO® MINDSTORMS NXT and receive a FREE F9847 Bluetooth® Dongle.
The NXT kit 8527 will run you $249.99
Here is the breakdown for the Arduino
color light sensor $19
“Touch Sensor” Aka Pushbutton $2.99 (2)
ultrasonic sensor $$27
3 continuous rotation Servos $39
Microphone $3.79
Arduino Decemilia usb starter kit $65.00
protoshield
ncludes a 10K potentiometer, 1K potentiometer, 2 small pushbuttons, 5 red diffused bright LEDs, one each of red, green and blue ultrabright LED, 5 100 ohm resistors, 5 1K resistors, 5 10K resistors, and a CdS photocell (new!). Also includes 4 pieces of 18″ long jumper wire
LED MATRIX $6.95
All of that comes to $163.73 before taxes and shipping! $80 lessFor that you are getting a lot more functionality, and more applicable hardware knowledge. Granted, the “knowledge barrier to entry” is higher, but I think that when robotics are concerned, everyone is probably interested in learning just as much as they are in results. This is a pretty heady field. On the other hand I don’t think there is any dispute in saying that the nxt is cool for kids to play with. My interest in this whole proposition is more because I am sick of people telling me to buy legos, when you can buy the real hardware for less. If your kid is either einstein, already interested in programming, or over 15, I’d say stay away from the familiar bricks.
Just for kicks, lets load up the cart until we hit our fabled $249.99 price tag!
…we can build up our electronics toolkit.
diagonal cutters $2.95
wire strippers $3.95
1 lb of solder $12.99
Basic soldering iron $7.99
…We can make some pcb boards…
PCB Etching kit $15.99
…We can even get an extra arduino, this time in a smaller form factor!
Boarduino $17.50
USB TTL-232 Cable for boarduino $20
In conclusion – I say go for the route of more knowledge, It’s usually cheaper, more frustrating, and ultimately more rewarding. You don’t even need to go the arduino route, you could go basic stamp, pic, or any other kind of chip! I think the only reason for an adult to get an NXT is the one that never gets mentioned – you can buy it “for the kids” and then play with it into the night…
I don’t agree that the mindstorms NXT is “REALLY expensive”. If anything i think your breakdown shows how much of a great value it really is. Consider the fact that while you have bluetooth on your list of NXT features, you did not choose the bluetooth arduino which is ~$100 more. And the lego building blocks, which physically connect to the various motors and sensors, provide quite alot.
Thanks for the article, it was really useful.
M.F. – I agree with you that IF you need bluetooth, then it might possibly be a closer horserace. I personally haven’t ever felt the need for it, but that is probably determined by the kinds of things I buy.
Can the nxt operate tethered to a computer? That is the one area where I could see bluetooth being useful. From my (admittedly small) knowledge of NXT I thought that data transfer was for pushing firmware onto the device.
Regardless of the bluetooth issue – the fact remains that after you have built your first creation it is much more expensive to produce a second via NXT. With arduinos starting at $37.50 it’s a pretty simple choice for me.
That being said, I wouldn’t turn one down if I saw it at a garage sale. It’s still cool, just not cheap!
As someone who owns a large number of AVR microcontrollers (well over 100), Arduino Shields (almost 50), and 22 separate Arduinos of various style and make. I am obviously a FAN of AVR technology. I love the ability to program the micro-controller at a low level, and don’t want to have to use some “slick UI” to make a motor run, I’d rather flip bit (literally).
So, normally, I would agree with you, in that its better to learn these things at a low level. But in this case, you’re only thinking of the electrical aspects, and not the 3-dimensional and mechanical aspects.
In fact, just moments ago, I ordered an NXT kit. Why you might ask? Since I seemingly already have all the components that the kit contains. But the fact is, I don’t. I have no way to combine these pieces together in 3-dimensional space to make a useful design.
The NXT kit will allow me to connect those components together quickly and easily into a 3-dimensional creation. Much as the Arduino & Shields allow people to rapidly prototype by connecting sub-circuits together and writing the code, the NXT kit provides a quick and easy way to build a 3-dimensional electro-mechanical device.
Unless you happen to own a machine shop or are able to fabricate your own plastic parts, I simply don’t know any other way of doing this.
Bluetooth is one of the best features of the NXT. You can upload new programs via bluetooth. You can start and stop existing programs (letting you test, debug and reupload without having to chase down the robot and reconnect it to the computer).
But it goes beyond that. You can transfer data to and from your computer. You can even remotely control your robot using bluetooth.
Some of this is easier (in my opinion) using 3rd party software. Personally, I like ruby-nxt for writing programs that run on my laptop but control the NXT brick. NBC/NXC is good for on-board control.
I think the best options are hybrid onboard/offboard programs that transfer data to and from a bluetooth linked–letting you do the hard-core processing on a more powerful computer.
The only problem with the bluetooth is the range. It’s not bad, but if you’re remote controlling a mobile robot, it’s easy for it to drift a bit too far. Then it just continues to execute its last command. That can be bad.
Actually, my biggest problem with the NXT in general is the limited number of sensor and motor slots.
-Rich-
Oh, I also forgot. You can also do NXT to NXT communication. I was able to borrow a second brick from UH, and played around with this. There are some limitations, but it’s still pretty cool.
Personally, i think that arduino is better. the reasons: arduino lets you connect to almost any analog or digital device. you can cheaply make a board replica for finished products and use the main board for prototyping. arduinos can communicate with each other and comps. easily through serial or an x-bee. serial com is the real deal. it can connect to almost any computerized device easily. it has a much wider range of uses.
Besides. if you want a stand/frame, you can make it be anything. wood, metal, plastic ect. and it can be any shape.
I find all the arguments here true and worthy of consideration. I like lego mindstorms NXT over arduino (despite the fact I haven’t tried the latter :-P ) only because of the aforementioned mechanical aspects of robot design.
If your beam is too long or too short in lego you just move the pins or find another part. If you need to add a gearbox to your creation lego is fairly simple (although it’s selection of gears is a bit small imo ). If you do it on any other non lego medium prototyping will be a pain as if you need a different sized piece what are you going to do at home? I guess you can cut glue wood/plastic again or reshape steel etc… but these mediums take a very long time to manipulate. Legos you can change the size and gearbox of a robot fairly quickly. With the other mediums though you pretty much have to get it right the first time. If you’re heavy into engineering I guess that would make sense – I’m more of an experimental builder myself :-D
Arduino definitely has the cost advantage – I stumbled upon this googling on why the lego color sensor is 54$. I’m tempted now to somehow transplant a 3rd party color sensor or find a cheap color sensor to NXT hack.
(NXT user) don’t forget NXT support from NI (Labview):
http://zone.ni.com/devzone/cda/tut/p/id/4435
and Mathlab:
http://www.mathworks.com/programs/lego-mindstorms-nxt-software/
which allow control from PC
and third part providers (also of prototype boards) for example:
http://www.hitechnic.com/products