My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
constructionnotes  
Construction notes.
Updated Jan 2, 2010 by jark...@gmail.com

Introduction

There are many ways to make eyeballs. This is a quick introduction to the parts and techniques we used.

Electronics

There's not much to it. The parts are:

Servos wire directly to PWM pins on the mbed. The camera wires to UART pins on the mbed. The mbed also provides a 3.3v supply to run the camera.

Specific pin wiring is:

  • X servo - pin 23
  • Y servo - pin 22
  • Eyelid servo - pin 21
  • Camera tx - pin 13
  • Camera rx - pin 14

Servos are powered directly from the battery. The camera is powered from the 3.3v output on the mbed, pin 40.

Software

See the source for this Google Code project.

To build it as an mbed project, you need to add the files in 'common' to a new project in the mbed compiler.

The current mbed project should also be available from this Notebook page: http://mbed.org/users/jarkman/notebook/ucam-serial-camera/

To build the testframe for Visual Studio, you need to open UCamDemo/UCamDemo.sln.

To build the testframe for XCode, you need to open MacTest/MacTest.xcodeproj (but note that at the time of writing, that testframe didn't do much).

There are three main behaviours:

  • Motion tracking (actually just the center of gravity of the different-from-background pixels in each frame - see MotionFinder::processFrame() in MotionFinder.cpp)
  • Sleepiness (when less than 3 percent of the pixels have changed in each frame, the eye slowly centers and droops, and the eyelid doesn't open as wide on each blink)
  • Blinking (every 15 seconds)

Mechanics

There are only two moving parts - the eyeball and the eyelid. Two servos move the eyeball left & right (X) and up & down (Y) , and one moves the eyelid.

Here's the servo assembly for X and Y, on its support arm:

The ball itself is made from a Christmas ornament, a hard white plastic ball. The back of the ball is cut away, and pivot holes are drilled across a diameter. The two servos live inside the ball:

With a smaller ball, or bigger servos, it would be easier to mount the ball on a simple gimbal and move it with wire pushrods from servos mounted behind the ball.

The upper eyelid (along with the non-moving lower eyelid) is hammered from thin copper sheet. The copper has to be annealed, then domed into a sandbag to stretch it into a curve, then hammered over a suitable former to make a spherical shell. It's easiest to make the shell oversize and then trim it back to the right shape.

The eyelids have a common pivot (actually, a small woodscrew) on each side of the case. It's important to get these pivots in line with the center of the eyeball, so the clearance between lid and ball stays the same as the lids open & close.

The lower lid is fixed, and the upper one is moved by a wire pushrod from a servo. The ball is removed from this photo for clarity:

This is what it looks like with all the parts in place. The support arm is screwed to the underside of the MDF:

The eyelid takes up a suprising amount of space behind the eyeball when it opens all the way, so it's important to kepp the servo support arm low:

The iris is just a bit of hammered copper, glued to the ball:

Case

The eyeball and lids are attached to a simple U-shaped MDF frame inside a plywood box.

The camera is mounted in a brass flange - actually a plumbing part:

The case is fabric-covered, with patinated brass corners, for a simple steampunky kind of a look.


Sign in to add a comment
Powered by Google Project Hosting