Using several accelerometers, feasibility?

Hi all, I am a beginner with electronics and I would like to discuss if my concepts can be realised at all.

Basically I would like to hook up 7 bowls/cups to my computer and measure if they are being "poured", i.e. how much they are tilted.

If my research is correct, I would probably use a 2-axis accelerometer for each of the bowls. The tutorial at http://www.arduino.cc/en/Tutorial/AccelerometerMemsic2125 seems not too hard to grasp. However, I have some questions:

  • What about the rather large number of sensors I need? There are 14 digital pins on the Arduino, does this mean I could actually connect 7 of these MEMSIC sensors and read their output, just by modifying the tutorial code? Are there any bandwidth issues?

  • What is the main difference/advantage of using analog sensors, such as the ADXL* series -- Dual Axis Accelerometer Breakout Board - ADXL320 +/-5g - SEN-00847 - SparkFun Electronics -- would you use these at all? There are only five analog pins on the board -- does this mean I would need to connect four Arduino boards to the computer in order to be able to use seven analog sensors? Or would there be any other way?

  • Would it be possible to place the sensors on the bottom of the bowls and secure the cable to the bowl somehow, and connect everything to the board with a cable length of about one meter each? How fragile are such setups? Would people accidentally rip my installation apart all the time?

Thank you for your time!

I haven't used those accelerometers, but from a quick look at at the specs and code...

It will take 20ms worst case to get a reading. If you need two axis on 7 cups that will be 14 readings, or 280 milliseconds. You could sample the who setup about 4 times a second. With really clever coding you could double that rate by watching several of them at once.

There are 14 inputs, but if you used them all you would have no outputs to do anything, you would have consumed your serial port. Fortunately there are devices called multiplexors which allow you to select one of many inputs. You could use a 16 channel multiplexor (MUX), that would take 4 outputs to tell it which channel you wanted then only 1 for an input leaving you plenty of pins for other functions.

There are also analog multiplexors if you went with analog sensors. You could probably get a higher sample rate this way if that was an issue.

And ah, the best.... Will people rip it apart? Absolutely! If it is possible they will rip it apart. Theymay not mean to, but it will happen. I might experiment with using a low stretch, braided sheath rope of the sort used by small sailboat sailors. This has a braided cover in a pretty color with a core of straight, very strong fibers. You can easily get hundreds of pounds of breaking strength in a few millimeters of rope diameter, but the best part is when you 'scrunch' the sheath a bit it gets bigger and you can snake a couple twisted pairs through the inside where they are protected. If you are very clever with your knot work you could encase the sensor in the rope as it is tied around the handle of the bowl... assuming they have handles... otherwise you will have to glue it on somewhere and hope for the best.

The sparkfun accelerometer breakout boards you link to output an analog voltage...

I think if you were smart enough about it you'd only need a single axis accellerometer.. or at least only use one of the two axes of a dual axis accelerometer.

THe mini arduino has 7 analog ports.

Basically I would like to hook up 7 bowls/cups to my computer and measure if they are being "poured", i.e. how much they are tilted.

Hi

at 25$ a pop for an accelerometer, there might be easier ways of measuring that pour. What about a simple tilt sensor (2$)? A series of tilt sensors would give you numerous degrees of measurement (4 positions: 8$). Add a multiplexer chip to bring it in on one pin and the cost is still under $10.

If you can have liquid inside the bowl, you could also try putting wires along its inside to create a level gauge...

just my 2ยข

D

Thank you all for this concise answer!

jims: May I ask what data you looked at for your calculation? Could I extract this from the sensor's data sheet?

Consuming my serial port: Since output would be controlled by the computer, this is no problem. I will only construct an input device.

So a MUX is basically a kind of splitter I can read with a channel as a parameter which is mapped to a pin of a device I connect to the MUX?

If I get it right, the advantage of analog sensors is a higher sample rate. Does this mean I could get a reading more frequently or do I get more resolution, i.e. I could measure a more exact degree of inclination on a larger scale?

As for my last question, I realized it was a little bizarre, however it is interesting to get advice about these things also. I have to say I did not exactly understand what you suggest (scrunching? knotting?)

trialex: When you hold a cup in front of you, aren't you able to pour on two axis, i.e. left and right or towards and away from you?

Daniel: I think I would prefer a simpler but more expensive setup (i.e. one smart sensor) to many sensors.

trialex: When you hold a cup in front of you, aren't you able to pour on two axis, i.e. left and right or towards and away from you?

I guess so! I tried picking up my cup, and yeah I guess you can pour forward/back left/right, but when I went to do it pratically I poured in any place by moving my whole arm then twisting my wrist inwards. Twiting it outwards felt un-natural and I think you wouldn't have the same strength in that direction.

Anyways that probably doesn't help you if you are trying to determine where someone is puring based on the puring action alone. Sounds like an interesting project though - good luck!