I have just started using Arduino and needed a little advice on what type of accelerometer to pick for a project I'm working on that is going to measure the acceleration of someone's chest during breathing and coughing.
From my own research and understanding I have found that I will need a 3-axis, low-g (~ ±1.5g), MEMs accelerometer, but I am confused on whether to go for digital or analog and what the benefits are of each one in terms of what data they will output and how to interpret that output.
Question 1: If I am using an Arduino Uno board, would it be better to use an analog or digital accelerometer?
Question 2: What has been everyone's experiences with using accelerometers and Arduino and any recommendations you would have for someone completely new to all of this?
Thank you all heaps! I hope this is enough information.
The acceleration (change in velocity) of a point on a person's chest is very low during normal breathing, compared to the acceleration that the sensor also measures (g), the acceleration due to gravity.
Teasing out that small component from the shifting background of g, as the patient moves, will be mathematically very difficult, unless the experiment (sensor+patient) is very carefully positioned to minimize the errors.
Are you sure you understand what is involved in performing these measurements, and that the acceleration really is what you want to measure?
If so, at this point it is immaterial which type of accelerometer you choose. Modern sensors of recent manufacture in the +/- 1.5 to 2 g range will perform more or less equivalently in terms of accuracy and noise. So buy one and get to know it.
The LSM303D, which is available from several suppliers, performs very well and contains a 3D magnetometer which is useful to determine the absolute device orientation.
Sorry I should've given a little more background to the project itself first.
We have already measured the acceleration of chest wall movement using an iphone and making use of the internal accelerometer and gyro in that. The peak of acceleration within some of these cough events and movements only reaches around approximately 0.3g. Which we have then integrated to obviously gain the velocity. Within the project we have applied things like gravity filters to allow for change in body orientation and the acceleration due to gravity changing its effect on a specific axis over time.
We are now progressing the experiment to use an actual accelerometer tied with Arduino to gain more accurate measurements of a system fixed to the person's chest over the entire sample time. So the need for a low-g accelerometer is a big must.
Perfect, well I will dive into buying and testing out some accelerometers and seeing what one comes out to be the most useful!
Thanks heaps, I will check that one out!
Since you recognize the need for a "gravity filter" you might as well buy an IMU that also contains a gyro, which is required for subtracting the gravity vector when the sensor orientation is rapidly changing.
The Pololu AltImu-10 works very well with RTIMUlib, as described here.
Ah I hadn't even thought of looking into using an IMU instead. That might work out much better than just an accelerometer after all.
Thank you for the advice!
MEMS accelerometers may not be sensitive enough for this use-case I'm afraid, your breathing signal is
likely to be buried in the noise - the coughing is obviously not an issue of course, but slow breathing
is several orders of magnitude smaller.
A displacement sensor is more likely to be usable - for instance measuring the chest expansion with
a tension sensor on a belt or string should give a very definite signal.
Acceleration amplitude goes down with the square of frequency compared to displacement, so slow breathing
at 0.2Hz is a tiny tiny acceleration compared to coughing at 10's of Hz for the same displacement. Measuring
displacement directly avoids this.
High accuracy accelerometers are macroscopic devices, and will be upto the job but much
bigger and more expensive.
I suspect there will be higher frequency components to a breathing signal, but less easy to interpret,
such things as muscle tremor, air flow turbulence will modulate the acceleration at higher frequencies
where a MEMS accelerometer is more sensitive. However noise is also larger for larger bandwidths.