Page 1 of 2

Released: MindSqualls v2.0

Posted: 25 Jul 2011, 09:41
by mindsqualls
I am reviving my MindSqualls project after a prolonged period of hibernation.

With MindSqualls you can control your NXT robot directly from your PC. You write your program in C# or VB.Net or any other .Net language you like. You can command motors to run and you can have sensor values returned to you program.

Controlling you NXT this way does not give you the same control as running a program directly on the NXT, but there are plenty of other advantages and the power of being able to remote control your robot is well worth it.

MindSqualls v2.0:
  • Full support for NXT 1.0 and NXT 2.0.
  • NXT 1.0 Touch and Light sensors, the NXT Ultrasonic sensor and the NXT 2.0 Color sensor.
  • HiTechnic Compass sensor, Color sensor and the Acceleration / Tilt sensor.
  • Connect to your NXT via Bluetooth or USB.
  • Low-level usage: Implements all commands from appendix 1 and 2 of the BDK.
  • High-level usage: Work with classes like the NxtBrick, NxtMotor, Nxt2ColorSensor, HiTechnicColorSensor etc.
  • Programmed in C#.
  • Can be used from any .net language.
  • Can be used with the compact framework e.g. run from a Windows Phone.
  • Extensive documentation.
You can find it here:
http://mindsqualls.net

Leg Godt,
Niels

Re: Released: MindSqualls v2.0

Posted: 25 Jul 2011, 16:55
by linusa
Really cool, :like:! I think it's nice to have a feature-rich and stable remote framework for the popular and widely-used .net languages!

Since you seem to be back into development: Are you generally interested in improving the motor commands for better precision? If so, then this might be a solution for you: http://www.mindstorms.rwth-aachen.de/tr ... torControl . The nxt-python project has recently adopted it. The alternative would be to directly add support for the new APR http://nxt-firmware.ni.fr.eu.org/change ... egulation/ .

Keep on coding :-)

Re: Released: MindSqualls v2.0

Posted: 26 Jul 2011, 06:41
by mightor
Oh, I'll have to download the latest version. I am using Mindsqualls in my project :)

Thank you for reviving this project.

- Xander

Re: Released: MindSqualls v2.0

Posted: 26 Jul 2011, 06:54
by mightor
I posted about it on my blog: [LINK].

- Xander

Re: Released: MindSqualls v2.0

Posted: 26 Jul 2011, 08:10
by mindsqualls
linusa wrote:Since you seem to be back into development: Are you generally interested in improving the motor commands for better precision? If so, then this might be a solution for you: http://www.mindstorms.rwth-aachen.de/tr ... torControl .
Definitely looks interesting. :)

Yes, I must confess that I find it a bit annoying that you cannot control motors with the same exactness as when you run e.g. a NXT-G program on the NXT. This is also an issue that I have received a mail or two on in the past.

It has always been my goal that my main MindSqualls library should simply be able to work with the NXT brick as-is. But I can easily imagine that I will implement it as an "add-on project". Will give me a chance to experiment a bit with those mail-boxers – something that I have not done before (since I only have one brick)

Leg Godt,
Niels

Re: Released: MindSqualls v2.0

Posted: 26 Jul 2011, 08:30
by mindsqualls
mightor wrote:Oh, I'll have to download the latest version. I am using Mindsqualls in my project :)
That's actually a project that I have been following with interest. So cool to be able to remote control you NXT via a Kinect. Cannot wait until they release the final SDK.

(Myself I am working on a project with doing the same from a Wii remote).

One of the really rewarding (and somewhat unexpected) aspects of making the MindSqualls library is seeing just how many widely different projects that it is being used for. :D

Leg Godt,
Niels

Re: Released: MindSqualls v2.0

Posted: 26 Jul 2011, 18:25
by linusa
mindsqualls wrote: It has always been my goal that my main MindSqualls library should simply be able to work with the NXT brick as-is. But I can easily imagine that I will implement it as an "add-on project". Will give me a chance to experiment a bit with those mail-boxers – something that I have not done before (since I only have one brick)
Both downloading the MotorControl RXE file and flashing the brick with a new firmware (e.g. supporting APR) can be automated via batch files or shell scripts. If you're interested, just ask.

Re: Released: MindSqualls v2.0

Posted: 02 Aug 2011, 07:06
by mindsqualls
MindSqualls v2.1 - now has full support for the MotorControl-program:

http://mindsqualls.net/MotorControl.aspx

Re: Released: MindSqualls v2.0

Posted: 05 Aug 2011, 03:35
by linusa
Thanks so much for implementing.

While we're at it, another thing: Do you have the feeling that "I2C is slow", as in "the ultrasonic sensor could really be faster, especially via Bluetooth"? I'm not sure how exactly you request input data from digital sensors using direct commands, but there might be a way for you to save 1 packet on average (which could be as much as 30ms gain in performance, depending on statistics). I suggested this for nxt-python a while ago: https://code.google.com/p/nxt-python/is ... tail?id=11

Short summary: Instead of doing it like this:

Code: Select all

1. Use LSWrite to tell the sensor which I2C register you need
2. In a loop, keep polling LSGetStatus until I2C is not busy anymore (no error is detected, statusbyte == 0).
3. Use LSRead to retrieve the sensor data.
Now, maybe you've noticed, you already get a statusbyte with LSRead, too. So you can completely omit the LSGetStatus command. The optimized version looks like this:

Code: Select all

1. Use LSWrite to tell the sensor which I2C register you need
2. In a loop, keep polling LSRead until I2C is not busy anymore (no error is detected, statusbyte == 0).
3. Once the loop is done, you already have the sensor's answer (payload of last LSRead command with statusbyte == 0).
In regular cases, this can save 1 direct command out of 3. Even though in that nxt-python issue there were bugs reported, I'm sure it works this way -- we've been doing it for years and it significantly improved speed for digital sensors.

Maybe you're already doing it this way, then consider it done :-)

Re: Released: MindSqualls v2.0

Posted: 15 Aug 2011, 14:29
by mindsqualls
linusa wrote:Do you have the feeling that "I2C is slow" ...
Continuing this elsewhere before we get too off-topic:
https://sourceforge.net/apps/phpbb/mind ... f=3&t=1014