Upload
agnes-lee
View
224
Download
4
Tags:
Embed Size (px)
Citation preview
1Electrical and Computer Engineering
Guitar Virtuos
Justin D’Alessando (EE)Jacob Dionne (CSE)
Adam Montalbano (CSE)Jeffrey Newton (EE)
Team Kelly
Comprehensive Design Review (CDR)
2Electrical and Computer Engineering
Design Progress
CDR goals reached:• Hardware button interface for two strings complete• Microcontroller programmed• Basic GUI functional paired with song bank• New vibration sensing solution
Future goals:• USB interface between microcontroller and GUI• Finalize logic block and wiring
3Electrical and Computer Engineering
Prototype Completion
4Electrical and Computer Engineering
System Requirements (Revised)
Button Interface:• Must not affect playability of guitar • Avoid wire clutter
String Detection:• Must not affect playability of guitar strings• Output voltage produced must be recognized as logic ‘1’
Microcontroller:• Accurate logic operation on input from buttons• Reliable communication with chosen output interface
Graphical User Interface:• Real-time operation• Interfacing with microcontroller output efficiently• Provide useful results to user
5Electrical and Computer Engineering
Finger Placement Detection
First two strings are fully functional. Future tasks:
• Complete the 4 strings which remain.• Finalize wiring organization.
Button array and guitar modifications to be completed in coming week.
6Electrical and Computer Engineering
Logic Circuitry
In the past logic operations were done in microcontroller.
Microcontroller can operate up to 16MHz which provides ample sampling rate.
Speed of microcontroller software is a bottleneck. Hardware will be used to speed up logic
operations.
7Electrical and Computer Engineering
Microcontroller to PC Interface
Used MIDI adapter to communicate with PC in past demos.
Desired direct communication via USB port. Serial communication can be provided using the
FTDI USB TTL-232 cable.
8Electrical and Computer Engineering
FTDI USB TTL-232
Orange and yellow pins communicate with microcontroller through its TxD and RxD ports.
Provides convenient 5V Supply and Ground from USB.
9Electrical and Computer Engineering
Guitar Strings Wired to Microcontrollers
2nd and 4th String connected to PD2 (Pin16)
10Electrical and Computer Engineering
Voltage Applied to String when Played
Operating voltage of 4.5V to 5.5V for Atmel ATMEGA32 microcontrollers.
Metal pick is powered by 5V power supply. Each string that is played will have 5V running
through it. 6.99E-8 Ohm-m resistivity on the nickel guitar
strings which is 12 times more resistive than copper but still very small.
Gloves will be used in near future to prevent shock and a battery holder will be attached to provide portability.
11Electrical and Computer Engineering
Song Bank Design
Note values and timing printed from a text file• First three digit string represents the note to be displayed• Second three digit string represents the time that the note is to be played (in
milliseconds)
Note information is send to GUI to be displayed as song plays• Song played using the “sun.audio” library
12Electrical and Computer Engineering
Timing / Beginner Mode
All timing managed by getSleep() method• Allows for dynamic timing
• Every note has a unique timing• Shortest note possible is 1ms
• World record for fastest guitar playing is 20 notes/sec• Timing scheme accommodates any song
Beginner Mode allows user to slow down song for easier playing
• Prototype allows user to play song in half speed• Future draft will accommodate slower speeds
13Electrical and Computer Engineering
Graphical User Interface (GUI)
Pre-programmed song notes
User-played song notes
Button Panel
Correctly played note
Incorrectly played note
Fret linesStrings
Top
Bottom
14Electrical and Computer Engineering
GUI Design Modifications
Re-design of interface allows fretboards to remain stationary• Frets drawn onto fretboards• Timers used in software to delay notes from being
displayed• Ovals used to represent notes on the fretboard
• Solid oval = pinched fret at oval’s location• Re-colored string = open note on that string
• Improves readability of the GUI• Allows for simpler software design• Results analysis may be an issue
• How to allow user to see previously misplayed notes?
• Way to allow user to see upcoming notes?
15Electrical and Computer Engineering
GUI to Song Bank Communication
Song audio is imported and played using the Java Sound API
Songs are then read in line by line from a text file to the GUI software using the Java Scanner class
Note information is extracted within the GUI• Each line of the text file is stored in an ArrayList of String
objects • Switch statements determine note positioning on the
fretboards by checking the first character (the guitar string) and then the second and third characters (the fret number) of each entry in the ArrayList
• Ovals are then drawn at the appropriate position on the fretboard that represents the note, or one of the guitar strings is colored to represent an open note
16Electrical and Computer Engineering
GUI to Song Bank Communication (cont.)
Timing of notes is done using the getSleep() and Thread.sleep() methods• getSleep() extracts a delay value (in milliseconds)
based on a line from the text file• After notes are drawn on the fretboard, Thread.sleep()
is invoked with this value to delay following notes from being displayed
This process (aside from the audio portion) repeats until all lines are read from the text file (i.e. – the song has completed)