Problemas al usar el acelerómetro como un interruptor de movimiento

1

Estoy usando un acelerómetro ADXL206 y un microcontrolador PIC16F917 para determinar el movimiento lineal relativo de un dispositivo que funciona según este movimiento.

Puedo leer los datos del acelerómetro:

  • Da una salida de 2.5 @ sin movimiento
  • Da una salida de 2.5 + 0.312 voltios por 1 g a la derecha
  • Da una salida de 2.5 + 0.312 voltios por 1 g a la izquierda

Tengo un dispositivo con 2 LED para determinar la dirección del movimiento. Debería funcionar así:

  • inicio del programa: LED apagado
  • movimiento correcto: el LED rojo está encendido y permanece así. LED azul apagado. incluso cuando el dispositivo deja de moverse
  • movimiento izquierdo: LED azul encendido y permanece encendido. LED rojo apagado. incluso cuando el dispositivo deja de moverse

Los resultados reales que obtengo son cuando el dispositivo se mueve, parpadea el LED solo durante el movimiento y luego se apagan sin movimiento.

No puedo obtener la dirección del acelerómetro y mantenerme en un estado estable.

¿El problema al leer los valores del acelerómetro o en el algoritmo?

    
pregunta Swiftmind

2 respuestas

6

El dispositivo que contiene el acelerómetro está experimentando una fuerza (de x G ) momentáneamente, en contra de la dirección de aceleración, cuando comienza el movimiento. Luego experimentará 0 Gees cuando se detenga aceleración , es decir, una vez que se haya alcanzado la velocidad objetivo.

Del mismo modo, al detener el dispositivo desde una velocidad constante, experimentará una fuerza momentánea que se opone a la desaceleración, luego la fuerza cero nuevamente una vez que se detiene.

Eso es lo que informa su experimento: los LED parpadean cuando se experimenta la aceleración, una vez en cada dirección. En otras palabras, el comportamiento es tal como está diseñado.

Para mantener una indicación encendida mientras el movimiento continúe, un acelerómetro no es el dispositivo ideal. No es un detector de movimiento , es un detector de aceleración , como su nombre lo indica.

Si bien algunos trucos de software simples ( que integran la aceleración en el tiempo ) podrían usarse para rastrear cuándo se siente la aceleración en una u otra dirección, tal mecanismo fallaría si la desaceleración (o aceleración) la fuerza es muy baja en comparación con la sensibilidad y la señal de fondo del ruido de la señal, como si uno acelerara el dispositivo muy lentamente, pero lo detenga rápidamente, o viceversa .

    
respondido por el Anindo Ghosh
0

Un acelerómetro no mide el movimiento: mide cambiar en movimiento. O más precisamente, mide la derivada de la velocidad de . Entonces, cuando tu acelerómetro comienza a moverse en una dirección, puedes detectar eso. Pero una vez que se está moviendo, y ya no está acelerando, hacia el acelerómetro, podría estar sentado en su escritorio. Lo único que medirás es el ruido y la constante aceleración de la gravedad.

Una analogía sería esta: si no puede ver y no puede escuchar el ruido del viento y la carretera, y las ventanas están abiertas para que no pueda sentir el viento, ¿cómo sabría que está en un automóvil en movimiento? o un carro estacionado?

Dicho de otra manera, imagina una bola balanceada en la parte superior de tu objeto. El acelerómetro mide cómo se moverá la bola en relación con el objeto a medida que el objeto cambia de velocidad.

No puede hacer lo que describe con un práctico acelerómetro. Cuando su objeto comienza a moverse hacia la izquierda, el acelerómetro registra una fuerza en una dirección. Cuando su objeto deja de moverse, el acelerómetro registra una fuerza en la otra dirección. El problema es este: la fuerza en la otra dirección es indistinguible de la fuerza que medirías cuando tu objeto comience a moverse hacia la derecha.

Estás midiendo el cambio en velocidad. El cambio de velocidad es el mismo en ambos casos:

  • moviéndose hacia la izquierda - > no se mueve
  • no se mueve - > moviéndose a la derecha

No puedes distinguirlos con un acelerómetro. Si desea medir "moviéndose a la izquierda" y "moviéndose a la derecha", eso es velocidad, no aceleración. Necesitas un dispositivo que mida la velocidad. En teoría, puede integrar la aceleración para obtener la velocidad 1 , pero los detalles prácticos como el ruido y la compensación harán que su cálculo de la velocidad se desvíe del valor real.

1: un ejemplo de un sistema que hace esto es un sistema de navegación inercial . Estos sistemas emplean una ingeniería muy cuidadosa y sistemas costosos para reducir, pero no eliminar la deriva.

    
respondido por el Phil Frost

Lea otras preguntas en las etiquetas