1

I'm trying to get an arduino board to detect simple free fall condtions. Currently, I have a 9DOF sensor (https://learn.sparkfun.com/tutorials/lsm9ds0-hookup-guide) and am able to get the raw data from the sensor.

However I am unsure what to do from here onwards. From what I manage to gather, there is an alternative sensor ADXL345 accelerometer that has an inbuilt free fall component. I have tried modfying the code in such a way that it will work with the sensor I am using but to no avail.

The free fall detection does not need to be extremely accurate/precise considering there are many fall/jerk patterns. It is just for a proof of concept for a project of mine. With that in mind, any suggestions on how to proceed will be greatly appreciated (or if I should just get the ADXL345 accelerometer).

Thank you.

  • 1
    From the LSM9DS0 datasheet; "The LSM9DS0 may also be configured to generate an inertial wake-up and free-fall interrupt signal according to a programmed acceleration event along the enabled axes.". So it should be possible, just like with the ADXL345. – Gerben Sep 17 '14 at 10:13
  • Hi, thanks for the reply. I got a sort of rudimentary fall detection working. Just wondering if there is any methods in which I can utilize the other two sensors (Gyrometer)/(Magnenometer) to further improve its precision. Much Appreciated – user4985 Sep 18 '14 at 6:41
4

Sitting an accelerometer flatly on a bench will produce a value of 1G in one of the 3 axes.

Free fall of an accelerometer (assuming you haven't reached terminal velocity) should read near zero on all 3 axes.

I am not aware of a mode you can set for this, but if you check the values of the 3 axes and all are close to zero, you are probably in a free fall condition.

  • Hi, thanks for the reply. I got a sort of rudimentary fall detection working. Just wondering if there is any methods in which I can utilize the other two sensors (Gyrometer)/(Magnenometer) to further improve its precision. Much Appreciated. – user4985 Sep 18 '14 at 6:32
  • I'm not if the gyro will be of use, given that a falling object may or may not be spinning. – Jason Sep 19 '14 at 4:33
0

Take the root sum squared [sqrt(acc_x^2 + acc_y^2 + acc_z^2)] of your accelerometer readings. This is your total acceleration vector. Then write a function that triggers the free fall variable when that equation is less than or equal to a certain threshold near to zero (the value itself depends on your accelerometer).

Your gyro and magnetometer will not help as they relate to the attitude (facing direction) and rotational speed of your thing, not the linear motion. Test and play with the threshold and you will get the most accurate result possible.

  • You don't need to take the square root but can just compare against a squared threshold. And it may not even be necessary to even combine the axis - it's probably sufficient to determine if there is or is not any individual axis reading above, +/-.707g (increased or decreased for reliability), as once the device has rotated through 45 degrees a different axis will start increasing. – Chris Stratton Oct 16 '16 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.