No estoy seguro de qué tipo de "caída" estás intentando detectar. Pero comencemos con la teoría básica, que es bastante sencilla, y luego pasemos a las no idealidades y los detalles de la implementación. Supongo que tiene un acelerómetro de 3 ejes.
Un acelerómetro mide la aceleración . La gravedad actúa sobre un acelerómetro en reposo y aparece como una fuerza de 1G. Si hay una caída libre, el vector de gravedad medido se reducirá a 0. Por lo tanto, como primer paso, puede establecer un umbral de la norma tridimensional del vector de aceleración. Si la norma 3-D cae por debajo del umbral, estás en una caída libre. Debido a que simplemente estás mirando la magnitud del vector, la orientación no importa.
¿Cuándo fallará este enfoque de "primer orden"? Puedo pensar en dos situaciones a primera vista ...
- Fallará si hay alguna aceleración adicional durante una caída (¿tal vez una caída de salto / buceo?)
- O, podría fallar si la caída no es una caída libre (tal vez alguien se las arregla para atraparse a sí mismo a mitad de camino o se deja caer suavemente)
Como ideas adicionales para un enfoque de segundo orden: puede intentar ver el perfil de magnitud. Esperamos ver una región de caída libre, tal vez alrededor de 0.3G, luego un pico por encima de 1G cuando la persona toca el suelo, seguida de aproximadamente un período de 1G de estar en el suelo. El otro póster es correcto: es probable que se requiera cierta experimentación para cuantificar el comportamiento repetible durante las caídas.
Finalmente, detalles de la implementación: si el acelerómetro genera valores analógicos, su ADC convierte de analógico a digital, lo que ve como 241, 314, 102, etc. Mire la hoja de datos del acelerómetro para ver los valores de conversión, probablemente algo en unidades de voltios / G . Luego, asegúrese de saber su conversión de ADC, probablemente en unidades de enteros / voltios. Esto debería ser suficiente para convertir su resultado en unidades de G.