top of page



For my "Introduction to Mechanical Engineering class" in 2020, the final project was to create a robot to perform any task autonomously for 2 minutes using $60 of materials and an Arduino.  


  • Designing and building a small mechanism 

  • Problem solving

  • Coding 


The beginning of this project involved brainstorming high level robot ideas. Below are some examples of my early ideas

Choose one idea that I'm excited about and that's feasible. I was hooked on the idea of making music of some sort.


Refine the overall idea to decide exactly what the user input should be and what the robot will do for 20 sec. I looked at other robots that do similar tasks to get ideas for mechanisms.


Determine what components are needed in order to meet design requirements. Below is a sketch at this stage.

Examine each assembly to design. One example is determining how the servo arms work. A breakthrough was finding that I could use bobby pins to strum the keys. Below is a page of my design notebook showing my process of designing a mount to attach the pins to the servos that will be 3D printed.

Some spec sheets to document the electronics and the parts. Creo was used for the CAD modeling and rendering.

Electronics schematic done in kiCad

CAD model assembly.

CAD model of the servo subassembly


Left is an image of the final robot. Right is a rendering of the CAD model.

Video of the robot playing a song and me explaining some key features:

To begin, the user places a green or red card under the color sensor to control what song is played (“Ode to Joy” for green and “Hot Cross Buns” for red). After the button is pressed, the green or red LED glows based on the color detected from the color sensor and the servos move to play the melody.

There are five servos that each play a single kalimba key using an arm made from a bobby pin. The servos can move the arm to strum the key on the up or downstroke. All servos are mounted to a 3D printed base that also holds the color sensor. The servo base and electronics are all mounted to an MDF frame that encompasses the kalimba.

An interesting feature about the code is that it’s organized by an object oriented structure. Each servo and arm is an object in the code and stores the position of the arm and the high and low position. This makes it simple to give the servo a command to strum the key.

bottom of page