How to implement sensitive motion detection which is independent of orientation?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to implement sensitive motion detection which is independent of orientation?

Jump to solution
1,106 Views
p_kämpf
Contributor I

Hi,

I am using the MMA8653FC accel to detect motion of a handheld device. The idea is to implement a timer on the microcontroller and have motion interrupts reset it. If the timer runs over, the device switches itself off to conserve battery power.

If I understand the documentation correctly, one sets a threshold (FF_MT_THS register, which has a resolution of 0.063 g) and the device compares the readings in the X-, Y- and Z-axis independently to trigger the motion interrupt. To make sure that gravity alone doesn't keep the device awake, the threshold needs to be comfortably above 1.0 g (18 or 19 counts at least).

If my device is held at an oblique angle, each direction will register 0.7 g or less. To exceed my threshold value (19 counts) would mean to add 0.5 g of motion acceleration, which is already quite a bit. Now I wonder how sensitivity could be improved. The obvious way of comparing the vector sum of all three axes, however, seems not to be implemented.

Please confirm that my understanding is correct. If it isn't, this could save me from computing the vector sum and doing the comparison on my microcontroller. As it seems to be implemented, the current motion detection is too coarse and would not pick up slight motion. The last thing I want is my device to switch off while being used, so I need this sensitivity.

Labels (1)
Tags (2)
0 Kudos
1 Solution
751 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Peter,

May I know why you have selected the MMA8653FC accelerometer?

For your application, I would recommend using either the MMA8652FC with an embedded transient detection function or the FXLS8471Q with both transient detection and vector-magnitude functions.

If there is a strong reason for using the MMA8653FC, you will have to compute the vector sum and do the comparison on your MCU or employ the motion detection function in conjunction with the auto-wake/sleep feature. The clear disadvantage of these solutions is higher current consumption or lower sensitivity.


Hope it helps.


Regards,

Tomas


PS: If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.

View solution in original post

0 Kudos
2 Replies
752 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Peter,

May I know why you have selected the MMA8653FC accelerometer?

For your application, I would recommend using either the MMA8652FC with an embedded transient detection function or the FXLS8471Q with both transient detection and vector-magnitude functions.

If there is a strong reason for using the MMA8653FC, you will have to compute the vector sum and do the comparison on your MCU or employ the motion detection function in conjunction with the auto-wake/sleep feature. The clear disadvantage of these solutions is higher current consumption or lower sensitivity.


Hope it helps.


Regards,

Tomas


PS: If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.

0 Kudos
751 Views
p_kämpf
Contributor I

Hi Thomas,

thank you for your helpful answer!

Why did we select the MMA8653FC? Price mainly, and ignorance about the details of its internal functions, and your offer in general, I guess.

We plan to replace it with the MMA7660FC for the same reason (1.5 g is plenty for our application, and the price is much lower again), and there we would still need to read and compare the acceleration "manually".

0 Kudos