• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Browse and search Google Drive and Gmail attachments (plus Dropbox and Slack files) with a unified tool for working with your cloud files. Try Dokkio (from the makers of PBworks) for free. Now available on the web, Mac, Windows, and as a Chrome extension!


Final Project Log

Page history last edited by Art 6 years, 11 months ago

This is so that I could keep track of my progress, design changes, challenges, etc.



  • Got basic hit detection about 2 days ago... but will have to put this into an actual drum stick that we'll be using and test it out again 
  • Yesterday, I was able to communicate with 2 IMUs, using the trick from SparkFun (setting everything to 0x69, and set the address of the one we want to communicate with to 0x68) 
  • Decided to take out vibration motors, since it will take a long time until they come
  • Also, RJ12 has only 6 conductors... And we're using all those for Vcc, GND, SCL, SDA, AD0, and button
  • Decided to take power switch off, and let it turn on whenever there's power from USB



  • Attached the cable with the sensor... now have to figure out how to put switch in the stick
  • Try out different ways to capture the drum hit



  • Talked to the teaching team on Monday... the steps are (1) detect hit, (2) add compass/heading, (3) add tilt
  • Went to Room 36 and talked to Dan (I think)... He couldn't recommend a way to mount the switch, but maybe a low-profile panel mount would work?



  • Over the past week, figure out the way to capture hit
  • Faced problem when tried to connect with 2 sensors... the rate was way too slow (around 40 Hz)...
  • But then found out that if we don't read magnetometers, could be a lot faster
  • So now can read 4 sensors... will have to figure out how to read magnetometer later
  •  Get loudness, etc. done
  • Todo: make it so that the data from gyro can be oriented in whatever ways we want...? 



  • Can read magnetometer now, using interrupts, read once every 10 ms or so
  • Magnetometer all have the same address 0x0C, so have to disable/enable direct access for each 9150 chip to talk to one of them at a time 
  • Also can get loudness :) 
  • Another problem: apparently the magnetic field is not parallel to the ground, so can't get correct heading
  • But that actually solves our problem (?) since we can just get the readings from magnetometer and get both the heading (on XY plane) and the tilt at the same time
  • So the strategy now is to have the user set where the drum will be (using some setup routine), and when a drum is hit, see which point gets the closest magnetometer reading to the hit point
  • This implies: need more interface, buttons, etc. 



  • So many things learned this weekend...
  • Need to calibrate magnetometers, so that they all lie on a surface of a sphere (approximately)
  • Magnetometer data suffers from blips, etc... This does not happen with one sensor, so assume it's because they're using the same bus
  • So switch to using 2 I2C buses on Teensy 3.1... had to rewrite the I2Cdev functions
  • But now interrupt won't work :( so will just have to deal with it 



  • Get a working draft... take into account the roll when reading the mag as well
  • Now the only (obvious) problem is that mag doesn't update fast enough :( 
  • One annoying thing: update rate for mag in MPU-9150 is just 8Hz!!! Just ordered another one... will see if it (a) comes in time, and (b) helps 
  • While waiting for that, could turn to hardware (esp. the box) since that wouldn't change much from now... and think some more about user interface 

Comments (0)

You don't have permission to comment on this page.