We are CS majors and we wanted to branch into hardware. We figured this would be an interesting way to learn two new things at once, learn how to play guitar and learn how to control hardware with an Arduino UNO.
What it does
Python script takes txt guitar tab files and converts them into Arduino instructions for controlling servo motors and laser diodes. We intended for the diodes to shine onto the frets to indicate what notes the user should play.
How we built it
This program is built with the standard Python library and Arduino program. The Arduino controls are serial bytecodes sent from a Python program using pyserial. Each control message consists of a single byte and directs a string's laser diode to turn on or off and point the string's servo motor to a specific fret.
Challenges we ran into
Switched file reading from MIDI to guitar tabs because the the MIDI messages were designed for piano and the messages were too complicated for the guitar's limited string set. We also ran into trouble on the actual physical limitations of the mount. If we had more time, we figure a 3d-printed mount would have been much more stable and probably could have allowed a user to hold the guitar in the proper position.
Accomplishments that I'm proud of
We're extremely proud that we got it to work. The software we designed is solid in that it performs exactly what it needs to do. Currently our only limitation is the strength of the mount and the precision of the servo motors.
What we learned
Before this project, neither of us had built a very complicated Arduino program. Neither of us had done a hardware project on this scale before. We both learned a lot about the MIDI file format, Arduino serial messages, and how to master the power of Arduino data pins.
What's next for Startech #4
We will be looking into making a mount that is more secure. We will try to talk to some engineers who are closer understanding the structural modifications necessary to make our mount viable.