6
$\begingroup$

We have an optional course in our high-school which is about robotics. We're using the Lego Mindstorms NXT and program it with the original Mindstorms-software. However, we want to advance and use a major programming-language. We have tried NXC and LeJos. Plus, I tried out the Microsoft Robotics Development Studio, but with all these different possibilities we are a little bit overwhelmed.

Because of that (now it becomes interesting), I want to ask, what technology is the best for NXT and especially: What is easy to use? I don't want to need 14 steps just to compile a program and get it running on the NXT. Also, it would be nice, if it's an extend-able language, like using C#, but are there some better or easier possibilities?

$\endgroup$
1

3 Answers 3

8
$\begingroup$

"We have tried NXC and LeJos. Plus, I tried out the Microsoft Robotics Development Studio, but with all these different possibilities we are a little bit overwhelmed."

That basically leaves RobotC - which is easier to use, and reasonably powerful. As it is based on C, you will not find it as powerful a language as JAVA (LeJOS), but robotics stuff is built in (motors/encoders, reading sensors, I2C, bluetooth). It does include a good IDE and debugging system, something NXC and LeJOS are missing.

MRDS is really not suited for NXT since it does not run on the NXT:, it is simply a remote control system. You can look at mindsqualls for an alternative and not quite as complicated C# remote control system if that is acceptable to your project/studies.

A few people have ported MF (micro frameworks C#) to the NXT but there was 0 room left, making it very impractical.

$\endgroup$
10
  • 3
    $\begingroup$ No need to be pre-emptive. Robotics.SE is open to all, nxt questions are certainly on topic here and, in my experience, posters limit their answers to what's asked. If the OP is asking about NXT, answers will be about NXT :) $\endgroup$
    – ThomasH
    Commented Nov 30, 2012 at 0:28
  • $\begingroup$ That certainly has not been my experience so far. $\endgroup$
    – Spiked3
    Commented Nov 30, 2012 at 1:37
  • $\begingroup$ Accepted this answer, because it really helped us :). We'll use RobotC, as it seems to be the best for our needs. $\endgroup$
    – looper
    Commented Nov 30, 2012 at 9:18
  • 1
    $\begingroup$ What makes you say that you need to write assembly code for the Arduino/Raspberry Pi? That's simply not true at all. The entire point of the Arduino API is to abstract away a lot of low-level C (peripheral configuration register manipulation, etc), never mind asm. That's an even sillier thing to say about the Raspberry Pi, where you can manipulate GPIO in Python. $\endgroup$
    – Joe Baker
    Commented Nov 30, 2012 at 9:24
  • 1
    $\begingroup$ @Spiked3: That certainly has not been my experience so far--if you're talking about this argument of ours, the OP was clearly asking for an alternative to NXT. And please could you stop getting worked up about Arduinos/RPis? This type of argument is unnecessary for this site. $\endgroup$ Commented Dec 1, 2012 at 16:54
3
$\begingroup$

The kit supplied NXT software is a bit basic, agreed... but before trying anything more complex, I can commend NI LabView for NXT

Not only is this an improvement on the NXT-G but this gives you an introduction to LabView which is widely used in the Real World for data acquisition and test systems.

I'm sure there must be a C/C# API out there (I've not looked though)

$\endgroup$
1
  • $\begingroup$ Yeah, we looked at NI LabView, too, but we didn't know that there could be an API :O. Thanks! $\endgroup$
    – looper
    Commented Nov 29, 2012 at 20:45
3
$\begingroup$

NXT-G is based on LabView. If you don't like LabView, you won't like NXT-G. Good news though. Lego just debuted Mindstorms EV3. It uses a language based on ICON. Something you may be more interested in. It should be available this winter. http://mindstorms.lego.com/en-us/News/ReadMore/Default.aspx?id=476243

Also, while browsing questions on this site, I learned about this: http://www.ros.org/wiki/Robots/NXT

A group has apparently built bindings that are relatively simple to use for the Robot Operating System and NXT. EV3 is still cooler, but if you simply must use NXT, I would give ROS a try.

ROS uses NXT-python which you might also give a look as well.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.