Principles of Engineering project, Olin College, Fall 2014

The Design, Manufacturing, and Implementation of a Piano-Playing Robot

PianoBot is an autonomous system that takes a sheet music or MIDI sound file input and uses that to play the song using a series of hand-inspired actuators to depress the keys. Additionally, tt has been designed to sit in front of any keyboard. These two design choices make it a robust system that can play any variety of songs available.

Our goals for this project were as follows:

  • To play at least one octave of music from a MIDI file
  • To do so in a way that does not damage the keyboard we are using
  • Stretch goals for the project included:

  • To play sharps and flats
  • To play multiple octaves
  • To play multiple notes at once
  • To take in PDF sheet music as an input and read using computer vision
  • This project was an eight-week undertaking for the Olin College Principles of Engineering (PoE) class in Fall 2014. PoE seeks to teach students to integrate analysis, qualitative design, quantitative optimization, experiments, and simulations to improve their ability to engineer real systems, through a significant project experience designing and building a mechatronic system with nontrivial electrical, mechanical, and software components.

    The working system - videos

  • Beethoven's Für Elise
  • Ode to Joy with Optical Music Recognition
  • Winter Wonderland with Optical Music Recognition
  • March from The Nutcracker
  • Dance of the Sugar Plum Fairies from The Nutcracker

  • Meet the PianoBotsubsystem detail

    The Overall System

    • Software/Firmware Systems

      The software system consists of two main parts: reading/sending notes in Python, and Arduino code to actuate the servos and play the notes.

      Electrical Components

      We use an Arduino Mega to interface with 36 servos to play three octaves of keys, via a carefully designed voltage regulator circuit.

      Mechanical System

      We designed and fabricated a customized stand to hold 36 servos and mechanical fingers in place over the centers of the keys.

    • Bill of Materials

      The materials shown to the right represent all the materials purchased or acquired during the process of creating the final prototype. We used some scrap MDF, hot glue, and other temporary materials for incremental prototypes, which we spent no money on.

      We obtained the keyboard we used for testing and demo for free from a peer. We did research and found that we could purchase similar keyboards on eBay for about $30. That amount would increase our money spent to just barely over $250, the budget for this project. We acquired the electrical components for free from the ECE stockroom.

      This budget sheet also does not include any communal materials, such as solder or jumper cables. It also does not detail the tools we used, including the laser cutter, 3D printer, band saw, drill press, soldering iron, and various hand tools.

    Meet the people behind the project

    Meet the five students from Olin College class of 2017 who devoted a semester to designing and creating a piano-playing robot
    • Team Member

      Lindsey Andrade

      Lindsey is a mechanical engineer who is a boss. She enjoys laser cutting and attaching things with hot glue. One day she dreams to use the PianoBot in space.

      Team Member

      Susie Grimshaw

      Susie is a design engineering student with a passion for engineering education. When she isn't working, you can find her playing music, spending time with friends, and dreaming about getting a puppy.

      Team Member

      Anne LoVerso

      Anne is an engineering with computing student, passionate about education and curricular design, circus arts, and making the world a better place. Maybe that better world involves piano-playing robots.

      Team Member

      Lindsey Vanderlyn

      Lindsey is an electrical and computer engineering student who loves to make things. In her free time (when she has it), she is doing homework because, let's be honest. Free time is a lie.

      Team Member

      Sarah Walters

      Sarah is a robotics engineering student who also happens to be a pianist and a violinist. If she's not engineering things or playing music, you'll probably find her reading sci-fi or fantasy or spending time with friends.