Hot answers tagged

4

Use a Motor as Input You may be limited by the amount of touch sensors you can use, but you have one very useful form of input that you may not be aware of. EV3 motors have the ability to provide a value based on rotation in degrees. Adjusting the rotation of the motor by hand, you can input very precise numbers quickly. To rotate the motor easily, attach ...


3

I just created a Node.js library that supports reading and writing to the Lego WeDo kit: https://www.npmjs.com/package/wedo-support Install > npm install --save wedo-support Use const WeDo = require('wedo-support'); const wd = new WeDo.WeDo(); // Activating the first motor full forward: wd.motorA = 100; // Activating the second motor half speed/...


3

There is a (new?) LEGO brand sound sensor (9845) for $35 on the LEGO store. I don't know if it's suitable for your particular application but sounds plausible. Using the NXT Brick (sold separately), the Sound Sensor allows your LEGO® MINDSTORMS® NXT robot to hear! The Sound Sensor is able to measure noise levels in both dB (decibels) and dBA (frequencies ...


3

The possible solutions involve realizing that you can multiply the number of possible inputs by implementing long clicks, double clicks, click-and-holds, simultaneous clicks, etc. on the buttons. If I were you, I'd also include a Confirm and maybe a Cancel buttons, but the latter can be substituted by a timeout. You could ease your job if you don't handle ...


2

I think you should be able to do this. The screen is represented by a framebuffer device. In Linux, everything is a file, so even the framebuffer is a file, namely /dev/fb0. So, you should be able to read the display by reading the /dev/fb0 file using something like this: EDIT: Using direct commands didn't work out so well, so here is a sample using system ...


2

There are two options that I can think of. Do the "hardware" fix before every run of the robot to reboot the sensor along with the "software" fix to zero it. Don't use the Angle reading at all. To calibrate the sensor, sample the rate (d/s) 10 times or so and take the average to get the "at rest" rate offset and store it in a variable. Subtract this ...


2

MyBlocks are not reentrant; only one thread can be using the block at a time. When a second thread tries to execute a MyBlock that is being used by another, the second thread blocks until the first thread exits the block. This normally isn't a problem for MyBlocks that do simple calculations. They finish quickly and all threads make progress. But if a ...


2

Updating to iOS to 10.10.5 seems to have solved the problem for me. Hopefully this helps someone else out there.


2

Is this even slightly possible or a waste of time? It might be possible but requires effort and probably a fair amount of research and hacking on your part. I'm not saying I know for sure if an exploit exists, either in the communications protocol or the BT firmware, but exploits are always possible. And it's not like LEGO is incentivized to look for ...


1

I think that most sumo bot competitions do not allow interchange of information between bricks. And you have to connect via Bluetooth with your opponent's bot, which requires your opponent's permission.


1

Create a My Block that looks something like this: Then you can select the ports like this: The 23 means ports B+C (see below). From the help file: Wired Input of Two Ports If you configure a Move Steering or Move Tank block for wired port input, you will need to specify two different port numbers: one for the left motor port, and one for ...


1

Scratch for LEGO Mindstorms EV3 One way is to use the open-source online programming environment Open Roberta Lab: http://lab.open-roberta.org there is also a wiki included for detailed information. Or just google Open Roberta at wikipedia. Everything is for free.


1

This looks like a state machine. Save the "state" of your program in a variable. The state will be which program to run, so 1, 2 or 3. You will also need some more variables to track the previous state and how many times a program has run. Code flow will be something like this: next_state = 1 prev_state = 0 run_count = 0 begin loop compute_next_state ...


1

I know this is 3 and a half years late, but I figured I'd throw in my two cents. Attach an NXT light sensor and an RCX light sensor facing into each other. You can communicate bi-directionally by flashing the built-in LEDs. On the RCX side, this can be accomplished by switching the sensor mode between touch sensor and light sensor to passivate or ...


1

The Gyro is a tricky sensor to use, but at yesterday's FLL competition in Elk River, at least 5 teams had worked out the issues to their satisfaction. I'm revealing their answers here. It is unfair to those teams, since their research does represent a significant advantage over other teams. That said, none of their solutions were complete. Each team had ...


1

You need to reserve 1 byte for the speed in return and 4 bytes for the tacho in return. However, the tacho has to be 32-bit-aligned and so you will need 3 padding bytes after the speed: unsigned char opOutput_Read[] { 0x0A, 0x00, // bytes in message 0x00, 0x00, // message counter DIRECT_COMMAND_REPLY, // tt = ...


1

Not without hacking the firmware, which would be against FLL rules. One solution I have seen many teams use it to only write one program. This program has it's own menu (that you have to make yourself as part of the program) that calls subprograms (presumably saved as My Blocks).


1

I have found a few project collections, but they tend to be hit-and-miss regarding the number and quality of downloadables. Into Robotics Mindcub3r, a single project EV3 projects on leJOS forums Mindstorms project collection on Genius, contains projects for NXT too that could be adapted for EV3 Tilted Twister, a collection of NXT projects that could be ...


1

LEGO MINDSTORMS EV3 was not releases until 2013, so I think it is safe to say that the software in question was designed for the NXT only and will not run on the EV3.


1

Here is another pattern that watches more than one sensor. Instead of parallel code blocks setting a variable value, this code combines sensor outputs to feed a logic block which feeds a switch. No variable is used. Note that only the touched side of the switch statement is used. Not an important difference, I just find it easier to follow. The other ...


1

You really have two major choices: Try to acquire, install, and run the official Lego software for the RCX. Use some third-party tool to develop programs that can be uploaded and run on the brick. (1) is getting harder and harder to do on modern computers. Personally, I would not bother trying. (2) means choosing some third-party tooling. The other ...



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