Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ OOP Library for Programming the Lego NXT

Tags:

c++

lego

nxt

A while back, I got a LEGO Mindstorms NXT set for Christmas, and now I would like to program it in C++.

I have looked around, here and other places, and could not find a cross-platform, open source, OOP C++ library that "felt right", including lestat and nxtOSEK.

So, I have decided that unless I can find one I do like, then it would be a great learning experience for me to write my own library.

I have done a little research, and decided it would be easiest to communicate with it over bluetooth, rather than compiling my programs to the NXT machine code.

I would also like this to be done in OOP style, meaning the NXT brick, motors, sensors, etc would exist as objects.

So, my question is: what do I need to know before embarking on this? where can I get good references (besides here, and specific to the NXT)? What are other decent "basic" libraries* for things like Bluetooth communication?

*I am all for using boost and the STL, if necessary, by the way.

Alternatively, I believe in not reinventing the wheel if I don't have to, so if there is a decent C++ OOP bluetooth-communicating NXT library out there, let me know!

like image 319
Austin Hyde Avatar asked Dec 18 '09 03:12

Austin Hyde


People also ask

Can you program NXT with EV3 software?

You can programme your NXT Brick using the new LEGO MINDSTORMS Education EV3 Software. However, not all of the EV3 Software features are supported by the NXT Brick.

Is NXT better than EV3?

Brick. Figure 6, the EV3 brick, is faster and has a stronger processor compared to Figure 7, the NXT brick. However, the EV3 brick takes longer to start up than the NXT; this may be something to consider for those who use these for competitions.

What program is used to robots under the Mindstorms NXT range?

ROBOTC. ROBOTC is an integrated development environment targeted towards students that is used to program and control Lego NXT, VEX, RCX, and Arduino robots using a programming language based on the C programming language.


1 Answers

I've taken a look at doing this before.

Start looking here: http://bricxcc.sourceforge.net/

On this page you can download the source for it. What I ended up doing is compiling my C source code down to byte codes that the NXT brick can understand.

This allowed me to add some custom extensions to C though I did spend alot of time compiling C down to a compact enough form in byte codes that fit into the NXT's memory:)

If you want to use an existing C implementation then check out this chart: http://www.teamhassenplug.org/NXT/NXTSoftware.html

For a list of the NBC(Next Byte Codes) start with this page. I found it extremely helpful.

http://bricxcc.sourceforge.net/nbc/

like image 125
chollida Avatar answered Sep 30 '22 13:09

chollida