Devcember: Ask Santa for a Lego Mindstorms ev3

  • Chris Wallace
  • Thu Dec 01 2016

Want something fun and educational to play with this Christmas? Look no further than the Lego Mindstorms ev3 kit to fulfill your Lego and Programming needs.

With it being the holiday season (somehow…not sure November stuck around for long enough…), rather than doing some typical engineering/professional development posts I figured I’d dedicate December to some tech related fun and games (’tis the season!).

Usually I like to spend a prolonged Christmas break and do a complete context switch, spend some time with the family, watch trashy Christmas TV and have a bit of fun. If you’re looking to have some pointless fun this Christmas but still want to keep your programming juices flowing then I recommend asking Santa for a Lego Mindstorms ev3 kit!

“ it’s a highly sophisticated inter-locking brick system.”
“ it’s a highly sophisticated inter-locking brick system.”

What is it?

It’s Lego! It’s Robots! It’s programming! Lego Mindstorms has been around for years and spawned many robotics and engineering projects since it’s inception. Now in it’s 3rd generation, the ev3 robotics kit is Lego for the modern day maker or programmer (or both).

The kit itself consists of one Smart Lego Mindstorms ev3 brick, an assortment of Lego technic parts, 3 motors, 3 sensors and a remote. It comes with a set of building instructions for a couple of the starter models, and there’s even more instructions online. There’s even an app for your tablet to go through the building instructions.

1 m tVjL 9REmFfT1Io2SwzQ

What can I do with it?

It’s probably a bold statement to say ‘anything’ but from what I’ve seen so far you can build anything! Going onto YouTube there’s no end to the amount of Robots and Machines you can make with this kit. It’s true that the bricks in the set will only get you so far, but once you’re confident with the kit you can keep building out your kit (it’s Lego so ALL bricks will work with your kit!).

1 cP 1wEgr FAwWO2ox4fYPg

What about the coding side?

Constructing something awesome out of Lego is a challenge in itself, programming it is another challenge. Fortunately the ev3 Smart Brick is very practical and flexible in it’s uses…

  • It has onboard bluetooth connectivity
  • It has an SD card slot for extending the functionality and firmware
  • It has a USB port for wired (and wireless connectivity)
  • It can be controlled over a wireless LAN
  • It’s battery powered
  • There’s native app support for the brick directly
  • It can be controlled via IR remote

But that’s not even the programming side. When it comes to code this thing handles so many languages! To get you started here’s a shortlist of different language choices you can write code for.

  • LabVIEW (LVLM) — A proprietary visual programming environment that Lego Mindstorms comes bundled with. Useful for teaching kids the concept behind programming a set of instructions for a Lego creation.
  • RobotC — A C-based programming language aimed specifically at Robotics
  • leJOS — A mini Java VM to run Java code on the Smart Brick
  • OpenRoberta — Another visual programming environment hased in the cloud.
  • EV3 basic — A port of Microsoft Small Basic for the Smart Brick
  • EV3+Scratch — The language made popular by the Raspberry Pi, Scratch has extensions to assist young and new programmers to apply their skills to the ev3 kit.
  • .net — A personal favourite of mine, Microsoft released an API for the brick when the ev3 kit was released, allowing for your .net apps to communicate with the brick over bluetooth or wifi.
  • Swift — Robotary is a robotics studio for Mac using Swift
  • Monobrick — Another C# implementation but running .net 4.5 on the Smart Brick directly.

1 9dXzuWiBHQkwKOdS30YzJQ

And that’s just the languages supported with the standard firmware, then there’s ev3dev. ev3dev is a complete Debian Linux OS that runs on the brick from an SD card (the original firmware is left intact, e3dev just ‘sits on top’ like a dual-boot setup). Because it’s a dedicated OS you get support for all these languages!

and some experimental native support for…

Basically if you’re writing code in a well supported industry class language then you should be covered!

If you’re into Raspberry Pi programming, then Lego Mindstorms is a great addition. BrickPi allows you to replace the ev3 SmartBrick with a standard Raspberry Pi. Turning your standard tiny computer into a full-fledged Lego robot (complete with all the IoT stuff that comes with a Pi).

no proprietary brick. just pure pi!
no proprietary brick. just pure pi!

Should I get one?

If you’re interested in Robotics it’s a good start. If you enjoy coding for fun in your spare time, then absolutely. It’s great being able to write the same style of code you write in your day-to-day and apply it to something for fun. Last Christmas I wrote a simple SignalR hub which integrated with my Mindstorms robot over .net (if you don’t know what SignalR is, basically it’s a web sockets implementation). I had my site connect to a SignalR hub via JavaScript -> have the hub communicate to a client-app using C# -> and then communicate with my Mindstorms Robot again using C#. The results you can see (badly) below!

Embedded content: https://www.youtube.com/watch?v=rrwhELmnpyQ

The kit itself is a a couple hundred pounds so it isn’t cheap. But comparing this to other Lego sets that don’t allow you do write code then it’s real value for money! (you are pretty much buying a computer as well as a Lego set).