Animatronic Eyes and Wii Nunchuck




About: I am a theatre designer and technical director. I work at Merely Players, a small non-profit theatre group in Southwest Colorado. Check us out on Facebook: Merely Players-Durango. You can also see some o...

I found this 3D file on Thingiverse by Micropuller. I quickly realized that the file creates an oversized eye unit. But I still wanted to explore creating an animatronic face that I could control with an Arduino.

The more I thought about it, the more I thought that I could create a creature head that could be controlled with an Arduino, a Pololu servo controller, and an input device. I had a Wii Nunchuck sitting around waiting for a project, and the opportunity to use the joystick and accellerometer and the two switches made me think that you could do some really detailed puppeteering. Usually, effects houses use an RC controller. Modern controllers can be programmed to limit servo motion and create multiple servo movements.

Using the Arduino, I can program any variety of movements using all of the Wii Nunchuck sensors.

Step 1: The 3D Pattern

I have a friend with a Makerbot Replicator 2, fortunately. He was willing to print out all of the parts from Thingiverse.

There were a few problems with the original design. Mainly, the 9 gram servos wouldn't fit into the spaces provided. The problem is that the servo wires stick out of the servo. I could not get the servos to slide into the slots.

I had to use a dremel tool with a router-type bit to make a passage for the wiring to go through. Otherwise, the 3D file worked great. I really like the idea of using a universal joint to allow the eyes to move in all directions.

Step 2: Adapting the Eyelids

After test-fitting the pieces, I realized that the 3D printed eyelids will not actually close. I looked over the Thingiverse files and reviewed the video.

So I decided that I could replace the printed eyelids with 20 gauge wire. I had some solderless ring tongue electrical connectors around, and they seemed to be a perfect rotation point. I crimped them onto the wire and also put epoxy in to help stabilize the connection.

I moved the ball and socket connections from the inside of the eyeballs to the outside. This gave me more movement. It did create a problem on the outside eyelid support. I had to dremel the outer part off and attach a piece of scrap plastic to move the eyelid support out far enough so that the ball and socket didn't catch when moved to extreme positions. See the next to the last photo to see the added piece and the 6-32 bolts that go through the solderless ring tongues of the eyelid wires.

I used epoxy putty to attach two control rods into a single rod for the upper and lower eyelid servo control. Epoxy putty was also used to create attachments for the ball and sockets attached to the eyelid wires.

I found that a 9 gram servo was not powerful enough to move the eyelid open/close mechanism. I used a standard servo instead. It was easy to dremel out a support and the servo fit neatly in the same location.

For the slider mechanism, I just used two diameters of brass tubing. One was small enough to slide over the larger. I used epoxy putty to fill in the 3D printed slide mechanism and hold the larger tube. The smaller tube neatly fit into the guides on the base. It slide easily. The problem is when the eyelids are closed, the mechanism is pulling straight back to open them again. I had to adjust it so that the wires don't close completely. The plastic eyelids hang over the wire edge about 1/4 inch so that the wires never close too much, yet the eyelids themselves do close all the way.

Step 3: Eyelids Attached

I used clear two-part plastic balls from the hobby store. I spray painted the inside with metallic brass paint. Then I made some little brass tabs to fit onto the eyelid wire. I carefully drilled a hole and tapped the brass pieces for 6-32 so that I didn't need a nut on the back. I did have to use a dremel to remove a bit of material where the solderless ring tongues were in the way.

Step 4: Bits and Pieces

I am using a Pololu SSC to control the servos. I got mine from Sparkfun for only $18 and it controls 8 servos.

The brain is an Arduino Uno, currently. I have the Wii Nunchuck attached to it. I am using the x-axis of the accelerometer, the joystick, and the two buttons to do various things.

I added Adafruit Neopixels for the eyes. Pressing on the Z button not only angles the eyelids, but it randomly chooses a color for the eyes. I am amazed at how bright the Neopixels are.

In part two I will add a face, and an audio player connected to a level detector to control a mouth mechanism.

You can view a video of it in action HERE.

Step 5: Addendum

In response to a comment, I am adding a bit more information.

Here's an INSTRUCTABLE that tells how to create an adapter for your Nunchuck so you don't have to cut the cord and solder the wires to pins. I, however, did cut the wire and soldered pins to connect to the Uno.

Todbot's site also has several projects using the Wii Nunchuck along with great explanations on how it all works.

This appears to be a new library for using the nunchuck. It seems to have more accurate reading of data. There is another library listed in the Playground Input section, but I didn't try it out.

Here's a link to the Sparkfun site that sells the Pololu SSC servo controller. The site has a good Arduino library and a tutorial on putting the board together. It is easy to solder the kit. I did find that if I powered the SSC servo power with the same transformer that was running the Arduino, it crashed. The transformer seems to have plenty of power to run everything. All I know is that as soon as I ran the servo power from a different transformer the error problems stopped. I am running the SSC power to the board itself from the Arduino's 5volt out pin.

On the Adafruit site, look for the Flora RGB neopixels. You can buy them in sheets of 4 or 20. The site has a great library for Arduino, and a tutorial on how to hook them up.

I have attached the Arduino code to this page. Comments will tell you which servo I had on which SSC channel. The commented code also tells which pins are used for the Nunchuck and the SSC.

I hope that this information is more helpful.



    • Remix Contest

      Remix Contest
    • Trash to Treasure

      Trash to Treasure
    • Organization Contest

      Organization Contest

    13 Discussions


    3 years ago

    Thanks. There is a second part. It has more detail including Electronics and code. However I a.m. In the process of improving the sound sensor. You might check out the Make A Talking Skull Saw Anything. Instructablr. I will update that post when I have time to replace the sound sensor


    3 years ago


    have noticed, though, that this does not supply enough information to replicate your project, most notably the absence of any information on the electronics. This is more like a "look what I did" rather than a "this is how you make one" are you going to updat this project anytime soon with all the information and code i would love to build this awesome project

    techiebotInvento Guy

    Reply 3 years ago on Introduction

    A circuit diagram will depend upon what way you decide to control the servos. You can use the software servo library from the Arduino site. Or you can use a whole variety of servo controllers. Using a servo controller, you'll probably use serial communication. The servos get a lot of jitter when using the library because the Arduino just can't refresh quickly enough and still look for input.

    Invento Guytechiebot

    Reply 3 years ago on Introduction

    I want to control the servos the way you did. Send me the circuit diagram for that. My email is ""


    4 years ago on Introduction

    I believe the "ring solderless ring tongue electrical connectors" referred to in the text are called "eye lugs" or "eye terminal". No joke. How apropos is that?


    4 years ago on Introduction

    Very nice.

    I have noticed, though, that this 'ible does not supply enough information to replicate your project, most notably the absence of any information on the electronics. This 'ible is more like a "look what I did" rather than a "this is how you make one".

    2 replies

    Reply 4 years ago on Introduction

    You are correct. I am working on the second part and so this was a rather hasty sketch for part one. I can post how the electronics are set up and the Arduino code if anyone is interested. I hoped that I gave enough info to get interested persons started.


    4 years ago on Step 4


    The second stage for this project is to make it programmable ( instead remote control).

    I have to many ideas from this very point!

    Congratulations and thank you very much!


    4 years ago on Introduction

    Nice job. Somehw that "old" Billy Idol song/video "Eyes without a Face" popped into my head and started playing over and over.... and over..:)

    Patrick S

    4 years ago on Introduction

    Well done! Looks very polished. As an extension should consider adding a voice control board (they sell ones compatible for the UNO) and possible a camera to track people, then you'd be following in the vein of MIT's Kismet