Self- Playing Piano

What

This project is a self-playing piano I made for my end of semester project for my mechatronics class. I wanted to build something that showcased my appreciation for music and combine my interest in the piano with my skills as an engineer. This piano listens for a tone and then plays the chord that would harmonize with that tone. 

How

This project is made with a linear actuator made from some V-slot extrusion, a belt drive, and a brushless DC motor left over from my electric rollerblade project. The motor is controlled by an ODrive controller which gets positional feedback from an AS5048 encoder on a custom 3D printed bracket. 

This setup creates a very fast, very accurate way of moving the "hand". The "hand" is made from a waterjet piece with fingers made from car door lock actuators. All these parts are controlled by an Arduino mega. The Arduino gets information on the tone to harmonize with from Processing. Processing is a language running on my computer that takes data from my computer mic, separates out frequencies, and displays them.