Dealing With Robots

It has been quite some time that I bought a LEGO Mindstorms EV3 Home Edition. It’s a robotics kit from the Danish manufacturer LEGO. Yes, I am aware most of us associate LEGO with playing around with bricks as a child. Yet, the whole Mindstorms range of products from LEGO are robots, whose precursor was a programmable brick created at MIT Media Lab.

Since then, LEGO Mindstorms has come a long way. The latest version is the Mindstorms EV3, which is pretty much the best kit available in the market if you want to jumpstart into robotics.

First, look what’s inside the box.

The EV3 Brick

The “brain” of this whole thing is what is called the EV3 Brick, that big box-like thing in the centre of the image below. It contains a custom Linux-based OS, which is the command & control centre of the whole robot, as you build it.

It has 4 output ports, labelled 1 to 4, to which you attach components which take outputs from the controller. That is, all motors. Along with that, there are also 4 input ports, labelled A to D, to which you attach components which only send inputs to the controller, that is, the sensors.

The contents of the box. Image Credit: Ars Technica

Motors and Sensors

By default, there are 3 Servo Motors included. 2 of them are high-torque, low speed motors, which are known as the primary motors, and the remaining one is a low-torque, high speed motor, known as the secondary motor.

Alongside, also in the box in an IR Sensor, used to sense distance (the output proximity is unitless), a colour sensor, used to sense primary colours and ambient light, and a touch sensor, used to sense touch.

Connections

Alongwith, there is a micro-USB port that accepts a USB cable to connect the robot to the PC. Bluetooth is in-built for connecting the controller (that is, the EV3 Brick) to the PC.

There is also an USB Port, into which plugs in a Wi-Fi Dongle, in case you want to interact with your robot via wireless (there is no native support for Wi-Fi). The only downside here is that this USB Port accepts only the Netgear N150 Wireless Adaptor, nothing else.

The ports for connecting the motors and sensors to the controller are modified RJ45 Ports (RJ45 is the telephone line port), for which connector cables of long, medium and short length are provided within the box.

There is also a port for inserting a microSD card, in case you feel 64 MB of internal storage for your programmes isn’t sufficient.

Elements

For those unacquainted with technical LEGO terminology, “elements” is the name given to what are traditionally known as the LEGO bricks in conventional models. Whatever I mentioned so far, each comes separately.

Using the LEGO elements, you have to build the supporting framework of the robot, as you want it to be, and then attach whatever motors or sensors you want to the framework, using, once again, the elements. So as to build a robot which is physically fit to do the task you want it to.

LEGO has a range of products known as LEGO Technic. The elements provided with LEGO Mindstorms products are the same as those in other LEGO Technic models, except in greater quantity. If you want, you can use elements from other LEGO Technic models that you may already possess.

All the elements are sealed into polythene packets, sorted according to category. If you take my advice, the first time you open up, I advise you to put the elements into resealable plastic packets, as originally sorted according to category. As one reviewer put it, whose advice I did take and am now forwarding to you, life would be a hell lot easier.

Designing

In the world of professional designing, engineers sit with set squares, pencils, rulers and erasers to make an engineering drawing before embarking on actually building a project. Catapulted forward to the era of computing, engineers today use engineering software to draw up a CAD Concept, the electronic equivalent of an engineering drawing.

With LEGO, you are free to use either. Of course, you may begin playing with the elements and gradually build up something, as always do childrens and infants. But when you are building robots, it might just be wise to do a bit of designing beforehand.

Good luck with the engineering drawing. Most of us don’t even know what is a set square and how to hold it, leave alone use it for some practical purpose. Enter LEGO Digital Designer.

LEGO Digital Designer
Designing in LEGO Digital Designer.

A designing software made by LEGO, for LEGO enthusiasts like you. Not just Mindstorms, this software allows you to design a CAD Concept of anything you want to build, so long as you use LEGO elements.

Although this is by no means anywhere near professional designing software that incorporate physical dynamics, this does save valuable time in playing around with LEGO bricks. Do the playing here, you don’t need to tidy up. And you don’t misplace elements. And yes, it’s free of cost.

What’s more, once you’re done designing, it will also automatically generate a building guide for you. Step-by-step building instructions, crafted by you, for you, courtesy of the power of computation. So good!

A random Google search turns up mind-blowing projects done with this software, such as building CAD concepts for building super-cars like Lamborghini and Porsche using LEGO bricks. That’s the power of LDD.

Programming

What distinguishes the LEGO Mindstorms range of products from other LEGO product ranges is that they can be programmed. All LEGO Models are made to move by hand, but Mindstorms models move by themselves. As they are programmed to.

The native LEGO programming software has to be downloaded, it doesn’t come bundled. It is a graphical programming interface, based on LabVIEW.

Robot Programmer

There a various blocks available for performing certain activities, such as moving a robot, or turning it. There are also separate blocks for arrays, loops, variables, etc. The blocks are sequentially arranged as a series of tasks, along with loops and variables, to create a programme.

Such programme can then be run from the software directly. It can also be downloaded to the internal memory of robot, so that it can directly be run from the robot interface.

Now, I admit the interface of this software will bore out programmers used to dealing with programming languages. This software is meant for those who are not programmers. So that they can still run the robot.

Nevertheless, the programmers need not be disappointed. The LEGO Mindstorms EV3 can be programmed using a variety of languages such as MATLAB, Java, C++, etc. So far as I’m aware, most of these languages would require you to install a Virtual Machine into a microSD card loaded into the EV3 Brick.

A notable exception is MATLAB. All you need to do to programme this robot in MATLAB is install the LEGO Mindstorms EV3 Support Package. You can then run the robot by directly calling a MATLAB Code file in the Command Window.

MATLAB Programming
Programming the LEGO Mindstorms EV3 in MATLAB.

If you have to learn to programme this thing, I strongly advise you to go with MATLAB. Let me tell you that all supported languages offer equal versatility for this robot. I’m suggesting MATLAB because it is a Very High Level Language, with an almost English-like syntax, making it incredibly easy to learn and use (you can learn the basics required here in under 3 hours). There’s a reason why technical computation is in love with MATLAB. It’s simple, yet versatile.

Advanced Stuff

It doesn’t stop here. The LEGO Mindstorms EV3 is extremely versatile, and people have built things like a Braille Printer (a 14 year-old did that) and even Rubiks Cube Solvers with it.

If you think that package is not enough, just head over to LEGO and locate a dealer/distributor in your area. You can then buy expansion sets, extra motors and sensors, in fact, any component that can possibly fit into the EV3 Brick. I recently ordered a Rechargeable Battery Pack and an Ultrasonic Sensor (used to measure distance, accurate to 2 cm) from a local distributor. 

If you want to expand even more, you can even download the firmware for LEGO Mindstorms EV3 and modify it to add hardware support for additional components without native hardware support, such as a camera, etc.

You can also daisy-chain, which is the process of linking together several EV3 Bricks to attach more sensors, motors, and other hardware components, and increase computation power.

A Rubiks Cube Solver made with a LEGO Mindstorms EV3.

The Condensed Idea

The possibilities are endless. You just have to begin. The greatest thing about the Mindstorms EV3 is that it suits the deal for all, be it an absolute beginner or an advanced programmer wanting to build custom robots.

It suits all learning levels. So you don’t need to migrate to other models as your projects increase in complexity. No need to go hunting for circuit boards and electronic components anymore, when you want to build a robot.

Although the price is a bit steep, let me tell you, the LEGO Mindstorms EV3 is worth every penny you spend on it.

It’s not just a toy. It is a professional robot-building kit. 

Advertisements

Your thoughts matter.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s