Reputation: 27436
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!
Upvotes: 10
Views: 11545
Reputation: 1
Lets see the demonstration of possibilities of NXT++, the histogram filtering, https://www.youtube.com/watch?v=PDYtjWgvsxg it is based on the latest version supporting multiplexers, from http://wmii.uwm.edu.pl/~artem and download section,
Upvotes: 0
Reputation: 359
I came across this thread last year, while working on a project using C++ to control a robot arm. I used 2 NXT bricks and 5 motors.
You can find the original NXT++ 0.6 library here:
http://nxtpp.clustur.com
https://sourceforge.net/projects/nxtpp/forums/
Unfortunately this site is not being updated.
I forked a new version NXT++ 0.7 with some fixes, and support for multiple bricks, via USB or Bluetooth:
https://github.com/dbworth/nxt-plus-plus
See the Readme file for details.
Another user, Piotr, has added support to NXT++ 0.6-2 for the HiTechnic sensor multiplexor and Lego color sensor:
http://wmii.uwm.edu.pl/~artem/downloads.html
Regards,
David.
Upvotes: 1
Reputation: 19
I used this one, I don't know whether you have checked it out or not:
http://www.norgesgade14.dk/bluetoothlibrary.php
This library provides support for reading various sensor data over a bluetooth connection as well as support for controlling motors.
Moreover the library can be easily modified, and I found it extremely easy to reconfigure it.
Upvotes: 1
Reputation: 7894
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/
Upvotes: 3