Tag Info

Hot answers tagged

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 ...


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

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 ...


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

This can usually be achieved on the EV3 with a bootable SD card - you would set that up with a new firmware image and a loader that copies it across to the brick. The leJOS team have ported their codebase to the EV3 - so with a bootable SD card you can indeed load a modified version of the firmware onto your EV3 brick. You can then use their WiFi stack to ...


3

In EV3, use a negative number for the power to go backwards.


3

I could not find this in the help file, but according to this thread "Another little known characteristic of MyBlocks is that they aren't re-entrant. No two copies of the same MyBlock can be running at the same time." I tried a few simple programs in EV3-G and confirmed that this is true. The order in which they run appears to be random.


3

You can use the Bluetooth mailbox feature to pass messages back and forth between 2 NXTs. If you want to use sensors, you could use the HiTechnic NXT IRLink Sensor (NIL1046) and NXT IRReceiver Sensor (NIR1032).


3

I think I'd use the ultrasound sensor instead of the touch sensor (or the brightness sensor with the light turned on in a dark tunnel). I haven't tried this but I'd worry about the touch sensor derailing or scratching the train. Otherwse, your system sounds pretty doable. The collision risk could be addressed by setting up the sensor a little further before ...


2

No. Unfortunately there are no shortcuts. EV3-G can not open programs written in NXT-G. To quote Lego: 9.5 I have a LEGO MINDSTORMS NXT2.0 (8547) set; will there be an upgrade/conversion kit from NXT to LEGO MINDSTORMS EV3 (31313)? No, but LEGO MINDSTORMS EV3 offers backward compatibility to NXT. You can therefore use your NXT Intelligent Brick ...


2

My FLL team wrote a light sensor myblock that converts the raw value to a number between 0 and 100. They run it on the EV3 so they can use their existing NXT light sensors. It should work on the NXT brick as well. Here is the video they posted to explain how it works. http://youtu.be/I7Bqvk-uMLk


2

We experimented with the invert motor block at the beginning of this year's FLL season with disappointing results. The invert motor block only worked with the large motor block and not the move steering or move tank blocks. Use a negative number in the power field to go in reverse.


2

I am working on a project called ev3dev that runs Debian on the EV3. We are not quite to the point that we support "all the Robot EV3 functionalities", but we are getting very close. We are also using a version 3.3.0 Linux kernel, which is more up to date than the other EV3 firmware projects that I know of (which use a 2.6.33 kernel). If you would like to ...


2

I think that it mean that the virtual machine running on the EV3 brick has encountered an unknown instruction. Perhaps your program has become corrupted or there is an block that is not configured correctly. I would copy and paste your blocks into a new program and see if it works. If it does not, start a new program from scratch or just copy a little bit ...


2

No, EV3 MyBlocks cannot be recursive. If a MyBlock contains a copy of itself, then the following error will be produced upon compiling: For some reason, LEGO's programming software has become progressively less immediate about notifying you that this cannot be done. In EV3-G, it waits until compile to let you know that you can't do this. In NXT-G (the ...


2

Since you are a C# pro, I would recommend MonoBrick. I know they have a plugin for Xamarin Studio/MonoDevelop that lets you do remote debugging. Not sure if they have one for Visual Studio yet.


2

Works for me if you set buffering to 0 and get rid of the newlines. import time # command to start motor on port A at speed 20 start_motor = '\x0C\x00\x00\x00\x80\x00\x00\xA4\x00\x01\x14\xA6\x00\x01' # command to stop motor on port A stop_motor = '\x09\x00\x01\x00\x80\x00\x00\xA3\x00\x01\x00' # send commands to EV3 via bluetooth with ...


2

I started coding using NXT software and later EV3 and lately I have switched to java using leJOS. EV3 software ( and NXT ) is great for quickly hacking your ideas but when things get ugly the graphical language doesn't help at all. Just watch what I needed to do to create a playable version of Pong for one player at ...


2

I got also the wheels and found it really interesting... so I wrote an article were I explain all the maths and show you how to build one yourself ( instruction attached ) http://thetechnicgear.com/2014/04/howto-build-3-wheels-holonomic-robot-using-lego/ The code is for EV3 software and I will surely rewrite it for leJOS ( despite there is a class that ...


2

Time is thought of as a sensor value, measured in seconds. The Timer sensor can be used directly, as part of a Wait For block, as part of a Loop block.


2

I am currently maintaining my own fork of NQC for use on OpenBSD and OS X. As you have discovered, the recent compiler changes on OS X broke NQC in many places. Not to mention that the USB tower integration was pretty outdated. If you can compile it, it should work better than the ports version. AFAIK, I am now the de facto maintainer for NQC. (And may ...


1

You can consider this the "official" answer based on the EV3 firmware source code. This file is used for scaling the values that you see in "Port View" on the EV3 brick itself. The NXT Light Sensor is defined in these two lines: 2 0 NXT-REFLECT 1 1 3 0 2 119 0x32 3372.0 445.0 0 100 0.0 100.0 20 0 pct 2 1 NXT-AMBIENT 1 1 3 0 2 119 0x30 3411.0 633.0 0 100 ...


1

Can I only set an [out] param once? Yes. You cannot tell it to be 2 different values at the same time. This applies to any block, not just the output block. Does setting the [out] param act like the "return" keyword? Not really. The return keyword in most (if not all) programming languages causes the function to exit, which is not the case here. ...


1

Here is an article that may be useful: http://botbench.com/blog/2014/05/11/omniwheel-article-in-dt-practice/


1

There is an excellent model at Hitechnic, complete with building instructions and example programs. It's for NXT, but shouldn't be very hard to adapt to EV3.


1

Nothing is halting the "02" loop. It is running forever. The problem with the second loop is that "brown" is the default. The switch looks for "white" and anything else uses the "brown" side of the switch. I suspect you want the lower half of the switch statement to be "any color but brown". If so, the "default" button needs to be selected for the ...


1

You can get the Mindstroms NXT 2.0 software from here. It will run on newer versions of OS X.


1

Note: I have no particular knowledge of how monobrick work. You're never escaping the while (true) loop. The example you're pointing too use an event-based model, and it looks like you prefer a loop. This is what you want: class R_Main { public static void Main (string[] args) { R_Main main = new R_Main (); } public ...



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