dpeite / JustTelemetry

Sistema de telemetría formado por una interfaz web y un sistema de posicionamiento
1 stars 0 forks source link

Eje del acelerómetro modificado correctamente #96

Closed ManuLG closed 7 years ago

ManuLG commented 7 years ago

Solución

    acelx = (float)myIMU.accelCount[0] * myIMU.aRes * gravedad; // - accelBias[0]; Aceleración X
    acely = (float)myIMU.accelCount[1] * myIMU.aRes * gravedad; // - accelBias[1]; Aceleración Y

    // Comprobamos que nos hemos movido del origen
    if (dist_actual != 0) {
      z[0] = distancia * sin(grado_to_radian * angulo); // Para invertir la imagen
      z[1] = distancia * cos(grado_to_radian * angulo);
      z[2] = acelx * cos((90 - orientacion) * grado_to_radian) + acely * sin((90 - orientacion) * grado_to_radian);
      z[3] = acely * cos((90 - orientacion) * grado_to_radian) - acelx * sin((90 - orientacion) * grado_to_radian);
      z[4] = velocidad * sin(grado_to_radian * orientacion);
      z[5] = velocidad * cos(grado_to_radian * orientacion);
    } else {
      z[2] = 0.0;
      z[3] = 0.0;
      z[4] = 0.0;
      z[5] = 0.0;
    }

float orientacion_acelerometro(float lat, float lon, float lat_ant, float lon_ant) {
  return 90.0 * grado_to_radian - (2 * M_PI + atan2(lon - lon_ant, lat - lat_ant));
}