Inspiration

College life puts a stop to a lot of things. One of which, for many people, is practicing their beloved instruments. Large instruments like the drums and the piano can't be "brought" to school, not to mention any sort of practice will easily disturb others in the dorm. We decided to solve this problem by creating a virtual drum kit, where you can drum in the air.

How We built it

Our team is developing an air drum set that would allow drum set enthusiasts to play the drums through the motion of two drumsticks, eliminating the need to drag along cumbersome equipment to practice. To accomplish this, we are using an Adafruit 9-DOF IMU breakout chip to read X, Y, and Z acceleration values that are then processed by an Arduino Uno. We created a reference acceleration profile to see what a hit looked like and are matching against that case to detect hits, with programming done in the Arduino IDE. The sensor is also sending heading and pitch readings to the arduino, which we are using to distinguish between different hits for the different instruments of the drum set. We are using the Processing application to listen in on the arduino serial port and play the correct sound files through the laptop speakers when the corresponding hit is detected. In order to communicate between the arduino and the computer, we will have a master arduino wired to the computer that will receive inputs from the two slave arduinos attached to the drum sticks. While we have started establishing the master/slave relationship for the arduinos, we are waiting on the delivery of our second 9-DOF sensor to be able to send the inputs to the master arduino.

Challenges We ran into

Some challenges we ran into were being able to detect the hits based on the acceleration values we were reading. It was difficult because of the inaccuracy of the sensor readings and because the sensor measures acceleration based on factors such as normal force. The acceleration values we measured varied with altitude and the direction of variation was sometimes inconsistent.

Accomplishments that We’re Proud of

An accomplishment that we are proud of is that we were able to detect the hits relatively accurately by storing a reference array that is the average of multiple hits and analyzing the data we obtained by graphing it in Excel. We are very proud that we were able to play different drum sounds corresponding to the correct drum hit, as this accomplished our primary objective with the project.

What We learned

We learned that the values read by sensors are much less accurate than we would have hoped and so a robust way to interpret and process the data is needed. We also learned that it is very difficult to detect position directly and it is easier to use a motion detection system like the Kinect or Wii Remote to determine position. We also learned that a third party software is necessary to listen in on the serial port to then play sound through laptop speakers, as we had previously thought this would be possible through the Arduino IDE.

What’s next for DrumBand

We will finish establishing communication between the slave arduinos and master arduino once we take delivery of the second sensor to increase the ease of use of the product. Time permitting, we are also hoping to attach a motor to each drumstick to provide haptic feedback when a drum hit is detected to increase the realism of the product.

Built With

Share this project:

Updates