Difference between revisions of "ECE497 Project Makeshift Drums"

From eLinux.org
Jump to: navigation, search
Line 5: Line 5:
 
== Executive Summary ==
 
== Executive Summary ==
  
Our project will use Bluetooth to communicate with several vibration sensors or accelerators. These sensors will be attached by the user to everyday objects like books or a table top and the Beagle Bone Black will use the sensors' outputs to play sounds. In this way, a user can play the drums, bongos, maracas, et cetera without a drum kit or other bulky equipment.
+
Our project will communicate with several accelerators to make music. These sensors will be attached by the user to everyday objects like books or a table top and the Beagle Bone Black will use the sensors' outputs to play sounds. In this way, a user can play the drums, bongos, maracas, et cetera without a drum kit or other bulky equipment.
  
So far nothing works--we haven't started yet!
+
So far we have the accelerometer interface and signal conditioning portions of the project completed--it can detect strikes and reports them to the console. We have the Node.js portion partially complete but we need to iron out some kinks with our code to make it interact correctly.
  
We hope to get started on this soon. Dr. Yoder has Bluetooth dongles and a few kinds of sensors we should look at interfacing. We should also look at creating a web interface to select instruments and filters.
+
We still need to work on the web interface and to make it play sounds after a strike.
  
 
== Packaging ==
 
== Packaging ==
Line 38: Line 38:
 
== Theory of Operation ==
 
== Theory of Operation ==
  
Give a high level overview of the structure of your software. Are you using GStreamer?  Show a diagram of the pipeline. Are you running multiple tasks?  Show what they do and how they interact.
+
When the program first runs it initializes the accelerometer to sample at 100Hz with a range of +/-2g. Whenever a sample is collected, the accelerometer sends an interrupt signal to one of the BBB's GPIO pins. Our code then uses the I2C protocol to retrieve that sample and any others it has collected in the meantime. The accelerometer has a FIFO queue which will collect up to 32 samples in the even that the BBB does not service the interrupt before the next samples are collected.
 +
The BBB then conditions the signal so it can ignore any offsets (such as those due to the force of gravity) or small changes, like noise of the device being rotated. By changing a few parameters of our conditioning algorithm we can change how strong a strike or shake must be before the device detects it.
 +
Next the sensor that reported the strike and the force of the strike itself are reported to the browser. The browser in turn plays a sound according to which sensor it was (which can be configured in the browser) and adjusts its volume with the force of the strike.
  
 
== Work Breakdown ==
 
== Work Breakdown ==
  
List the major tasks in your project and who did what.
+
Accelerometer interface -- Will Elswick
 
+
Signal conditioning -- Will Elswick
Also list here what doesn't work yet and when you think it will be finished and who is finishing it.
+
Node.js addon -- James Savage
 +
Web browser interface -- James Savage
 +
Inspiration/sarcasm -- James Savage
  
 
== Future Work ==
 
== Future Work ==

Revision as of 17:02, 11 November 2013


Team members: Will Elswick, James Savage.

Executive Summary

Our project will communicate with several accelerators to make music. These sensors will be attached by the user to everyday objects like books or a table top and the Beagle Bone Black will use the sensors' outputs to play sounds. In this way, a user can play the drums, bongos, maracas, et cetera without a drum kit or other bulky equipment.

So far we have the accelerometer interface and signal conditioning portions of the project completed--it can detect strikes and reports them to the console. We have the Node.js portion partially complete but we need to iron out some kinks with our code to make it interact correctly.

We still need to work on the web interface and to make it play sounds after a strike.

Packaging

If you have hardware, consider Small Build, Big Execuition for ideas on the final packaging.

Installation Instructions

Give step by step instructions on how to install your project.

  • Include your github path as a link like this to the read-only git site: https://github.com/MarkAYoder/gitLearn.
  • Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
  • Include a Makefile for you code.
  • Include any additional packages installed via opkg.
  • Include kernel mods.
  • If there is extra hardware needed, include links to where it can be obtained.

User Instructions

Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Highlights

Here is where you brag about what your project can do.

Include a YouTube demo.

Theory of Operation

When the program first runs it initializes the accelerometer to sample at 100Hz with a range of +/-2g. Whenever a sample is collected, the accelerometer sends an interrupt signal to one of the BBB's GPIO pins. Our code then uses the I2C protocol to retrieve that sample and any others it has collected in the meantime. The accelerometer has a FIFO queue which will collect up to 32 samples in the even that the BBB does not service the interrupt before the next samples are collected. The BBB then conditions the signal so it can ignore any offsets (such as those due to the force of gravity) or small changes, like noise of the device being rotated. By changing a few parameters of our conditioning algorithm we can change how strong a strike or shake must be before the device detects it. Next the sensor that reported the strike and the force of the strike itself are reported to the browser. The browser in turn plays a sound according to which sensor it was (which can be configured in the browser) and adjusts its volume with the force of the strike.

Work Breakdown

Accelerometer interface -- Will Elswick Signal conditioning -- Will Elswick Node.js addon -- James Savage Web browser interface -- James Savage Inspiration/sarcasm -- James Savage

Future Work

Suggest addition things that could be done with this project.

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.