ProjectsRobot arm

Robot arm

A 3D-printed arm that picks up marbles and checks their colour, built for my school marble machine project.

School projectBuilt

  • CAD
  • 3D printing
  • PCB design
  • Arduino
  • C++
A blue 3D-printed robot arm standing on a cylindrical base, mounted on a wooden board with wires and electronics around it.
Base servo
80 kg·cm
Electronics
2-layer PCB I designed
Sensing
Light and LDR for marble detection
Code
Arduino C++

The full story

This year I took on the challenge of designing and building a robot arm as part of my marble machine project for school. The process was full of learning opportunities, design changes and iterative problem-solving, and it helped me grow as a maker.

Iterations and challenges

The arm went through several major iterations while I was building it.

  • Servo mounts

    I first designed the base to hold a single standard servo, but it was too weak to lift the arm, which led to multiple redesigns. I switched to two regular servos, then finally to a powerful 80 kg·cm servo. That meant reprinting the base servo mount three times.

  • Arm design

    To fit more wiring I had to reprint two of the arm sections. That improved the arm overall and made room for the light and LDR used to detect marbles.

  • Collection system

    I printed the collection system once, then revised the chute to improve marble flow and save filament. The final version uses a simplified two-part support.

A blue 3D-printed circular part held in a hand: version 2 of the arm's base.
Version 2 of the base
A hand holding the final version of the arm's blue 3D-printed base.
Final version of the base

What I learned

Limits of 3D printing
It's possible to print gears and servo mounts, but they don't hold up reliably under stress and tend to fail over time.
The value of iteration
Iterating on designs and adapting to new challenges is a critical part of engineering.
Mechanical design
Stability and precision matter. Bearings in the joints, better servo arms and integrated screw holes would make a big difference.

If I built it again

A larger arm
I'd use stepper motors with potentiometers for precise control, and belts to keep the motors closer to the previous joint and take stress off them.
The same size
I'd refine the servo arms with cut-outs and screw holes for secure mounting, and add bearings to the joints for stability and precision.
Colour detection
I'd use a dedicated RGB colour sensor instead of an LDR, for more accurate and reliable results.

Parts and electronics

A hand holding the first arm section that was printed, with a servo and wiring in front of a computer screen.
The first part I worked on
The gripper: blue and red-orange 3D-printed jaws with gears and a Taj Nicholas name plate, held in a hand.
The gripper mechanism
The robot arm's circuit board layout in white on black, labelled Robot Arm, Taj Nicholas.
The 2-layer PCB I designed
The same board with its two copper layers shown in red and blue.
The same board, copper layers shown
The blue robot arm beside its teal marble collection chute, on a wooden board covered in wires and parts.
The arm with its marble collection chute

Code

Read the Arduino code

The sketch that drives the servos, stepper, LCD and colour sensor, shown as I wrote it. It is still a work in progress.

Open the code