The head of the guitar is where the vibration of the body and the visual feedback are controlled. This part of the design consists of an Arduino Duemilanove controller, 2 pager motors (vibration), and 6 LEDs (visual feedback). The vibration and visual feedback are discussed separately below.
Vibration: To give the feeling that a real acoustic guitar gives when its strings are plucked, we decided to include 2 pager motors that spun at a certain speed at the neck of the guitar as soon as a one of the virtual strings was plucked. The certain speed was determined by what the volume was – the higher the volume, the higher the speed. To get the volume data, we ran a line from an Arduino Mega Analog Out pin to the Duemilanove’s Analog In pin. We mapped that data to a full PWM range, which created 2 signals that controlled both motors.
As long as the virtual strings were not being plucked, the speed of the motors would attenuate over a given amount of time to simulate the dying down of the vibrations. We based this given amount of time (about 15 seconds for loud plucks) on tests that we did with a real acoustic guitar.
Visual Feedback: We decided to add an element of “Star Power” in our design by creating a light-up block M that had 3 levels of lighting that would react to the volume in a manner similar to the pager motors. To do this, we mapped the same volume data to PWM ranges, which created 3 signals that controlled 3 sets of 2 LEDs in parallel.
As long as the virtual strings were not being plucked, the lighting would attenuate over a given amount of time. The top tier of LEDs was mapped to the smallest PWM range, so it started to dim first. The second tier was mapped to the middle range, so they started to dim about a second after the top tier. The third tier was mapped to the highest range, so it dimmed last.
The code for this can be found in the Appendix section under older posts.
Layout:
Thursday, December 17, 2009
Subscribe to:
Post Comments (Atom)
I'm wondering why you chose to link the pager motor speed to volume, instead of the pitch of the note? In an acoustic guitar, typically you would feel vibration frequencies correlated to the note played. I get that you want a greater intensity when the string is plucked loudly, but causing the frequency of the motor to change independently of the note, you may create situations where the feel of the vibration is confusing to the musician. Say, when you play a low note really loudly or a high note really softly. It may be more intuitive if weight the two motors differently and use one for loud notes and one for quiet, while changing the frequency based on the pitch.
ReplyDeleteI agree with Cameron, it makes a bit more intuitive sense to connect the vibration to the pitch; however, I think that the idea itself was fantastic. It added a huge amount of character to the instrument and I think I would have missed it had it not been there. So much about how a guitar feels is through the vibrations transmitted to the player, and finding anyway to incorporate that is wonderful.
ReplyDeleteThanks guys. We'd considered connecting it to the pitch. However, after doing a bit of testing on my acoustic guitar, we found that we couldn't really physically detect a difference in vibration frequency with a change in pitch. We did note that a change in volume was noticeable, though.
ReplyDeleteIf we had more time, we'd definitely consider that aspect of the guitar more - I'd like to look into the differently weighted motors method...
You all took my comment! Uh, something else to say... where did you get blue leds!? We looked for them but couldn't find anything. Blue LEDs always make a project's value triple, or at least that's what robot makers want us to think.
ReplyDelete