Eye-To-Eye: Project Inception

Introducing Eye-To-Eye

Wouldn’t it be cool to use eye tracking software to control animatronic eyes?? If you answered “yes”, this post is for you – the beginning of my project, Eye-To-Eye that aims to do just that – build animatronic eyes and control them using my own eyes via eye-tracking software.


The inspiration comes from Eye See You, a tutorial project on how to put together some simple animatronic eyes controlled by a PIC processor. However, I always feel funny about just copying other people’s projects — to do this, I had to find my own little twist so I can say “I built upon this project” instead of just “I built this project”. Since I was working with some eye tracking software, I decided to take real human eye input, and make artificial eyes move with it – but I needed inexpensive/free software I could use.

Opengazer, an eye-tracking research piece of software from the Cambridge University, pretty much fulfilled all my requirements. I had a rough time getting it to work in newer versions of Ubuntu (details), but once I fired it up, it tracked my eye movements, albeit in a relatively rudimentary way. However, it will be enough to prove the concept for Eye-To-Eye. It outputs coordinates of my eyes and the hotspots near which my eyes reside.

The Plan

The idea is send the output from opengazer on my Linux netbook to the Arduino that will ultimately control the servos attached to the animatronic eyes. Here’s a quick diagram:

Eye-To-Eye Diagram

It looks like the only challenge unknown is how to take the output from Opengazer and pass it along to Arduino. There are actually many challenges with this project (how to create the gimball from scratch, how to interface the Arduino network shield with my network, etc), but I think these are all problems that have been solved before. Also, even though the author of “Eye See You” is using a PIC processor, I’m using Arduino simply because I have it and am familiar with it.

The plan is the following:

  • Figure out how the Arduino network shield works, and how to send commands to the Arduino from a closed network.
  • Create Arduino prototype with four servos
  • Create gimball animatronic eyes and attach to Arduino prototype
  • Develop interface between Opengazer and the Arduino network shield
  • Build housing for eyes
  • Done??

Sounds easy enough, so it’s time to get to work. Hopefully in a week I’ll figure out if the Arduino network shield leaves enough pins open to control four servos. If not, I’ll have to probably add another Arduino to the mix. See you then!