Help with my ID thesis in the SF bay area?

Hi everyone, I'm looking for someone to help me out in putting together a small project for my masters thesis in industrial design to make a semi functional prototype, its a fun project and I'd love to get some help from the community!

Here is what I'm looking to do:

Develop a small control in the form of a puck that:
When rotated 45 deg, gives a haptic vibration pulse (accelerometer & tiny vibration motor)
Ability to adjust RGB LEDs with accelerometer feedback
When control is flipped over on it's other side (180 deg) only RGB lighting is faded

I already have a sparkfun arduino mini and blinkms (which may not be appropriate for this) but unfortunately I don't know how to code...

If anyone can help I'll try to compensate however I can, I can barter with 3D prints from my Reprap Mendel or try to compensate with cash...
Looking to complete this in about 2 weeks (or asap)

I'm in the bay area and would be great to be able to meet but if you think you can help remotely thats fine too!
Thanks guys!
Adrian

Adrian Canoso
Academy of Art University, San Francisco
MFA Industrial Design
p: 857.919.2021
e: acanoso@gmail.com
w: www.adriancanoso.com
l: www.linkedin.com/in/canoso

Hi,

If you look at the tutorial section - http://www.arduino.cc/en/Tutorial/HomePage - you will find many examples. I think the functionality covers 95% of your thesis so spend some time there (a day or three) and work through the examples there. You will feel the happiness and joy of understanding the wonderfull world of Arduino :wink: Really that is far more fun that buying working code.

When you have problems with your code, please post it here, and you will get hints tricls and tips how to solve but in the end it is your project ..

When rotated 45 deg, gives a haptic vibration pulse (accelerometer & tiny vibration motor)
Ability to adjust RGB LEDs with accelerometer feedback
When control is flipped over on it's other side (180 deg) only RGB lighting is faded

I imagine a puck as a short cylinder, resting on one of its flat faces.
If this is the case, the usual axis of rotation is vertical, so how is an accelerometer going to measure a rotation of 45 degrees?

Have I missed something in the description?

Thanks robtillaart, I agree with you and this is a project I'd love to hash out on my own but unfortunately I dont have the time (I spent what little time I had building a reprap mendel!). If things don't pan out I'll try to do it myself after my school semester is over.

AWOL You are right, I thought that an acceleromoter could detect rotation but I guess it won't work. I looked around and found a nice compact rotary encoder by parallax which should do the trick:
http://www.parallax.com/tabid/768/ProductID/652/Default.aspx

So to update:

Acceleromoter:
Flip: detect which side the puck controller is on
Shake: shuffle playlist
Part: Triple Axis Accelerometer Breakout - ADXL330 - SEN-00692 - SparkFun Electronics

Rotary encoder:
volume
track change (flipped over)
Part: http://www.parallax.com/tabid/768/ProductID/652/Default.aspx

Vibration motor:
haptic feedback of track changes (one short burst per 45 def rotation) & shuffle acknowledgement (2 short bursts)
Part: Vibration Motor - ROB-08449 - SparkFun Electronics

rgb LEDs
Handeling puck controller:
1 accelerometer activity illuminates leds for 5 seconds (no activity fades to off)

Rotation on side A (overrides 1):
Brightness for volume (max vol flashed twice, min vol switches to red)

Rotation on side B (temporarily overrides 1):
flash green for forward skip (clockwise rotation)
flash red for back skip (counterclockwise rotation)

Shake 2 short white faded flashes (fade in/out)

Just want to confirm with the community:
Would a gyroscope be suitable for detecting horizontal rotation? i.e. rotating a puck on a table surface to adjust volume. Seems that an accelerometer would not be suitable for rotation sensing....

I'm looking for a solid state solution to making a remote volume knob (attached is a sketch of the concept...)

Thank guys!

puck.jpg

The problem with a gyroscope is drift - both integration error and actual zero-bias drift can easily create a significant source of error from a gyro. If we can assume that the puck is always flat, however, you may be able to just use a two-axis magnetometer (HMC6352?) to find an absolute angle - it'll be noisy, and affected by magnets, but it should work.
A better method (depending on your cost structure) would be to have both a two-axis magnetometer and a one-axis gyroscope, then run the outputs through a Kalman filter to statistically determine the orientation of the puck. This could easily get expensive, however, and if just the two-axis magnetometer will suffice, it'll both be easier to code and easier on your pocketbook.

Aeturnalus, thank you for the in-depth response, really helpful! It sounds like it may eat into the cost of the puck... I was also considering a rotary optical encoder, seems simple enough. The encoder could be on the pcb and the encoder strip could be on the inner wall of the rotating element of the puck. Also fyi relative positioning is all I need for this project.

Thanks again.

No problem - I believe an optical encoder would actually be better suited to your application, actually. Inertial measurement is much more expensive, and is generally only really needed if the entire object is moving - not a priority with your system. However, since you plan to be able to flip your device upside down, the parallax encoder isn't really a good choice - it would have to be one of the axis, and then the rotation would only work on one side. You could instead, make your own encoder - it's not too hard to do.

How I imagine your system is like this:

There's a central cylinder holding RGB LEDS, the Arduino, a single-axis accelerometer, the vibration motor, and a pair of IR sensors (the type you might use for line-following would be fine).
A hollow cylinder wrapped around the central cylinder and freely rotating, held in at the edges, with a black-white striped encoder pattern on the inside. The IR sensors would be able to read the strip to find change in angle, just like a normal quadrature encoder, but since it'll be held in at the edges, you will be able to turn the assembly upside down easily.