Robot Arm using Potentiometers and Servos

 

This robot arm uses potentiometers to determine where the human arm is and then a servo controls the robot arm to match the position.

“Each joint on the master arm is a potentiometer(a variable resistor). A joystick port basically checks the resistance. By itself, this resistance means nothing, so I wrote a little routine that converts a resistance into an angle that the servos can understand.

To do this on the elbow for example, I straightened the master arm, and checked the resistance. Then I tried sending various numbers to the elbow servo until I figured out what number meant straight. I did the same for fully bent.

With these 4 numbers in hand I was able to write an equation that maps any angle on the master arm to a similar servo angle on the slave arm. I also used these numbers as hard limits on the values I sent to the slave arm.”

10 Comments



  1. This is how most of the manual rotor systems for directional antennas work…kind of cool actually.


  2. still has some bugs to work out. but other than that, good job!


  3. wouldn’t an analouge version with a comparitor work better, it could be less jumpy….


  4. Hi listofoptions,

    Sure an analogue version would work well, that is actually how the antenna pointers that NGinuity mentioned work. I guess the creator wanted to use a microcontroller. There are also lots of benefits using a controller like speed limiting and position restriction.


  5. Hi. You could try to use the following idea “to be less jumpy” 🙂

    CalculatedSensorPosition = 0.9 * OldValue + 0.1 * ActualSensorPosition

    where:
    CalculatedSensorPosition – is the calculated value of the potentiometer
    OldValue – is the last calculated value of the same potentiometer
    ActualSensorPosition – is the actual reading from the potentiometer.

    (use CalculatedSensorPosition in your formula, instead of
    ActualSensorPosition)
    Convex combination coefficients (0.9 and 0.1) can be adjusted.
    This is a rather crude “digital filter”.
    Best Regards,
    Reinaldo.


  6. This project was tons of fun, and I learned a lot.

    One benefit of the control system I used is remote operation. Its difficult to tell, but in this video the arm is powered by a battery and control signals are being sent wirelessly from a transmitter (out of view to the left).

    I like the “digital filter”. I used a similar method on a later project. It worked great.



Comments are closed.