Vous êtes sur la page 1sur 17

Automated Guitar Final Design Report

University of Colorado Boulder



Aesthetics in Design

John Devens

May 31, 2014

Table of Contents
Course Introduction ................................................................................................................. 3
Artifact Introduction ............................................................................................................... 3
The Design ................................................................................................................................... 4
Overview ................................................................................................................................................ 4
The Guitar .............................................................................................................................................. 5
The Aruino ............................................................................................................................................ 5
Protoboard ............................................................................................................................................ 6
Solenoids ................................................................................................................................................ 7
Servo ........................................................................................................................................................ 7
The Sculpture ....................................................................................................................................... 8
Testing .......................................................................................................................................... 8
Conclusion ................................................................................................................................... 9
Appendix ................................................................................................................................... 11
Arduino Code: ................................................................................................................................... 11



Course Introduction

Aesthetics in Design is an upper/graduate level design course at the University of
Colorado that takes students from engineering disciplines as well as the arts to work
together and design and build a dynamic artifact. The condition of the artifact is
required to change with time and an aesthetic quality must be taken into account
when designing the artifact. Teams of three people were assembled based on
educational background and overall availability, and all three team members were
to work together to design and produce three separate artifacts. The artifacts could
be functional, such as an engine or tool, or they could be purely artistic, such as a
moving sculpture. Each team member would work with their teammates to further
the design of each artifact, but each individual would only take direct ownership of
one of the three projects.

Artifact Introduction

The original design goal for this project was to design and build a series of
attachments for an acoustic guitar that would allow the guitar to essentially play
itself. That is, a series of attachments would be developed that would fret and strum
without any human input. Initially, aesthetics were not considered as a major facet
of the design, as the shear spectacle of a guitar being played with electronic
components would provide the aesthetic appeal. Visual and acoustic beauty would
be secondary goals once the functional aspects of the automated guitar came to
fruition.

As the design process progressed, it became increasingly evident that a truly
autonomous guitar could not be built in three weeks with the limited time, budget,
and experience available. At this point, the goal of the design shifted from a
functional automated guitar to become a sculpture and a statement. The guitar
would ideally play, but there was no mistaking that the guitar would play well, if at
all. It would move and try to play, but quality of the finished guitar was no longer a
priority. Without a significantly expanded budget and timeline, getting the guitar to
play well was unfeasible. Even if the guitar did play well, the lack of a personal
human touch would make the guitar nothing more than cool idea that would be
forgotten after fifteen minutes.

This observation became the central theme of the final design goal. The guitar
would be converted to a sculpture that would move and play with such absurdity
that it would become a farce of the original idea. The sculpture would say that
music might be created robotically or electronically these days, but without a
human actually playing the instrument, the effect is greatly decreased and the
overall spectacle is far less impressive and emotional. The final sculpture was to be
a shot at the computer generated music movement popularized by such artists as
Dead Maus and Skrillex while espousing the musical talents of individuals with
traditional instruments.

The most basic necessity of the sculpture was to have a moving guitar that
attempted to play music, but did so poorly. Higher level needs included an aesthetic
appeal to contrast the computer-generated music with traditional instruments; the
ability for the guitar to actually play a song, but do so poorly; and portability so that
the sculpture could actually be exhibited.

The first higher level need helped to develop the aesthetic theme that would be
exhibited by the sculpture, a style coined as Dreadnought versus the Terminator,
hereon referred to as DvT. A dreadnought, aside from being an early version of the
battleship, is the name of a popular acoustic guitar body shape. The Terminator
refers to a futuristic robotic assassin sent back in time to kill Sarah Connor and save
the earth from the computer-based terror that would become Skynet. The aesthetic
style refers to the crude blending of old-school craftsmanship (i.e. an acoustic
guitar) and contemporary electrical and computer-based technology (e.g. wires,
microcontrollers, and motors). The crude and absurd aesthetic is meant to highlight
the disparity between traditional and computer-generated music styles while
advocating the merits of the former.

The Design

The total components and final design and construction of the artifact will now be
discussed in detail.

Overview

The robotic guitar itself, seen in Figure 1,
consists of an Arduino Uno microcontroller, a
proto board with various electrical
components, four useable linear solenoids, a
180-degree servo motor, ABS plastic, a guitar
pick, various fasteners, and an aluminum rod.
The sculpture aspect, made to hold the guitar,
was made from wooden 2x2s, various wooden
boards, a cross-section of a log, paint, and
various fasteners. The Arduino is run using a
C-based computer code that will control the
electronics, and the guitar is then placed in the
arms of the sculpture to sit and play.


Figure 1: Final guitar construction without solenoid
casing attached
The Guitar

The guitar selected for the sculpture is a dreadnought-style acoustic guitar made by
Nagoya. The actual guitar is irrelevant to the design as
long as it is an acoustic guitar. This guitar was selected
based purely on availability. The guitar is strung with
Martin Custom Light strings and is designed to be tuned
to an open E tuning, though the final sculpture used a
very loose, and nonexistent guitar tuning to allow the
servo to actually strum the strings.

Martin Custom Light strings (Figure 2) were selected
because they are very thin-gauge strings which make it
easier for the servos to press down on the strings and get a
good sound. Martin strings were selected because of the
high quality and good tone of the strings.


The Arduino

To control the motor and solenoids attached to the guitar,
an Arduino Uno microcontroller was used as seen in
Figure 3. The Arduino takes C-based code as an input to
time and control the electric components. The Arduino
was powered via USB connection with a computer,
therefore a computer must always be in close proximity
to the sculpture for it to work.

Digital pins 8 through 12 were used to control the state of the solenoids, and digital
pin 13 controlled the motion of the servo. The servo was directly connected to the
Arduino in pin 13, the 5 volt output pin, and a ground pin. The solenoids were
connected to pins 8 through 12 via a proto board. Once everything was connected
to the Arduino, the Arduino was arbitrarily screwed to the face of the guitar. The
location of the Arduino is irrelevant as long as it is mounted securely and in full view
of the audience. Exposed electronics and wires are fundamental to the aesthetic
DvT.

Code for the Arduino can be found in the appendix.


Figure 2: Martin Custom Light
Strings
Figure 3: Arduino Uno
Proto Board

Between the Arduino and the solenoids is a proto board containing the necessary
components to control the state of the solenoids. The proto board is divided into
five distinct but identical sections, each one set
to control one of the five sourced solenoids as
seen in Figure 4. Central to each section is a
TIP31 NPN transistor to control the current
pulled across each solenoid. The base pin of
the transistor is connected through a 1000
ohm resistor to one of the digital output pins
on the Arduino. The emitter of the transistor is
wired to a common ground, and the collector
pin links with the solenoid complex. Each
solenoid is wired in parallel with a 1N4001
diode. On one end of the solenoid is a junction
connected to a 12 volt power source, and on
the other end is the collector pin of the
transistor. The diode is polarized such that
current from cannot flow from the 12 volt
junction to the collector pin, only the other way
around. Also connected to the 12 volt junction
along with the positive ends of the diode and
solenoid is a 0.1 microfarad capacitor, which is
wired to ground.

When the corresponding digital output pin of
the Arduino is set to HIGH, current flows
across the resistor on the proto board and into
the base pin of the transistor. This signals the
collector pin to being pulling current across the
solenoid from the 12 volt power source. The
12 volt drop across the solenoid activates the magnet in the solenoid causing it to
press down on its corresponding guitar string. When the base pin of the transistor
is not HIGH, the collector will not draw any current meaning the solenoid will not
be activated. Any leftover charge in this area will flow back across the diode and to
the capacitor. The capacitor will charge during this time so that the charge will
always be available to the solenoid when necessary.

The power source used by the solenoid was a 12 volt AC to DC wall plugin operating
on 1.3 amps. Note, with the aforementioned schematic a 1.3 amp power source is
insufficient and fires may occur. Additional resistance should be added to avoid any
fires.


Figure 5: Schematic of proto board
Figure 4: Proto board and Arduino junction
Solenoids

Fretting is controlled by four or five linear solenoid actuators. The sourced
solenoids came from McMaster-Carr, product number 69905K36. The solenoids are
rated as a continuous push tubular linear solenoid based on 12 V DC with a
stroke and 20 oz. of force. A spring is placed
inside of the tube to reset the solenoid when
inactive. The springs used came from
McGuckin Hardware and were standard
compressions springs with a spring rating of
0.62. This proved to be slightly greater than
ideal, so a lower spring rate of around 0.4
would probably be preferable. Otherwise the
solenoids might jam and not completely press
down on the strings.

On the end of the solenoid is an aluminum
block to distribute the force of the solenoid
across the string or strings. The aluminum
blocks were attached with super glue. Caution should be taken when the super glue
is applied; if the bar retracts into the solenoid during this time, super glue can jam
up the springs and prevent the solenoid from working properly. One solenoid is
reserved as a muting solenoid. The idea is to place rubber on the end of this
solenoid that will barely touch the strings while the other solenoids are activating in
order to eliminate the hammer-on sound from the other aluminum blocks. The
muting solenoid was not completed in time for the project deadline, but an empty
solenoid can still be seen in Figure 6 reserved for a mute.

The solenoids are mounted to an ABS plastic housing that wraps around the neck of
the guitar. The walls of the housing were connected with a water resistant epoxy
and reinforced using L-brackets.

Servo

A 180-degree servo and mount acts to strum the guitar
strings. A high torque servo is ideal as it allows for the
motor to effectively strum the guitar and get a good
sound from them. A hole is cut into the face of the guitar
right beneath the center of the bridge. A circular
attachment is used with the servo, such as that seen in
Figure 7, and a hole is widened to accommodate the
3/32 aluminum rod that will mount the pick.

Figure 6: Solenoids
Figure 7: Servo mount
The pick is mounted to a square made of ABS plastic. Two holes were drilled into
the pick and plastic to prevent any rotation. A hole was drilled through the thin side
face of the ABS to fit the aluminum rod that will mount to the servo. The rod is
secured to the servo mount and pick mount with super glue. The servo is then
connected to the Arduino through the sound hole of the guitar.

The Sculpture

The final piece of the design is the sculpture itself that
will hold the guitar. The sculpture for this design was
made with scrap wood found in the machine shop,
primarily 2x2s with some wooden boards. This sculpture
was made entirely by eye with minimal measurements or
planning beforehand. An ideal design would have the
sculpture built from metal to exhibit a more robotic
appearance, but as long as the sculpture can hold the
guitar and look absurd while doing so, it will work.
Unfortunately the sculpture built for this project, seen in
Figure 8, held the guitar without the solenoid attachment,
but could not hold the guitar with solenoids attached and
thus failed at its purpose.


Testing

Due to time constraints on this project, little testing was done. The only real testing
at the end for the guitar was turning it on and seeing if it worked. It did, but just
barely and only certain parts of it.

The code was tested by hooking a solenoid directly to the Arduino pins to see if they
would activate when called upon by the code. This allowed for the solenoid to
bypass much of the proto board to eliminate most variables for troubleshooting
should the solenoid not work. It did work however, meaning the solenoids would
work successfully.

The proto board was tested by plugging it in and calling a function with the Arduino
to see if the solenoid would activate with the circuit board. This also worked
indicating that the proto board was correctly wired.

The servo was tested by connecting to the Arduino and running the built in servo
sweep example that came with the Arduino software. The original 360-degree servo
did not work as required with the code, indicating that the servo would not work for
Figure 8: The player
the desired goal. A 180-degree servo was used instead, and it did react
appropriately so a 180-degree servo was substituted in the final design. The
disparity between the servos is due to the fact that a 180-degree servo has the
ability to store a position and monitor its angle in relation to the stored position.
This is not the case with the 360-degree servo.

The sculpture was tested for stability by sitting on it to make sure it did not collapse
under the weight of a person. It did not and was deemed stable. It was tested to
hold the guitar by placing the guitar, sans solenoid housing, in the arms of the
sculpture. The sculpture successfully held the guitar in place and was labeled a
success, but when the solenoid housing was mounted to the guitar, the ABS proved
too slippery for the wooden arms to hold and the solenoids were too heavy so the
guitar slipped out of the sculptures arms. The sculpture failed this test.

The overall absurdity of the project was tested by showing people the sculpture and
guitar. The overwhelming consensus was that the sculpture was ridiculous and
humorous while the guitar, albeit impressive, sounded terrible. Mission
accomplished.

Conclusion

The final artifact succeeded in that it was a dynamic deliverable with an overall
aesthetic theme. The exposed wiring and ridiculous sculpture really highlighted the
dichotomy between the guitar and the technology, and the poor playing from the
guitar cemented the idea that robotics just did not cut it compared to a real human
playing the guitar. In this regard, 100 percent of the base functional goals were met.
The guitar played poorly and looked gruesome while doing so. The higher-level
goals were met with mixed results. The guitar did not play an actual song, so it
failed on that respect. It also required a nearby computer and wall plug to actually
operate, so the sculpture was not exactly portable either. The aesthetic was evident
though, so it succeeded in that area.

The total cost of the project was greater than the prescribed 125 dollar budget. The
solenoids cost forty dollars each, already blowing past the budget. The Arduino was
another 24 dollars, the servo was 15, and the plastic was another forty. In total the
project cost exceeded 300 dollars including unused parts (such as the first Arduino
that was set on fire). The guitar was obtained for free as it was just lying in a closet,
but the purchase of a guitar would be an additional fifty dollars at least if it were
purchased new.

The project can be developed further by making the guitar actually play a song. This
would be best done by replacing the standard acoustic guitar with a classical guitar
that uses nylon strings as the nylon strings will be easier for the servo to strum and
the solenoids to press down. The muting solenoid could be finished and the whole
appearance should be polished up. The wires should still be exposed and the
Arduino and proto board should be mounted to the front of the guitar still, but the
plastic should be cleaned and the guitar polished. Replacing the plastic housing
with aluminum would further the robotic look of the guitar takeover.

The sculpture should be improved to actually hold the guitar, and the materials of
the sculpture can be improved as well. If the sculpture were made from metal,
possible pipes or something similar, it would have a more robotic appearance that
would enhance the aesthetic. Wires could then be glued to the joints to make it look
even more robotic. A Dead Maus mask would be icing on the cake for this sculpture.

The original plan of a truly autonomous guitar was a spectacular failure. The
delivered artifact could barely strum, and only if the strings were very loose with no
actual tone coming from them. Only one of the solenoids reliably worked (that is,
only one was not totally clogged up with glue), and even that one could not push
down on the string with enough force to produce a note, even when the strings were
in tune.

The repurposed sculpture succeeded, however, in highlighting the total failure of
the guitar resulting in a decently successful parody of computer generated music.
Much was learned from this project. The Arduino was coded successfully and the
circuits all worked as planned. A circuit board was even designed and printed
successfully to operate the guitar. Unfortunately the circuit board caught fire twice
and was unusable in the final iteration. The project was a fun, albeit stressful way to
learn more about electronics and microcontrollers while combining two of the great
pleasures in this world: music and engineering. Ultimately, the project and class
were a great success.

Maybe in a month I will be able to motivate myself to pick up a guitar and begin
playing for fun. Until the trauma of many long nights spent performing surgery on a
guitar goes away, however, my remaining guitars will sit unplayed in the corner.
Appendix

Arduino Code:

//She Talks To Angels
//John Devens

#include <Servo.h>

Servo myservo; //create servo object to control
servo

int pos = 0; //store servo position
int serv1 = 12; //1st fret
int serv2 = 11; //2nd fret
int serv3 = 10; //5th fret
int serv4 = 9; //7th fret
int serv5 = 8; //12th fret

void setup()
{
myservo.attach(13);
pinMode(serv1, OUTPUT);
pinMode(serv2, OUTPUT);
pinMode(serv3, OUTPUT);
pinMode(serv4, OUTPUT);
pinMode(serv5, OUTPUT);
}

void loop()
{
verse();
chorus();
verse();
chorus();
verse();
chorus();
bridge();
verse();
chorus();
chorus();
}

void verse()
{
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(30);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(30);
}
digitalWrite(serv5, HIGH);
digitalWrite(serv1, HIGH);
digitalWrite(serv2, HIGH);
digitalWrite(serv5, LOW);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv1, LOW);
digitalWrite(serv2, LOW);
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv5, HIGH);
digitalWrite(serv1, HIGH);
digitalWrite(serv2, HIGH);
digitalWrite(serv5, LOW);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv1, LOW);
digitalWrite(serv2, LOW);
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}

}

void chorus()
{
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv5, HIGH);
digitalWrite(serv4, HIGH);
digitalWrite(serv5, LOW);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv5, HIGH);
digitalWrite(serv4, LOW);
digitalWrite(serv3, HIGH);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(30);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(30);
}
digitalWrite(serv5, HIGH);
digitalWrite(serv1, HIGH);
digitalWrite(serv2, HIGH);
digitalWrite(serv5, LOW);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv1, LOW);
digitalWrite(serv2, LOW);
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv5, HIGH);
digitalWrite(serv1, HIGH);
digitalWrite(serv2, HIGH);
digitalWrite(serv5, LOW);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv1, LOW);
digitalWrite(serv2, LOW);
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
}

void bridge()
{
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv5, HIGH);
digitalWrite(serv3, HIGH);
digitalWrite(serv5, LOW);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
digitalWrite(serv3, LOW);
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
for(pos = 0; pos < 15; pos++)
{
myservo.write(pos);
delay(15);
}
for(pos = 15; pos>0; pos--)
{
myservo.write(pos);
delay(15);
}
}

Vous aimerez peut-être aussi