A very small robot arm using six SG90-style servos
3
18
0
196
updated July 14, 2024

Description

PDF

NOTE: This is a work in progress. I might make modifications or add features at some point.

I've included OpenSCAD source for remixing purposes. I've also included an STL of an SG90 servo for reference purposes.

This is a little robot arm that uses six SG90 servos. The idea was to make a the smallest robot arm possible with common parts and still have reasonable freedom of movement. It's also designed to come apart relatively easily for quick modifications.

Here's the little guy in action (controller arm and microcontroller not included)…

 

Preparation

Before printing any parts, decide on what servos you want and purchase them. I highly recommend getting original Tower Pro servos (either SG90 or MG90, digital or analog versions. There are tons of knock-off SG90 servos with slightly different dimensions, and their quality varies wildly.

Once you've got the servos in hand, print the servo-shaft-gauge model. Use that to determine which arm parts you need to print. Check to see which hole the servo's shaft fits into. It should be as snug as possible to avoid slipping. The number next to the hole will correspond to the folder containing the arm parts you need to print. 

Printing

You'll need one each of: base, shoulder, segment1, segment2, wrist, gripper. There's only one base model since it doesn't connect to a servo shaft. NOTE: Print the parts using the same filament as you used for the servo shaft gauge. Otherwise, you might run into tolerance issues. You should be able to print all parts without support material.

Non-Printable Parts

  • 12 M2×6 bolts for mounting the servos (similar-sized screws can be used)
  • M3×10 bolt plus nut for assembling the gripper
  • 4 3mm (or 1/8") ball bearings for the base posts (optional)

Assembly

It helps to load the assembly.stl model into an STL viewer to visualize how everything fits together. It's easy  to, say, mount a servo backwards if you're not sure of the orientation. 

  1. Mount a servo in the base, threading the wires through the triangular hole first. It's a tight fit. Bolt the servo in place.
  2. (optional) place a ball bearing on the top of each post.
  3. Bolt a servo onto the shoulder, oriented so that the shaft is directly above the servo hole. Mount the shoulder onto the base, press-fitting the servo hole onto the base's servo. 
  4. Bolt a servo onto segment 1, oriented so that the shaft is farthest from the servo hole. Mount segment 1 onto the shoulder's servo.
  5. Bolt a servo onto segment 2, oriented so that the shaft is farthest from the servo hole. Mount segment 2 onto segment 2's servo.
  6. Bolt a servo onto the wrist oriented so that the shaft in line with its servo hole. Mount the wris1 onto the segment 2's servo.
  7. Use the M3 bolt and nut to attach the left gripper finger (the one with the smaller hole) onto the gripper body, oriented with the gear teeth toward the center, threading the bolt up through the finger, then the gripper body.
  8. Bolt a servo onto the gripper body, oriented so that the shaft is directly beside the left finger.
  9. Press the right finger onto the gripper body's servo shaft, meshing the gears so that they're equidistant from the center point. You can always reposition later if it doesn't seem to work right. (The gear teeth are offset so that the fingers will meet in the middle when meshed correctly.)
  10. Mount the gripper onto the wrist's servo.

Calibration

Using the microcontroller of your choice (I used an Adafruit M0), test the center position of each joint. I did this by hooking up each servo, one at a time, commanding the servo to its center position and, if necessary, unmounting the connected part and adjusting its position to match.

For the gripper, you might want to limit the range of the servo's sweep to avoid slamming the two fingers together.

Operation

At this point, you should have a functioning arm. You can program the microcontroller to perform various tasks or, like I did, build a controller arm and use the microcontroller to translate my movements onto the robot arm.

Tags



Model origin

The author marked this model as their own original creation.

License


Highlighted models from creator

View more