The Guitar Alarm is a personal assistive device that encourages me to practice my guitar more consistently by playing the guitar strings if I have not practiced yet in a given day. The guitar stand reads the pressure of the guitar and activates a motor which plays its strings if the guitar has been resting for a whole day since the last time I practiced.
Process
Initial ideation.
The idea began as a two-piece device. The first would be a device that read the orientation of the guitar using a tilt switch. The tilt switch would read on if the guitar was upright (not being practiced) and off if it was tilted (the orientation of a guitar being played). The second part of the device would be a guitar mount that houses a linear actuator motor. The linear actuator would be activated to move back and forth when the orientation of the guitar has been upright all day until 11 pm, a time where I am typically home and would be convenient for me to practice. Attached to the actuator would be a piece that plays the strings, allowing for the user (me) to be reminded through sound when I haven't practiced yet that day.
Iterated idea.
As opposed to sensing the orientation of the guitar, I thought It might be a bit simpler if the pressure of the guitar were sensed instead. I decided to enhance the idea of a guitar mount by Incorporating both the pressure sensor and linear actuator In one piece. I also briefly entertained the idea of adding a keypad In which the user can input the time they want the alarm to be set for. I decided to incorporate this if I had the time, but wouldn't prioritize it since I knew I personally wouldn't be changing the time of the alarm, and didn't want to bite off more than I could chew.
Next, I wired and coded the hardware elements of the project. This was a fairly straightforward process after completing Project 1. I created a boolean variable that tracked whether the pressure sensor was high or low, and activated the linear actuator when the boolean was true (pressure was high). I then soldered the wires to ensure everything was secure when I fabricated the design (although this is unfortunate foreshadowing for how the final presentation went).
I next planned how I would fabricate the guitar mount. Because of the size of the linear actuator and the distance it needed to extend away from the guitar, I decided it would be simpler to again divide the design into two pieces. One piece would be the guitar mount Itself and would house the pressure sensor. The other would house the linear actuator, and the rest of the electronics. I gave consideration to the wires that would need to connect between the two pieces by adding in small holes in each piece, and carved out space behind the guitar mount piece to hide the wires as much as possible for a clean appearance.
I tested the 3D printed models and found that there were quite a few complications. First of all, it was very tricky to consistently align the motor and its attachment with the strings, meaning the strings weren't always played. Secondly, the mount was not very secure and couldn't hold the weight of the guitar (what isn't pictured In the photo/video my roommate carefully waiting beneath the guitar In case It fell, and you can also see my hand needing to support the linear actuator mount. Lastly, the material of the 3D print was not responding well to any adhesives I tried for the pressure sensor, and the sensor was additionally not fitting very well on the mount. I quickly reevaluated how this project could work, and decided to make a guitar stand Instead of a mount. This removed the concern of holding the weight of the guitar, and made attaching the pressure sensor much simpler. It also allowed for me to more easily manipulate where the motor was In relation to the guitar strings, as opposed to needing the motor to extend off of the wall.
I then (somewhat frantically) created a new design for the now guitar stand and fabricated it through laser cutting. This version amended all of the problems I faced with the guitar mount, and the project was complete!
Discussion
The response from the in-class critique was very constructive. A few positive comments pointed out that they liked how the machine was playing the guitar itself. One person wrote that "the machine is having all the fun!", which to me is a very exciting interpretation of the design. Another also write that the alarm was thoughtful In not being too annoying and "serves as a good reminder to practice". The notes that were left as opportunities for improvement brought up many incredibly helpful points that I had not previously considered. One guest professor brought up that the guitar could be detected in a variety of other ways that might be less finicky than a pressure sensor such as a distance sensor. I thought this was a great point, and allowed me realize that I had stuck with a pressure sensor, which felt more intuitive for a guitar mount, but a guitar stand could work much better with something like an ultrasonic distance sensor. The commenter pointed out that with a distance sensor, the user "could put any guitar [in the stand}". There were also great recommendations as to how the stand could be further refined with more iterations. One recommended that the guitar could be connected "to an amp at home that switches on after a certain [amount of time] so the strum is louder" the more time that passes. Another guest also recommended that the strums could get faster if the user doesn't pick up the guitar. The recommendation I found the most eye-opening was to think about how the device could be created to attach to an existing stand or mount. I would love to consider this in order to make the design more universally applied. While I don't plan on building another iteration of this project, there were many important considerations that were brought to my attention which I would modify in a future design. In addition to making the design more applicable to existing stands or mounts, I would also switch the pressure sensor to a distance sensor so that the placement of the guitar is less particular. To ensure the user (me) actually practices the guitar and doesn't just pick up and put down the guitar, I would also modify the code so that the motor moves again if the guitar has only been quickly lifted and placed back down. I believe all of these modifications would be fairly simple to implement, but would have a huge impact on the overall design.
Reflecting on what was produced, I am quite proud of how it turned out. I think it was a fun solution that effectively targeted the habit I'd like to break, and am excited to test it out. I am also very pleased with what I was able to pull off given that I realized the guitar mount wasn't working very well just a day and a half away from the final presentation. I don't think this was a fault of my scheduling, which I worked hard to be on top of, but rather not holistically considering how my design would be implemented. This has emphasized to me the importance of giving consideration to all aspects before fabricating. At the end of the day, they will need to be considered and it's better to plan ahead than figure them out as the project comes along. I would remind my past self of this, and ask her how she would expect to adhere the guitar mount to a wall for the final presentation, and have it hold the guitar's weight. On another note, I am also realizing that making products with working interactions is not nearly as overwhelming as it initially seemed. It is shocking to me that just a few weeks ago this all felt so daunting, and now I am able to make a somewhat technically advanced working product, compared to my previous design work. This feels super exciting In terms of what I can create in the future, and how I can easily enhance my projects within my design classes. Lastly, while I am mostly excited about all the new skills I now have, I am secretly most of all excited to have a new piece to add to my design portfolio.
Technical Information
Block diagram and schematic.
// Guitar Alarm
// Saylor Frankel
// This code reads the pressure from a pressure sensor. If the pressure has been HIGH until the set practice time in miliseconds (stored under practiceTime),
// it calls Extends() and Retracts() which moves a linear actuator. When the pressure is LOW, it calls Retracts() and stops motion of the lineaer actuator.
// A0 - pressure sensor
// D8 - linear actuator power
// D9 - linear actuator gnd
#define PRESSURE_SENSOR A0
const int GreenWire = 9;
const int BlueWire = 8;
int pressure = 0;
int hasPracticed = false;
unsigned long fullDay = 86400000; //24 hours
unsigned long oneHour = 3600000;
unsigned long oneMinute = 60000;
unsigned long currentTime = millis();
unsigned long practiceTime = 82800000; //11 pm
void setup() {
//pressure sensor setup
pinMode(PRESSURE_SENSOR, INPUT);
//linear actuator setup
pinMode(GreenWire, OUTPUT);
pinMode(BlueWire, OUTPUT);
Serial.begin(9600);
}
void loop() {
pressure = digitalRead(PRESSURE_SENSOR);
Serial.print("pressure: ");
Serial.println(pressure);
delay(2000);
Serial.print("hasPracticed: ");
Serial.println(hasPracticed);
delay(2000);
//resetting time after 24 hours
if (currentTime == fullDay){
currentTime = 0;
hasPracticed = false;
}
//if guitar is lifted before practice time
if (pressure == LOW){
//if (currentTime < practiceTime){
hasPracticed = true;
Retracts();
}
//when practice time comes
if (currentTime >= practiceTime){
if (hasPracticed == false){
Extends();
//delay(2000);
Retracts();
//delay(2000);
}
}
}
void Retracts() {
Serial.println("Retracts");
digitalWrite(GreenWire, LOW); //Code to retract linear actuator
digitalWrite(BlueWire, HIGH);
delay(4000);
}
void Extends() {
Serial.println("Extends");
digitalWrite(GreenWire, HIGH); //Code to extend linear actuator
digitalWrite(BlueWire, LOW);
delay(4000);
}