The Elaborate “No Wakey Wakey” Synth Piano [Oct. 2, 2017]

Foreword:

We have all had experiences where our roommate is being noisy and preventing you from sleeping. Well not with this piano. The built-in light sensor prevents this piano from playing when the room is dark and your roommate is sleeping. However, once the lights are on (and the power indicator LED will let you know what sufficient light is) you can play the three octaves of A that this model can output to your heart’s content. Maybe you wont compose the next masterpiece with this, but at least your roomie can get some shut-eye.

Potential Improvements/Ideas:

I wanted to add (and did at one point, before removing it) a servo that rotates 180 degrees from “off” to “on” and vice versa to act as a power indicator along with the LED. I scrapped this idea because I figured it was unnecessary for this assignment and plus, having so many things connected to my redBoard was making me nervous about burning it out.

Another idea would be to have a wider range of sounds, but I only have a few buttons and I feel like adding more sounds would be trivial and not display any additional knowledge that the three buttons don’t already show. If this was an actual product for sale more time would be spent in this regard but for the purpose of this “prototype” the aim is really proof of concept.

Problems Encountered:

  • A few of my wires were apparently not working and finding which ones needed to be replaced was a difficult task. 
  • Sometimes, if the buttons were not contacting properly with the breadboard, weird things would happen like the wrong note playing or inexplicable resistance on the buzzer causing volume dips… at least I think it was resistance, it could also have been conflicting signals causing strange behaviour.
  • At one point the buttons were not working (when the wires needed to be changed) so to determine which button was not working I did a Serial.println() each time a button was pressed so the faulty button could be snuffed out.
  • Before I removed the servo, in order to get it to work I had to ground it directly to the redBoard. Grounding it via the breadboard was not closing the circuit for some reason but connecting it directly to the redBoard did.

Code:

 

Schematic:

Leave a Reply

Your email address will not be published. Required fields are marked *