7

LEGO calls this communication protocol the "LEGO Wireless Protocol" (LWP). The documentation is publicly available at https://lego.github.io/lego-ble-wireless-protocol-docs/. There is also a GitHub repository that provides the source of this website at https://github.com/LEGO/lego-ble-wireless-protocol-docs. Because of this, it seems reasonable to expect ...


5

Boost and the other Powered Up components (the new City trains, the app-controlled batmobile, and WeDo 2.0) are controlled via Bluetooth. Any environment that can send bluetooth commands can be used to control these components. There is a github page which documents some of the reverse-engineering that has been done and it links to several third-party Boost/...


5

The EV3 brick runs a linux kernel so it is extremely compatible with many different programming languages. 3rd-party support packages for basically any language you can think of have been made, and most are very mature by this point. A quick google search can come up with some of these. This previous post, among many others on this site, can help point you ...


3

It is not a protocol limitation. It is a sensor limitation. There is a microcontroller on the LEGO EV3 Ultrasonic sensor that cannot be updated so there is no way to measure more than that. So to measure more than 255cm, a 3rd party sensor is needed, e.g. https://mindsensors.com.


3

You either have to recharge your battery (if you're using a battery pack) or replace the batteries (if you're using normal batteries). If this symptom persists after charging the battery pack, try to do a master reset on the brick. Failing which, you might have to replace the battery pack.


3

Just as an aside you can also do the following: sudo ln -s /dev/usb/legousbtower1 /dev/usb/legousbtower0 That worked for me, and my challenge now is that there is no firmware :-)


2

As far as I see, you have two possible ways of accomplishing this, given that you have already built an Altazimuth mount or any other two-dimension mount from the two motors that can hold the color sensor and point it in any direction. Calculation This is the harder way but it grants neater results. It involves taking a precise measurement of the device's ...


2

There will certainly be some mechanical and robotics questions that you'll need to figure out, such as where on the car to position the sensors, and how to ensure that the car is reliably reading both colors at every intersection. (Which brings up contextual questions like "are there discrete intersections?") From a programming perspective, 49 possible ...


2

Not C but you might take a look at https://github.com/JorgePe/pyb00st


2

Here's some pseudocode that does what you need: Reset timer Loop block: Sensor block, output logical TRUE when condition is reached Timer block, output logical TRUE when X seconds have passed Logic block, outputs logical TRUE if sensor OR timer is true End loop when it receives TRUE from the Logic block. Switch block: if sensor = condition,...


2

If you want two things to run at the same time place the first just in front of but not touching the start block and the other just below the first. Click on the joiners (grey ovals on the end where blocks join) and press wire from here and tap on the first code. Do the same with the second.


1

It's been quite a while since I've programmed a robot, but using only the sonic sensor does make it a bit more challenging. Also, not knowing anything else about the robot you've built (it's size, other sensors & their location, the ball grabbing mechanism, etc.) it further complicates any possible advice. That being said, the only solution I could ...


1

Veering off a little bit is normal. Can it be reduced? Yes. There are several possibilities to consider, one of which is the programming. Put a pin in the hub of each wheel to serve as a marker, spin the wheels so the in the same position. Write a program to go straight for 20 revolutions. Hold the robot in the air, run the program, and examine the ...


1

Using variables is probably a better solution, but you can pass data wires into a switch block if it is tabbed view.


1

To get technical, this thing (pictured below) is a "parameter", not a "variable". "Variables" look like this: You can use a data wire to write the parameter value to a variable before the switch block and then read the variable inside of the nested switch blocks. Something like this...


1

You have not provided your programming language of choice, so I'll answer in pseudocode which can then be adapted to the specific environment. It should be possible with the following construction: do { if (on_line) { // this may be a variable you update periodically or a method to call every time last_time_line_seen = now() // ...


1

You can't start a program with the remote (8885) or beacon (45508), however you can certainly have your program respond to a remote or beacon if you have the IR sensor (45509). So what you desire can for example be achieved by embedding your base program in one big loop and at the start of the loop have the program wait for a button pressed on the remote or ...


1

You can try our just released WeDo 2.0 Framework that should suppot Boost partially (full support will be added soon). It is open source and free for education (written in C#). You can find it by this link: https://github.com/btframework/WeDo


1

Another option is Small Basic, designed for children. Download EV3Basic and get started!


1

If we knew the developers' thoughts ... maybe they intentionally made it hard to change blocks in order to support some programming paradigm for kids (according to their opinion). What I do is: Always put the variables into the block while their values come from outside constants. Never cross commands boundaries with wires. Put all the variables inside the ...


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