Exploring Esplora – Part I


A couple of weeks ago I saw a news item, or tweet, or blog post, I don’t remember… indicating that the new Arduino Esplora  was available in local Radio Shack stores.  I had been somewhat intrigued by the early descriptions of Esplora, especially by the array of sensors and actuators included on the board.  So, I headed over to the local mall, found the Radio Shack, located an Esplora on the shelves, purchased one, brought it home, unpacked it, poked at the buttons, slid the slider, twirled the joystick and promptly put it aside until some free time might become available.  The other day, when the work day subsided, and the rest of the world began welcoming the new year with festivities, I took my Esplora down off the shelf, fired up my Arduino IDE and plugged in the Esplora.  The immediate thing I learned was that the Esplora requires the latest version of Arduino IDE (v 1.0.3).  So, off to the Arduino site…  When things were downloaded and properly upgraded, I once again plugged in the Esplora via USB and voila!  This time success.

Included in the latest Android IDE, are a handful of sample sketches for the Esplora.  I spent some time running these sketches and examining the code becoming impressed with how easy the Esplora library makes interfacing with all the different on-board sensors. Soon, I was ready to start banging out my own code.

I have decided that a fun project for fully exploring the Esplora will be a sketch that generates a stream of sensor data.  A Python app will then capture the data stream and push the data to the internet where it can be viewed with a browser.  Thus, my project consists of four distinct pieces:  The Esplora sketch, a Python forwarder, some sort of internet message stream, and a web page for displaying the data.  I originally thought I would do the internet messaging via node.js using websockets but instead decided to try a hosted API which specifically handles this task.  The web page will most likely use an HTML5 canvas for some simple graphics.  In future posts, I will examine each of these pieces in more detail but, for now, I’ll conclude with my overall impressions of the Esplora.

I’ll start with the few concerns I have.  My biggest issue with the Esplora is that it will require a reasonable amount of effort to un-tether it from a desktop/laptop.  There is no power connector for an external power supply or battery pack.  Additionally, there is no obvious way to connect a wireless module to the system.  My real interest in the Esplora is the various sensors and some of those make little sense if the unit remains tethered to my desktop.  For example, what is the point of the temperature sensor if I can’t move the unit around to measure temperature in different locations?  Ditto for the light and sound sensors.  Ultimately, I would like for the Esplora to be more mobile.  With luck I’ll be able to hack the system to add external power and connect a wireless module.  Or, perhaps, it will need to be piggybacked on a system such as the Raspberry Pi.  But, these are rather tangential concerns considering the unit really is intended to be connected to a computer and act as a controller.

The bottom line is that the Esplora is a lot of fun.  It’s clearly targeted towards folks interested in game controllers.  The board is nicely designed and the collection of sensors and actuators is impressive.  Being able to program it with the familiar Arduino IDE is wonderful and the library of code that has been written is very well done.  Anyone familiar with the most basic aspects of Arduino programming will have no problem getting a sketch up and running quite speedily.  I look forward to seeing what sorts of interesting Esplora projects the Arduino community comes up with in the coming months.  A main goal of the Esplora is to allow absolute beginners a painless path to learning more about microcontrollers, programming, and all such goodness.  That goal has certainly been met.

As I continue with my simple learning project, I will post my observations and progress making sure to post any interesting code.  Until then, it’s back to the code mines.