Eye See You.

So you want to add animated eyes to your next robot? Now you can.. Using ping-pong balls, some scrap plastic and 6 servo motors [Chris] has created these animatronic eyes along with some nifty animated eyebrows. To get motion emulating realism [Chris] created a 2 axis gimbal using plastic rings and some nuts and bolts. The eyes (ping-pong balls) are held in the gimbal and actuated using two servos each. The eyebrows use another pair of servos and some tubing covered in electrical tape as the actual eyebrow.

[Chris] Kindly goes through the entire build process including information for beginners such as servo motor control. The whole thing is controlled using a PIC 18F452 and circuit diagrams and code are all available on the site. Check out the video after the break to see the eyes in action, you will also find more videos describing the build process if you follow through the tutorial.

[youtube=http://www.youtube.com/watch?v=4xEqbry2gFk&feature=player_embedded&w=470]

13 thoughts on “Eye See You.

  1. I really need to get me some servos. I got tons of stepper motors from old floppy drives, but the servos seem a bit more popular.

    anyone care to explain the pros and cons and key differences between the two technologies? I guess there’s always google.

    1. My understanding is, at the very least, that using a stepper you are able to precisely determine the position of the stepper at any given spot, based on how many steps it has taken. The downside is the complexity of controlling them compared to a servo. The robot a friend and I built a few years back used unlimited servos for the drive wheels, but it was very difficult to get it to drive straight, since the servos were slightly off. We had the same problem on our robot team in High School.

    2. A servomotor (“servo”) is a negative feedback device, so you basically tell it what position to go to (rotation or displacement) and it applies the appropriate force to move to (and stay at) the desired position. The current position is measured and this signal is fed back into the control circuitry (typically inside the servo itself) to bring the current position ever closer to the desired one, until it can stop. Strictly speaking, so-called “unlimited servos” are not servos because they don’t exhibit this servomotor quality.

      Stepper motors (and other motors) do not have built-in negative feedback, so they just move or step as you instruct them to without constantly self-correcting like a servo.

      It’s possible to make an arbitrarily-complex servomotor if you implement the motor and the feedback/control system separately; e.g. use a stepper, a reduction gearbox and a rotary encoder whose measurement drives the stepper’s controller. Such a system would allow precise and continuous motion.

  2. servos have many coils (4 to 8 is common). these coils must be energized in the correct sequence for the shaft to rotate. each step in the sequence is called just that, a step. your floppy steppers are likely 1.6deg or 3.2deg steppers, meaning each step will rotate the shaft that many deg. this means you can rotate the shaft to a specific position, with a very high level of presision, simply by counting your steps. you can also hold in a specific pos, go backwards, vary your speed, etc. however, the control sequence is very complex. even more so when using half or quarter steps.

    servos, at least hobby servos, are very simple devices. they have a regular dc motor, gearbox, a variable resistor (that rotates as the output shaft rotates), and a small board that compares the position of the shaft (via the variable resistor) and an input signal. my view as to how the signal is processed may not be acurate, but it makes it easy for me to understand. the input signal is basicly a variable voltage, provided by a pwm output from some other device. the greater the voltage difference the more power is fed to the motor. the direction of the difference determines the polarity of the power.

    most servos are designed to rotate a specific amount, so this allows you to specify a position by altering your pwm signal. you can purchase ( or modify normal servos) servos that allow for continous rotation. this is done by disconnecting the variable resistor from the gearbox. after some tweaking the pwm signal then controls direction and speed.

    the specifics of the pwm signal: repeated 20 times per second, a logic high between 500us and 2500us, with a logic high lasting 1500us being ‘center’ or ‘stop’ (for a regular and continous rotation servo respectivly). this timing can vary from one servo to another, and for this reason hobby servos are less ideal for high presision work.

    high for 1.5ms, low for 1ms, wait 47.5ms then repeat to hold a servo in the center.
    high for .5ms, low for 2ms, wait 47.5ms then repeat to hold full in one direction.
    high for 2.5ms, drop pin low, then wait for 47.5ms for full roration ib tge other direction.

    of course you need to adjust for the min, max, and center for your specific servo. you can damage a servo if you dont adjust for min and max.

    advantage of a servo is the low overhead for controling many of them – send position and they wi do their best to rotate to that position. the down side is, youll never know if they do it. but without fancy encoders or reading rf from a stepper, i guess they have the same problem.

    im sure i have some of this wrong, and im sure im missing even more,

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.