Timmy

Parker Hunt, Rohan Prasad, Tyler Sanderville, Aidan Wech – MU2801 A22

Goals

When going into this project, our group had the idea of creating a mini marching band robot that could play both a string and a percussive instrument. The idea was that the robot would be built on top of a chassis that could drive around the room autonomously while playing a composition via MIDI output. As we started to design the robot, we wanted to challenge ourselves by limiting what components we could use to recycled parts we already owned which also helped minimize the cost of the project. We also wanted it to be as small as possible due to the size of the chassis we had.

Design

The robot was designed using simple circuitry to keep complications out. The solenoid was controlled using a MOSFET and the two DC motors were controlled using a H-bridge. The two motors spun, rather than plucked the string, to get a strumming aspect while playing. Pieces of a hair brush thistle were used to excite the string. The drum was made out of a plastic cup with a balloon on the end to help bounce the frequency of the drum sounds. The solenoid hit the bottom of the cup to make the sound. The tuner pegs at the back of the robot allow us to adjust the pitch of the strings, creating a sort of collaborative element with Timmy.

DC Motor With Hairbrush Thistles Used to Excite the Strings
Solenoid Used for the Drum Component
Mini Chassis
Tuner Pegs Used to Adjust the Pitch of the Strings
Timmy’s Circuitry

Software

For software we wanted the design of the code to be simple and modular in the event that we wanted to adjust components on the fly or add more instruments. To do this, the code was designed by using global variables that represented an instrument’s pin value and byte value that would be read by the serial. When looping, we read two bytes generated by the serial communicator and save them as the note that is being played and the velocity at which it is being played respectively. We use if statements to see if a note byte value is equal to an instrument pin value. If so, we check the velocity byte value and digitally write to the pin depending on its value. For the Ableton MIDI output, we used 3 different notes to send single byte signals to the Arduino which either activates one of the two motors, or the solenoid. The solenoid has a snare drum like pattern that repeats throughout the song and the motors alternate often and play a note together from time to time.

Timmy’s Arduino Code
Ableton MIDI Track Output

Videos

Timmy’s Performance (https://drive.google.com/file/d/1cG82hpkRg89GTD-T1KKAYI1STi77Z6ud/view?usp=sharing)

Leave a Reply

Your email address will not be published. Required fields are marked *