Tag Info

Hot answers tagged

15

The programming interface used by LEGO creates programs which make use of the standard firmware, that is, the one provided by LEGO. If you look at alternatives (see also this answer for more information), you'll notice that quite a lot of them use the same firmware. This means that the programs they produce use the same language which is interpreted by the ...


10

Yes, this is definitely possible! You can connect up to 7 different NXT devices from one computer and one Bluetooth dongle (theoretical limit). I have tested this with the RWTH - Mindstorms NXT Toolbox for MATLAB) successfully with 5 NXTs on Linux and with at least 2 NXTs on Windows. In real life, it depends on your Bluetooth hardware. Your Bluetooth stack ...


10

There are alternate text-based programming languages for the NXT. Three of the most popular ones are NXC/NBC, LeJOS NXJ, and RobotC. There are many more, all with their pros and cons, and are much more versatile than NXT-G, even on slow computers. I my personal favorite is NXC/NBC. But really it's up to you. The best way to see what suits your needs is to ...


10

I was looking into this just recently. There are libraries and also it seems there are other firmwares offering alternative operating systems you can embed on the Mindstorm. For C++ you could try: nxtOSEK is an alternative OS offering a C++ api BrickOS is an alternative OS with a C/C++ development environment NXT++ is a C++ lib for controlling the ...


8

No, but you can use a very similar programming language: Enchanting. (I haven't tried it yet. It was recommended by the programming instructor).


7

I think that all you might need is the Microsoft Robotics Developer Studio. The examples that I could find all refer to C#, VB.Net, or the included VPL languages but there isn't any reason you wouldn't be able to reference the same objects from managed C++. It does look like there might not be a full set of services for all of the more recent parts judging ...


7

You can't calibrate the motors, neither mechanically or in software. There is however several methods in the software to account for this. The standard NXT firmware contains a synchronization mode which attempt to keep the two motors aligned. In NXC you can do this by using the function OnFwdSync like this: OnFwdSync( OUT_AC, 75, 0 ); First parameter is the ...


6

It turns out that the issue is a faulty/weak motor connector socket. While randomly trying to troubleshoot, I found that if I did nothing more than press or move the cable, the motor would act bizarrely. Initially I thought it was a bad cable, but after trying additional cables it seems that it is more likely just a poor connection at the motor. I suppose ...


6

The difference in speed can't be avoided. Even if the motors themselves were carefully paired, differences of friction on the axles or weight unbalance of the robot would result in speed mismatch. I am not used to LabVIEW, but the NXT firmware has a way to synchronize two motors, this functionnality should be available in LabVIEW.


5

From the page you linked to we can see that the NXC OnFwd method has the following parameters: void OnFwd (byte outputs, char pwr) The power or speed parameter is listed as a char type, and looking around elsewhere on the site we find the definition of the char to be: In NXC the char type is a signed 8-bit value. This type can store values from ...


5

After looking around a bit in the NXT IO palette in LabVIEW, I found a few functions which will sync the motors while driving the robot. The "drive distance" and "steering on" VIs will both sync the motors appropriately to make the robot drive straight. The "motor on" and "motor reverse" blocks, which are the default options if you don't go down into the ...


5

Your code handling the behaviours like "Shoot 3 times if the touch sensor is triggered" or "Shoot if the light sensor is triggered" should use 'if' statements. Then, instead of always being called, the "shooting" code would append only on sensor events. After shooting, the robot would then go back to the "Driving around" part of the code. This page is a ...


5

No, the standard NXT-G software provided by LEGO will not allow you to program a RCX brick. Outside of official software, your best bet is probably to use NQC which is C-like; there's also NXC for the NXT which is similar. There are a lot of others which have been discussed in the following questions: Is there any other way to program the Lego Mindstorms ...


5

Mitch Resnick at the MIT Media Lab is the developer of both Scratch and the original Mindstorms programmable brick, and the original Mindstorms programming interface was very similar to Scratch. If you have one of the original Mindstorms Robotics Invention System sets (and a PC of the proper vintage on which to run the software) she would probably find it ...


5

The ultrasonic cannot detect the color of objects. It's just to detect the distance between the sensor and an object in it's line of sight. To find objects in the surrounding area of your robot you have to look all around. This is simply done by rotating your robot or your sensor. When you measure a distance in a certain range (best results between aprox. ...


5

The problem can be restated: 360 / 20 = 18 deg / sec = 1 deg / .056 sec One degree is the smallest increment provided by the rotation sensors. NXT-G has a timer sensor with 1/100th second resolution. In pseudo-code: Set a motorPower variable to 10 Start a timer Loop until rotationDegrees >= 360 If timeElapsed * 18 > rotationSensorDegrees ...


5

If you wish to program the EV3 with Scratch, then check out this project on github: https://github.com/koen-dejonghe/ev3-scratch-helper-app This software is a so-called helper app, that interfaces between the Scratch 2.0 offline editor and the Lego Mindstorms EV3. The EV3 must be booted from Lejos (http://sourceforge.net/p/lejos/wiki/Home/), requires a ...


5

Yes, it is possible to pass the port number as a parameter to a sensor or motor block via data wire. It's just that it's manually selected by default. To change this, go to the port of the sensor or motor block, and select the top-most option which has the plug icon on it: It will then create a data port for which motor port you want to use: The same ...


4

Try putting a Wait block after the motor block. Set it to wait for 5 seconds. I think your program just terminates after one block. Please post your program next time you have a mindstorms question.


4

I think the simplest way is to use an NXT Converter Cable (Available from Bricklink). This has an NXT connector on one end and the standard 9v connector on the other. You can connect the 9v connector to any 9v battery box, (e.g. Battery Box with Switch (9V)) and, depending on the polarity, power the NXT motor forward or backward. Now, the issues: The ...


4

Please help make this post better! This needs: Clean up Removal of irrelevant information plagiarized from copied off Wikipedia Links [Possibly] Pictures or Code samples NXT-G Graphical programming environment Uses Blocks Based on LabView Parallel "sequence beams" are actually parallel threads Comes bundled with the NXT The ...


4

You can program the raw hardware: The main microcontroller in the NXT is an Atmel AT91SAM7S256 (data sheet), which uses the ARM7TDMI core from ARM. This core is supported by gcc, so you can use GNU tools to program it in Assembly/C/C++. You can build a firmware for the AT91SAM7S256 and load it via USB, after putting the controller in SAM-BA mode by a long ...


4

I believe one possible answer can be found in the sample program for the color sorter in the Mindstorms control software. The technique that kit uses is to create a series of nested if/then loops: if (Color == red) { //do red things here } else { if (Color == blue) { //do blue things here } else { if (Color == green) { //do green things ...


4

I believe that you need to run the Mindstorms Education program in Compatability mode. The easiest way to do this is to: Right click on the Mindstorms shortcut on either your start menu or desktop and select "Properties". Switch to the "Compatability" tab. Check the "Run in Compatability mode", and from the drop down that is then enabled select "Windows ...


4

As far as I remember there is no possibility within NXT-G to programmatically execute another program. Moreover, as I understand it the default firmware simply doesn't have that possibility (the command to start a program is a direct command which must be sent via bluetooth and can't be used in a program). Maybe other programming languages using other ...


4

You can turn parts of your program into custom blocks by selecting them and choosing Tools -> My Block Builder from the menu. See https://www.youtube.com/watch?v=CApCoGQJRcU for a tutorial on this feature.


4

To get the actual time of day, you can use the mindsensors.com Realtime Clock Sensor.


3

I am not used to LabVIEW... but RIC image files, supported by NXT firmware, can also be used by LabView I guess. So nxtRICEdit may help. See also RICfont utility, more information (though targetted NXC/NXT-G, should be useful) here.


3

The RWTH documentation about initiating connections has a sub-chapter called "Using multiple NXTs" which can be found here: PC to NXT Communication - Using multiple NXTs The C++ communication from norgesgade14.dk claims to support: "Open and close connections with multiple NXT units" on its overview page. So it should be possible to do this, though I can't ...



Only top voted, non community-wiki answers of a minimum length are eligible