final project


For the details on the development of my final project, go to my final project tracking page.

what does it do?

It's a piano keyboard that connects to a computer application. In the computer application, you can arrange music notes onto a staff as if creating sheet music. Then you can send that music to the keyboard, and the appropriate keys light up as the notes are played from the application.

who's done what beforehand?

I don't get this question. If this is asking if something like this already exists, it probably does. If this is asking if I have worked on this project before, then the answer is no.

what did you design?

I designed almost everything. For my CAD design, I started from an STL of a set of piano keys on Thingiverse, but I basically just used that to get the outline of the shapes. I did all the design of the keys I ended up printing. I also did all the design of the piano housing. My bridge board is exactly the same as Neil's bridge board, but my LED controller board and the 12 mini boards that just have the LEDs on them are my own designs. I referred to the charlieplexing example when designing my LED controller.

what materials and components were used? where did they come from? how much did they cost?

All the supplies for making my bridge board, my LED controller board, and my 12 mini LED boards came from the fab inventory. Outside of the fab inventory supply, I used one sheet of 1/8" plywood to create the piano housing, and black spray paint to paint the wood black. I had the plywood from a project for another class where they supplied us wood, so it cost me nothing although I know a sheet of the size I used is around $6 from Artist and Craftsman. I also already had the black spray paint for another class, but I paid $5.99 for it initially. The only other cost was the cost of the filament for my 3D printed keys which were printed on the Form 2 printer in the IDC.

what parts and systems were made?

  1. computer interace
  2. electronics network that control LEDs and interfaces with computer
  3. piano keys
  4. housing for the keyboard

what processes were used?

I incorporated all these weeks in my project:

  1. computer-aided design: I used Rhino to design the piano keys and the housing for the keyboard.
  2. computer-controlled cutting: I laser-cut the piano housing.
  3. 3D printing: My piano keys are 3D printed.
  4. electronics design and production and embedded programming: I designed all my boards in Eagle and stuffed them. I wrote C code to program my boards to do what I wanted.
  5. output devices: I used charlieplexing to control the LEDs that are embedded in my piano keys.
  6. interface and application programming: I used Processing to make an application to control the lights in the keys.
  7. networking and communications: I have a serial bus network with a bridge board and a LED controller board. I didn't actually end up needing the whole network since I only have an output board, but I used the network because I was initally hoping to also have an input board to sense when a key is pressed.

I wanted to incorporate an input device into my project too. I wanted to use capacitive sensing to sense when a key is pressed. Due to time constraints and spiral development, I didn't do this.

what questions were answered?

I think I learned a ton about electronics by doing this final project. I would say that the first 2/3 of this class, I was super intimidated by electronics. I still have a lot to learn, and a bunch of things go over my head, but this project helped me be more confident in my ability to do electronics things and just talk about electronics. Just one specific example is that I learned how charlieplexing works, and I understand the Tx/Rx serial communication now.

how was it evaluated?

I'm happy with how it turned out! It's simple, but I think that allowed me to turn it a project that is functional and looks finished. There are a million more things I wanted to do with it, but those will have to wait for another time.

what are the implications?

I think my project is a good starting point for something really useful to teach piano/music. The link between the interface and the physical object creates a connection between written music and playing the piano. There are lots of possibilities for how it could be extended to be more useful. For example, I wanted it to be able to function as an actual piano also which would require sensing when a key is pressed. The interface could definitely be developed further.