Lego EV3

I'm making a special section for the Lego EV3 as this is the basis of the robotics course that I began teaching in 2013. The EV3 is a great choice for learning about robotics in secondary school because Lego robots are widely used and a huge amount of pedagogical material is available to support learning with the Lego EV3 and with the previous version of the Lego robot, the NXT.

The EV3 is available in two versions, the retail (home) version and the education version. For a description of the differences see this page.

The retail version is now available on amazon.co.uk for around 250 GBP including (I think) free delivery.

I bought the education version for myself. Here it is set up in the standard 'driving base' configuration that is referred to in the education version of the software. This exact model (without the sound sensor) can be built with the education version of the EV3 kit and it's possible to build an equivalent model with the home (retail) version - see HERE.

This robot has five sensors:

  • the ultrasonic sensor (not included in the retail version, but available as an extra) uses sonar like a bat, measuring the echo delay of emitted ultrasound to determine the distance to the reflecting object.
  • the light sensor can detect colour, ambient light level or reflected light level.
  • the gyro sensor detects rotation angles accurately (not included in the retail version, but available as an extra)
  • the touch sensor detects physical contact (one of these is included in the retail version and two in the education version of the EV3 kit)
  • the NXT sound sensor is not included in either EV3 kit but can be bought separately (recommended!)

Since the intelligent brick only has four sensor inputs, one of the sensors, the gyro sensor, is not connected in the above photos.

Other sensors are available that are not mentioned above, such as the infrared sensor that is included in the retail version but not in the education version. Sensors and other accessories are also available from third party suppliers such as HiTechnic.com and mindsensors.com.

Both EV3 versions come with two large motors and one medium motor. The large motors are visible in the above photos and the medium motor is hard to see, sandwiched between the brick and the ultrasonic sensor. The medium motor is attached to the gripper.

The intelligent brick houses the Linux-based 'brain', an LCD display, a simple keypad and the batteries. The batteries can be 6 x AA or a special rechargeable battery that can be recharged without removing the battery from the brick. The rechargeable battery (but not the charger!) is included in the Education version but not in the retail version.

The above photos show a slightly modified version of the standard 'driving base':

  • I added a sound sensor. I pointed it upwards so that it will detect sound from all directions except from below, where the noisy motors are located.
  • I moved the gyro sensor from its flimsy support at the back to a location between the motors where it does not block access to the recharging socket of the rechargeable battery. If you do not have the Lego rechargeable battery then you could consider mounting the intelligent brick vertically so that the batteries can more easily be removed for replacement or recharging.

What does an EV3 program look like?

You program the EV3 largely by connecting programming blocks together. This is a good way to start to learn programming because it means there is less to type and less risk of spelling and grammar ('syntax') mistakes (the slightest syntax mistake in a computer program usually means that it will not run at all).

Here is an example of a very simple EV3 program with an analysis underneath. This program is intended to control a vehicle which (like a normal car) has two driven wheels. One wheel is driven by a motor attached to port B of the intelligent brick 'brain' and the other is driven by a motor attached to port C.

Read the sequence from left to right.

  • The first block is a 'start' block.
  • The second block is a 'move with steering' block. Inside the block we have, from left to right, an indication that the motors will turn for a defined number of rotations, then the steering is set to zero meaning 'go straight', then the power of the motors is set to 50%, then the number of rotations of the wheels is set to two, then the option of applying the brakes after the motion is turned 'on'.
  • The third block is a wait block. The first icon indicates that it will wait for a certain time and the second indicates that that time will be 1 second.
  • The fourth block is another 'move with steering' block. First we have an indication that the motors will turn for a defined number of degrees, then the steering is set to zero meaning 'go straight', then the power of the motors is set to minus 50% so the vehicle will move backwards, then the number of degrees for the wheels to turn is set to 720° (which is actually two revolutions like before), then the brake option is turned on.
  • The fifth block is a wait block configured, just like the third block, to wait for 1 second.
  • The sixth and last block is another 'move with steering' block. Inside the block we have an indication that the motors will turn for a defined number of seconds, then the steering is set to zero meaning 'go straight', then the power of the motors is set to 50% so the vehicle will move forwards, then the number of seconds for the wheels to turn is set to 1 second, then the brake option is turned on.

So you have understood that when this simple program is run it will make the robot move straight forward for a certain distance, then pause, then move backwards the same distance, then pause, then move forward for one second. The blue circles in the picture indicate which settings have been modified relative to the default settings of each block.

Note that there are two versions of the EV3 software and they are both now available free. The 'retail' or 'home' version (downloadable HERE for Windows and MacOS) accompanies the retail version of the EV3 and the education version, available HERE, is intended to be used with the education version of the EV3. The retail version lacks the lessons included in the education version, and also lacks the ultrasound and gyro programming blocks (since the corresponding sensors are not included in the retail kit). Note that by following build instructions that are available elsewhere on this site it is possible to build with the retail kit a robot vehicle that is very similar to the robot vehicle used by the education software lessons, and therefore most of the lessons in the education softwares can be done with the retail version too, which is hugely valuable. The education software may lack certain blocks that are in the retail software, such as the infrared sensor block. Blocks that are missing from your version can be downloaded separately free HERE and added to your software. Here's how to add the downloaded blocks to the EV3 software:

  • Open your EV3 Software (retail version).
  • Go to Tools and click on "Block Import".
  • Select the file you downloaded.
  • Restart LEGO MINDSTORMS EV3.

Easy, wasn't it?! Learn much more about EV3 programming on my page 'The Challenges'.

More links

See HERE, HERE and HERE.

GeekDad has a good review of the Education version of the EV3 HERE.

Why this site is special

  • This site gives a global view of robotics, with philosophical discussion, news and videos, as well as supporting a robotics course focused on the Lego EV3.
  • I think the wheel is a wonderful invention and I don't understand why so many roboticists are obsessed with making robots that can walk. I'll focus on wheeled robots and static robots rather than walking robots. The idea that robots have to be able to fit in to our human world and therefore must be able to walk up stairs etc is too limiting for now. Nobody would say that because cars have wheels they are useless and wheeled robots can be useful too. We can adapt our world to be more robot-friendly, for example by installing lifts in more buildings (as will tend to happen anyway as the human population ages).
  • The emphasis will be very much on programming rather than assembling different models.
  • Since the EV3 is based on a Linux brain it can be programmed in various languages such as C, Java and Python. I have created two websites ev3basic.com and ev3python.com to help people get started with those languages.
  • I offer advice to teachers about using the EV3 in the classroom.

LEGO® the LEGO logo, MINDSTORMS, the Minifigure, and the Brick and Knob configurations are trademarks of the LEGO Group of companies which does not sponsor, authorize, or endorse this site.