ángulo de medición usando el sensor de giro

2

Tengo un sensor giroscópico l3g4200d y la salida del sensor es la velocidad angular (grados / seg.), quiero convertir la salida del sensor al valor del ángulo (grados). Y para convertir, debo integrar la velocidad angular (grados / s) como la siguiente ecuación:

$$ \ Theta = \ Theta_0 + \ int \ omega (t) dt $$

Donde:

\ $ \ Theta \ $ = ángulo (grados)

\ $ \ Theta_0 \ $ = ángulo de inicio (grados)

\ $ \ omega (t) \ $ = velocidad angular (grados / seg)

\ $ dt \ $ = tiempo (s)

¿Cómo escribir esa ecuación en el código fuente de cvavr?

    
pregunta Sigit

2 respuestas

4

Solo necesitas realizar una integración de tiempo discreta. Es bastante simple en realidad. La versión más sencilla es algo así para cada muestra.

  1. Recoge la muestra de tu gyro

    sample = gyro_sample;
    
  2. Obtén la hora actual

    time = current_time;
    
  3. Calcule el tiempo transcurrido desde la última muestra diferenciando las muestras de tiempo

    delta_time = current_time - previous_time;
    
  4. Multiplica la muestra y la diferencia de tiempo: este es tu cambio de ángulo desde la última muestra

    delta_angle = sample * delta_time;
    
  5. Añade esta diferencia a tu ángulo actual

    current_angle = current_angle + delta_angle;
    
  6. Guarda la hora actual como la hora anterior

    previous_time = time;
    

Tendrá que hacer esto para cada eje que venga del giro.

Habiendo dicho todo esto, y respondiendo a tu pregunta, hay un poco más.

Esto proporcionará resultados bastante horribles. El ángulo se desplazará muy rápidamente. Deberá comenzar con una orientación conocida y luego tendrá una orientación precisa en el orden de segundos. Además, si estás utilizando los ángulos de Euler, tendrás problemas con los polos. Para obtener resultados más precisos, deberá implementar un filtrado bastante complejo. Sin embargo, no ha descrito su aplicación, por lo que es difícil decir lo que realmente necesita. Es posible que pueda eliminar código de proyectos completos de IMU . Muchas de las IMU en Sparkfun tienen código de ejemplo.

    
respondido por el Samuel
-1

enlace

Esto le proporcionará algunas ecuaciones que puede necesitar. He usado L3g420d para hacer IMU utilizando la interfaz I2C. Todo lo mejor

    
respondido por el Jigar4Electronics

Lea otras preguntas en las etiquetas