Popsicle Stick Robotic Arm

by Hailiax in Circuits > Arduino

15793 Views, 73 Favorites, 0 Comments

Popsicle Stick Robotic Arm

Popsicle Stick Robotic Arm Demo

Here's how to build a simple robotic arm with a gripper using popsicle sticks, an Arduino, and a few servos.

Supplies

Feel free to use similar materials or whatever you already have. (e.g. cardboard instead of popsicle sticks)

Materials:

  • 14 Popsicle Sticks
  • 4 Micro Servos (with their horns and screws)
  • 4 Rotary Potentiometers
  • 1 Half Size Breadboard
  • 1 Arduino Uno
  • 1 6-Volt Battery Pack
  • 26 Jumper Cables

Tools:

  • Hot Glue Gun + Hot Glue Sticks
  • Precision screwdriver or other small screwdriver
  • Arduino IDE
  • USB to Arduino Cable

Choose Horns for Your Servos

IMG_9847.jpg

Materials for This Step:

  • 4 Micro Servos
  • 3 Horns that extend in 2 directions
  • 1 Horn that extends in 1 direction

Instructions:

Attach the horns (white wing attachments) to the servos. Three of the servos need the horn that extends in two directions while one servo will need the horn that extends in just one direction. Simply pop the horns onto the top of the servos.

Calibrate the Servos

IMG_9803.JPG

Materials for This Step:

  • 4 Micro Servos

Instructions:

Turn the horn counter-clockwise as far as possible. Then, pop the horn off and back on at the calibrated position.

One of the servos with the double-direction horns needs to be calibrated parallel to the servo while the other three need to be calibrated perpendicular to the servos.

Above is a picture of the calibrated servos turned fully counterclockwise. These are the calibrated positions.

Why calibrate the servos? Servos only move 180 degrees so it's important that we calibrate the servos so that the servo turns between the angles we want therm to.

Screw in the Servos

IMG_0057.JPG
IMG_7049.JPG

Materials for This Step:

  • 4 Micro Servos
  • 4 Small Screws
  • Precision screwdriver or other small screwdriver

Instructions:

Screw the horns in using a small screw and the appropriate screwdriver.

Attach Popsicle Sticks to Servos (pt 1/4)

IMG_2925.JPG

Materials for This Step:

  • The one servo that was calibrated so the horn is parallel to the servo
  • 1 Popsicle Stick
  • Hot Glue Gun

Instructions:

For the servo that was calibrated so the horn is parallel to the servo, hot glue one end of the popsicle stick to the flat side of the horn.

Above is a picture of this servo turned completely counterclockwise.

Attach Popsicle Sticks to Servos (pt 2/4)

IMG_6432.JPG

Materials for This Step:

  • One of the other two servos that have double-direction horns
  • 1 Popsicle Stick
  • Hot Glue Gun

Instructions:

Glue one end of the popsicle stick to the flat side of the servo's horn.

Above is a picture of this servo turned completely counterclockwise.

Attach Popsicle Sticks to Servos (pt 3/4)

IMG_6174.JPG

Materials for This Step:

  • The last servo that has a double-direction horn
  • 1 Popsicle Stick
  • Hot Glue Gun

Instructions:

For the other servo, glue the middle of the popsicle stick to the flat side of the horn.

Above is a picture of this servo turned completely counterclockwise.

Attach Popsicle Sticks to Servos (pt 4/4)

IMG_0871.JPG

This step is different. Read carefully!

Materials for This Step:

  • The one servo with the single-direction horn
  • 1 Popsicle Stick
  • Hot Glue Gun

Instructions:

Glue one end of a popsicle stick to the thin clockwise side of the horn. Yes, the popsicle stick is "sideways" compared to the previous step. This may be a little tricky to glue.

Above is a picture of this servo turned completely counterclockwise.

Create a Base for One Servo

IMG_4508.JPG

Materials for This Step:

  • The single servo that's calibrated so the horn is parallel to the servo
  • 4 Popsicle sticks
  • Hot Glue Gun

Instructions:

Hot glue four popsicle sticks so that they're stacked on top of each other. Tear off any excess glue on the edges.

Then, glue the bottom of the servo to the center of the continuous flat side of the popsicle stick stack. Tear off any excess glue.

Build the Base for the Whole Robot!

IMG_4836.JPG

Materials for This Step:

  • 6 Popsicle Sticks
  • Hot Glue Gun

Instructions:

Lay 3 popsicle sticks down in one direction. Then lay 3 popsicle sticks in the other perpendicular using hot glue to connect everything.

Connect the First Servo

IMG_0767.JPG

Materials for This Step:

  • The single servo with the middle of the popsicle stick glued onto the servo
  • Hot Glue Gun
  • The Base for The Whole Robot from the last step

Instructions:

Glue the bottom of the servo onto the base.

Attach the Second Servo

IMG_0133.JPG

Materials for This Step:

  • The servo with the stack of popsicle sticks attached to the base
  • The structure from the last step
  • Hot Glue Gun

Instructions:

Orient the servo sideways so that the popsicle stick can rotate upwards in the air.

Glue the bottom facing edge of the popsicle stick stack to the existing structure. (see picture)

Attach the Third Servo

IMG_9962.JPG

Materials for This Step:

  • The last servo with the double direction horn
  • The structure from the last step
  • Hot Glue Gun

Instructions:

Glue the servo to the end of the existing structure's protruding popsicle stick so that the servo's popsicle stick rotates away from the center of the robot

Attach the Last Servo! (Gripper)

IMG_5440.JPG
IMG_0452.jpg

Materials for This Step:

  • The last servo
  • The structure from the last step
  • Hot Glue Gun

Instructions:

Glue the large flat side (as opposed to the bottom of the servo used in previous steps) to the close side of the last servo's popsicle stick so that this servo's popsicle stick rotates in the same area as the last servo's popsicle stick.

When gluing, make sure to angle the servo so that when the servo is rotated about halfway, the two popsicle sticks touch at the very tip.

Above is a picture of an open and closed gripper.

Assemble the Circuit!

robotarm_bb.jpg

Materials for This Step:

  • 1 Half size breadboard
  • 1 Arduino Uno or equivalent microcontroller
  • 26 Jumper cables
  • 1 6-Volt battery pack (6 volts max)

Instructions:

Replicate the diagram given above!

Upload the Code!

Materials for This Step:

  • Arduino IDE
  • USB to Arduino Cable

Instructions:

Upload the following code to your arduino using the USB cable:

#include <Servo.h>

Servo servo1; // Servos
Servo servo2;
Servo servo3;
Servo servo4;

const int pot1 = A0; // Attach potentimeters
const int pot2 = A1; 
const int pot3 = A2;
const int pot4 = A3;

void setup() {
  // Set up everything and will run once
  
  servo1.attach(6); // Attach servos and define the pin modes
  servo2.attach(9);
  servo3.attach(10);
  servo4.attach(11);
  
  Serial.begin(9600); // Begin the arduino/loop
}

void loop() {
  // put your main code here, to run repeatedly:
  
  int pot1Value = analogRead(pot1); // Read the values of the potentiometers
  int pot2Value = analogRead(pot2);
  int pot3Value = analogRead(pot3);
  int pot4Value = analogRead(pot4);
  
  int pot1Angle = map(pot1Value, 0, 1023, 0, 179); // Map the values of potentiometers (0-1023) to angles that the servo can read (0-179 degrees)
  int pot2Angle = map(pot2Value, 0, 1023, 0, 179);
  int pot3Angle = map(pot3Value, 0, 1023, 0, 179);
  int pot4Angle = map(pot4Value, 0, 1023, 0, 179);
  
  servo1.write(pot1Angle); // Make the servos move to the mapped angles
  servo2.write(pot2Angle);
  servo3.write(pot3Angle);
  servo4.write(pot4Angle);
}

Downloads

We're Done!

Popsicle Stick Robotic Arm Demo

Turn the potentiometers to control the robot!

Troubleshooting

It isn't moving!

Make sure the battery pack is on and the Arduino is plugged in.

Double check the circuit to make sure everything is correct and plugged in.

A servo isn't working

First, try hitting the reset button on your Arduino. Sometimes a servo might stop working if we push it too far.

The servo may simply be dead, try plugging the circuitry for that servo into another servo and see if the new servo works.

If it doesn't, the problem lies within your circuitry.

Servos are jittery!

Your servo simply may be jittery.

The servo may be bearing too much weight.

Try adding a capacitor to the power wiring for the servos.