Hacer que el acelerómetro detecte la gravedad no convencional

Estoy trabajando en un proyecto para encontrar el ángulo de bisel de una hoja de tornillo sin fin. Para encontrar el ángulo, he decidido usar 2 acelerómetros. Uno de ellos es mi referencia y se asentará en el reposapiés, el otro estará en la carcasa y se mueve con el pivote biselado.

Quiero que el acelerómetro que se encuentra en el reposapiés sea mi referencia. Por lo tanto, siempre que se mueva, la gravedad será perpendicular al acelerómetro. ¡Esto es, por supuesto, imposible de crear porque la gravedad siempre apunta hacia ABAJO! ¿Existe una ecuación matemática o un algoritmo tal que tomaría los valores G del acelerómetro de la placa de pie y crearía una "seudo" gravedad "no convencional"?

Por favor, hágamelo saber si hay alguna aclaración necesaria. Estoy usando el acelerómetro MPU6050.

ingrese la descripción de la imagen aquí

Acelerómetro de 3 ejes? ¿Has experimentado con uno, solo generan un vector que te dice (si está estacionario) qué ángulo está hacia abajo?
¡Sí, señor! Estoy usando un acelerómetro de 3 ejes. Sí lo hace. Da mis tres valores. Por ejemplo, si está acostado, ( x=0, y=0 y z= +1). Sin embargo, quiero que sea una referencia. Entonces, si está inclinado de alguna manera, quiero que el otro acelerómetro sepa que la gravedad se ha desplazado con respecto a la referencia. ¿Cómo puedo hacer eso?
@JasonLee tendrás que hacer el ajuste en el firmware. No conozco ningún acelerómetro que le permita cambiar las muestras en función de un desplazamiento.
Parece que desea una resta o el "producto escalar" de los dos vectores leídos de los dos acelerómetros. Eso te dará el ángulo entre ellos.
Esta es realmente una pregunta de física.

Respuestas (2)

Cada acelerómetro (cuando está estacionario) te da un vector 3 para la dirección de la gravedad.

Supongamos que ambos acelerómetros no tienen compensación y tienen la misma ganancia en los tres ejes. Si no son tan ideales, entonces es bastante fácil obtener una compensación y ganancia para cada eje con un paso de calibración que implica rodar cada uno a una gran cantidad de ángulos aleatorios y derivar compensaciones y ganancias tales que la magnitud de la gravedad (sqrt( la suma de los componentes al cuadrado)) es constante independientemente de la orientación del acelerómetro.

El ángulo entre dos 3 vectores ahora se calcula a través de su producto punto (o escalar), lo que le da el coseno de ese ángulo. Consulte el producto de punto de wikipedia para obtener detalles completos.

¿Quiere medir el ángulo de "inclinación" entre la superficie plana y el ángulo de la hoja? Si es así, puede calcularlo a partir de un acelerómetro de 3 ejes, sin necesidad de otro Accel.

Si tiene 3 ejes - {x,y,z}, tendrá un componente del campo gravitacional de la Tierra a lo largo de cada uno, generalmente representado como Gx, Gy y Gz.

El Gtotal es 1G, por lo tanto, en un espacio tridimensional tenemos 1G = SQRT(Gx^2 + Gy^2 + Gz^2). Esto es lo que usa para realizar una calibración escalar. Coloque el acelerómetro en una variedad de posiciones para determinar un factor de escala y un BIAS para cada eje.

Una vez calibrada, la inclinación puede calcularse mediante atan2(Gxy,Gz), donde Gxy = SQRT(Gx^2 + Gy^2).

Si Accel está plano sobre la mesa, he asumido que Gz está a lo largo del eje de Accel, Gy apunta hacia arriba y Gx es perpendicular a ambos.

Espero que esto ayude.

Usted asume que la placa base está perfectamente nivelada y permanecerá nivelada.
De hecho, no me quedó claro que se pueda mover. También asumí que hay una vibración mínima, ya que esto arruinará cualquier cálculo de ángulo. También supuse que los ejes son ortogonales, es decir, no hay desalineaciones. Parece que la solución necesita dos Accels (uno para cada objeto móvil), la inclinación con respecto a la horizontal (es decir, la Tierra) se puede calcular para cada Accel. La diferencia en la inclinación le indicará el ángulo entre cada hoja y el reposapiés. Esto es asumiendo que he entendido la pregunta, por supuesto...