The Accessible Guitar

I am in the process of designing a device that can be placed on a guitar, and through a Bluetooth app, hold down the chords of a selected song. This device will allow partially disabled individuals to pursue this art, as well as allow guitar to be taken up by the masses.

Engineer

Eytan I

Area of Interest

Electrical/Computer Engineering

School

SAR High School

Grade

Senior

Behind the design

Behind the design

The Musical Soldier

In my school’s Veteran’s day assembly, I heard the story of a soldier who had great musical talent, but unfortunately lost his ability to play the guitar after he was injured in battle. I was tasked with writing him a note, expressing my gratefulness for his sacrifice, but it seemed in-genuine. I thought, “Maybe I could fix his problem, not just sympathize with it.” Since then, I have heard the stories of so many individuals who have lost ability to play an instrument they held so closely to their heart. Whether it was a girl who developed a tremor in one of her hands, making it impossible to hold down chords, or a man who got paralyzed in one arm, the stories of individuals not being able to pursue music pained me. I had a deep desire to help.

Music For All

Several weeks after my initial exposure to the idea, I sat down in my room and was listening to music. The music was calming, but I felt like it was not personal. I had a great sudden urge to be able to control it, to be able to pick up a guitar and play it masterly. However, within a few minutes, I realized that the art involves incredible skill, and it is not enough to be musically talented or be able to read sheet music, the mastery of an instrument requires hard work and dedication. I thought to myself, “what if it was much easier for an individual to be able to pick up an instrument and feel like they are changing the environment around them?” The power of music is great and I intend to make it accessible to all.

Design

I began my design of the product by thinking of the requirements.

  1. The strings cannot be touched when they are not being firmly held down.
  2. I need to minimally have three frets of strings (6×3 = 18 spots) that are able to be held down.
  3. The device has to be able to stay by itself on the guitar
  4. The device has to be able to be controlled by a reasonable number of motors.

I researched different methods which I could use to hold down the strings and decided that a camshaft would work the best. A camshaft is a rod with ovular objects perpendicularly placed at different angles and heights, allowing for the pressing down of objects, with the rotation of the camshaft.

I then decided that I could use springs to keep the pegs in the upright position, until the camshaft holds it down.

camshaft

Fusion 360 Design

screenshot-9-e1577242255166

Fusion 360 Body

admin-ajax

Camshaft

Code

I am using a micro-processor called Arduino. Arduino allows interaction between hardware and software in order to produce desired inputs and outputs.

#include <Servo.h>
#include <SoftwareSerial.h>  // Allows communication with Bluetooth

Servo string1;  // create servo object to control a servo
Servo string2;  // create servo object to control a servo
Servo string3;  // create servo object to control a servo
Servo string4;  // create servo object to control a servo
Servo string5;  // create servo object to control a servo
Servo string6;  // create servo object to control a servo

int String1 = 0;
int String2 = 0; 
int String3 = 0;
int String4 = 0;
int String5 = 0;
int String6 = 0; //create integer variables for the position of camshaft on string 
int data = 0; // create integer variable for data that comes in through bluetooth
SoftwareSerial mySerial(0, 1); // RX, TX
//0,60,and 90 correspond to angles that the servo motors will rotate. When rotated 30 degrees, first fret is held down, ext.
void playA()
{
  int String1 = 0;
  int String2 = 60;
  int String3 = 60;
  int String4 = 60;
  int String5 = 0;
  int String6 = 0;
}
void playAm()
{
  int String1 = 0;
  int String2 = 0;
  int String3 = 60;
  int String4 = 60;
  int String5 = 30;
  int String6 = 0;
}
void playC()
{
  int String1 = 0;
  int String2 = 90;
  int String3 = 60;
  int String4 = 0;
  int String5 = 30;
  int String6 = 0;
}
void playD()
{
  int String1 = 0;
  int String2 = 90;
  int String3 = 60;
  int String4 = 0;
  int String5 = 30;
  int String6 = 0;
}
void playDm()
{
  int String1 = 0;
  int String2 = 0;
  int String3 = 0;
  int String4 = 60;
  int String5 = 90;
 int String6 = 60;
}
void playE()
{
  int String1 = 0;
  int String2 = 60;
  int String3 = 60;
  int String4 = 30;
  int String5 = 0;
  int String6 = 0;
}
void playEm()
{
  int String1 = 0;
  int String2 = 60;
  int String3 = 60;
  int String4 = 0;
  int String5 = 0;
  int String6 = 0;
}
void playF()
{
  int String1 = 30;
  int String2 = 90;
  int String3 = 90;
  int String4 = 60;
  int String5 = 30;
  int String6 = 30;
}
void playG()
{
  int String1 = 90;
  int String2 = 60;
  int String3 = 0;
  int String4 = 0;
  int String5 = 0;
  int String6 = 90;
}

void setup() {
  string1.attach(3);  // attaches the String1 on pin 3 to the servo object
  string2.attach(5); // attaches the String2 on pin 5 to the servo object
  string3.attach(6); // attaches the String3 on pin 6 to the servo object
  string4.attach(9); // attaches the String4 on pin 9 to the servo object
  string5.attach(10); // attaches the String5 on pin 10 to the servo object
  string6.attach(11); // attaches the String6 on pin 11 to the servo object


  // Open communication with bluetooth and wait for port to open:
  Serial.begin(57600);


  Serial.println("Initiated");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");

  
}


void loop() {

  String1.write(String1);
  String2.write(String2);
  String3.write(String3);
  String4.write(String4); // start servos at certain position
  String5.write(String5);
  String6.write(String6);
  if (mySerial.available() ) // if recieve data
  {
    data = mySerial.read(); // define data as the num recieved from BT
    Serial.write(data);
    Serial.print(data);
    delay(100);


    if ((data) == 1)
    {
      playAm; // Run function to play chord
    }
    if ((data) == 2)
    {
      playA; // Run function to play chord
    }
    if ((data) == 5)
    {
      playC; // Run function to play chord
    }
    if ((data) == 6)
    {
      playD; // Run function to play chord
    }
    if ((data) == 7)
    {
      playDm; // Run function to play chord
    }
    if ((data) == 8)
    {
      playE; // Run function to play chord
    }
    if ((data) == 9)
    {
      playEm; // Run function to play chord
    }
    if ((data) == 10)
    {
      playF; // Run function to play chord
    }
    if ((data) == 11)
    {
      playG; // Run function to play chord
    }

  }
}
App
admin-ajax-1

I have began developing the app using a program called MIT App Inventor. The app will allow a user to connect to the device, click specific chords to manually select them, or click “automatic,” and have a string of chords play one after another.

Background

Background

My background:

In 10th grade, I had my first serious opportunity to explore engineering. Several hours a week, I stayed after school and learned the basics of computer science and electrical engineering, and used an arduino micro controller for several simple projects.

In 11th grade, I took a computer science course focused on designing physics related applications. For example, we replicated an ideal gas in a closed system and were able to, through graphics, provide a visualization of the gas if temperature, volume, or the mass of the particle changes. For our final, we were tasked with creating an application which used the coding knowledge of the year, and apply it to a different task. I designed a data base of ten games, all within one application. It was rewarding and satisfying to finish the project, but it lacked meaning. I wanted to feel like my innovations are helping those around me.

The following summer I attended Blue Stamp Engineering, a program where aspiring engineers have the opportunity to create a project of their own choosing, with the help of mentors.  Over the intensive three-week program, I started with an idea and transformed it into a design and ultimately a product: a four-joint robotic arm with autonomous and Bluetooth capability. It was fulfilling work because I felt like it provided me with the foundations in several sects of engineering to be able to make devices that respond to their environments, and help people. 

Since then, I have been searching for a way to help. I learned 3d design, and continued to practice my computer and electrical engineering skills by creating small gadgets around the house. I am enrolled in AP BC Calculus, AP Computer Science, and AP C Physics, where I am learning more science every day. Now, I want to create something that will change peoples’ lives.

Start typing and press Enter to search