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 (click to enlarge). 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 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. Note that if you do not have the Lego rechargeable battery then you should 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 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 (click the image to enlarge it). 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, a free version (downloadable HERE  for Windows and OSX) that accompanies the retail version of the EV3 and a fuller version costing about 100 EUR that accompanies the education version of the EV3. The free 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) but these blocks can be downloaded separately free HERE and added to the free software. Here's how to add the downloaded blocks to the Retail version of the 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 HEREHERE 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.
  • Whereas most sites will focus on what can be done using only a standard EV3 set, I will also explore how EV3 can be incorporated into bigger robots, using relays and non-Lego parts.
  • 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.
  • I will also explore what can be achieved by connecting multiple EV3 intelligent bricks together.
  • The emphasis will be very much on programming rather than assembling different models.
  • As a science teacher, I will be interested in how robots can help teach science.
  • Smartphones give you an incredible amount of technology for the money: phone, apps, GPS, wifi, Bluetooth, compass, accelerometer, cameras, microphone, speaker, thermometer, barometer, memory... I'll be on the lookout for ways of connecting a smartphone to a robot, especially the EV3.
  • Since the EV3 is based on a Linux brain it is inevitable that it will soon be possible to program the EV3 in various languages such as C, Java and Python. If a Python programming interface comes out then I will certainly want to work with that.
  • And finally, I hope to develop pedagogical materials that can be used 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.