Paparazzi UAS
v5.10_stable-5-g83a0da5-dirty
Paparazzi is a free software Unmanned Aircraft System.
|
Interface for the Navstik magnetometer, accelerometer and gyroscope. More...
#include "generated/airframe.h"
#include "subsystems/imu.h"
#include "peripherals/hmc58xx.h"
#include "peripherals/mpu60x0_i2c.h"
Go to the source code of this file.
Data Structures | |
struct | ImuNavstik |
Macros | |
#define | IMU_GYRO_P_SENS 2.17953 |
default gyro sensitivy and neutral from the datasheet MPU with 1000 deg/s has 32.8 LSB/(deg/s) sens = 1/32.8 * pi/180 * 2^INT32_RATE_FRAC sens = 1/32.8 * pi/180 * 4096 = 2.17953 More... | |
#define | IMU_GYRO_P_SENS_NUM 18271 |
#define | IMU_GYRO_P_SENS_DEN 8383 |
#define | IMU_GYRO_Q_SENS 2.17953 |
#define | IMU_GYRO_Q_SENS_NUM 18271 |
#define | IMU_GYRO_Q_SENS_DEN 8383 |
#define | IMU_GYRO_R_SENS 2.17953 |
#define | IMU_GYRO_R_SENS_NUM 18271 |
#define | IMU_GYRO_R_SENS_DEN 8383 |
#define | IMU_ACCEL_X_SENS 2.4525 |
default accel sensitivy from the datasheet MPU with 8g has 4096 LSB/g sens = 9.81 [m/s^2] / 4096 [LSB/g] * 2^INT32_ACCEL_FRAC = 2.4525 More... | |
#define | IMU_ACCEL_X_SENS_NUM 981 |
#define | IMU_ACCEL_X_SENS_DEN 400 |
#define | IMU_ACCEL_Y_SENS 2.4525 |
#define | IMU_ACCEL_Y_SENS_NUM 981 |
#define | IMU_ACCEL_Y_SENS_DEN 400 |
#define | IMU_ACCEL_Z_SENS 2.4525 |
#define | IMU_ACCEL_Z_SENS_NUM 981 |
#define | IMU_ACCEL_Z_SENS_DEN 400 |
Functions | |
void | imu_navstik_init (void) |
Navstik IMU initializtion of the MPU-60x0 and HMC58xx. More... | |
void | imu_navstik_periodic (void) |
Handle all the periodic tasks of the Navstik IMU components. More... | |
void | imu_navstik_event (void) |
Handle all the events of the Navstik IMU components. More... | |
Variables | |
struct ImuNavstik | imu_navstik |
Basic Navstik IMU data. More... | |
Interface for the Navstik magnetometer, accelerometer and gyroscope.
Definition in file imu_navstik.h.
struct ImuNavstik |
Definition at line 73 of file imu_navstik.h.
Data Fields | ||
---|---|---|
struct Hmc58xx | hmc | |
struct Mpu60x0_I2c | mpu |
#define IMU_ACCEL_X_SENS 2.4525 |
default accel sensitivy from the datasheet MPU with 8g has 4096 LSB/g sens = 9.81 [m/s^2] / 4096 [LSB/g] * 2^INT32_ACCEL_FRAC = 2.4525
Definition at line 61 of file imu_navstik.h.
#define IMU_ACCEL_X_SENS_DEN 400 |
Definition at line 63 of file imu_navstik.h.
#define IMU_ACCEL_X_SENS_NUM 981 |
Definition at line 62 of file imu_navstik.h.
#define IMU_ACCEL_Y_SENS 2.4525 |
Definition at line 64 of file imu_navstik.h.
#define IMU_ACCEL_Y_SENS_DEN 400 |
Definition at line 66 of file imu_navstik.h.
#define IMU_ACCEL_Y_SENS_NUM 981 |
Definition at line 65 of file imu_navstik.h.
#define IMU_ACCEL_Z_SENS 2.4525 |
Definition at line 67 of file imu_navstik.h.
#define IMU_ACCEL_Z_SENS_DEN 400 |
Definition at line 69 of file imu_navstik.h.
#define IMU_ACCEL_Z_SENS_NUM 981 |
Definition at line 68 of file imu_navstik.h.
#define IMU_GYRO_P_SENS 2.17953 |
default gyro sensitivy and neutral from the datasheet MPU with 1000 deg/s has 32.8 LSB/(deg/s) sens = 1/32.8 * pi/180 * 2^INT32_RATE_FRAC sens = 1/32.8 * pi/180 * 4096 = 2.17953
Definition at line 44 of file imu_navstik.h.
#define IMU_GYRO_P_SENS_DEN 8383 |
Definition at line 46 of file imu_navstik.h.
#define IMU_GYRO_P_SENS_NUM 18271 |
Definition at line 45 of file imu_navstik.h.
#define IMU_GYRO_Q_SENS 2.17953 |
Definition at line 47 of file imu_navstik.h.
#define IMU_GYRO_Q_SENS_DEN 8383 |
Definition at line 49 of file imu_navstik.h.
#define IMU_GYRO_Q_SENS_NUM 18271 |
Definition at line 48 of file imu_navstik.h.
#define IMU_GYRO_R_SENS 2.17953 |
Definition at line 50 of file imu_navstik.h.
#define IMU_GYRO_R_SENS_DEN 8383 |
Definition at line 52 of file imu_navstik.h.
#define IMU_GYRO_R_SENS_NUM 18271 |
Definition at line 51 of file imu_navstik.h.
void imu_navstik_event | ( | void | ) |
Handle all the events of the Navstik IMU components.
When there is data available convert it to the correct axis and save it in the imu structure.
Definition at line 109 of file imu_navstik.c.
References Imu::accel, Imu::accel_unscaled, Hmc58xx::data, Mpu60x0_I2c::data_accel, Mpu60x0_I2c::data_available, Hmc58xx::data_available, Mpu60x0_I2c::data_rates, get_sys_time_usec(), Imu::gyro, Imu::gyro_unscaled, ImuNavstik::hmc, hmc58xx_event(), imu, IMU_BOARD_ID, imu_navstik, imu_scale_accel(), imu_scale_gyro(), imu_scale_mag(), Imu::mag, Imu::mag_unscaled, ImuNavstik::mpu, mpu60x0_i2c_event(), RATES_COPY, VECT3_COPY, Int32Vect3::x, Int32Vect3::y, and Int32Vect3::z.
void imu_navstik_init | ( | void | ) |
Navstik IMU initializtion of the MPU-60x0 and HMC58xx.
Definition at line 79 of file imu_navstik.c.
References Mpu60x0Config::accel_range, Mpu60x0_I2c::config, Mpu60x0Config::dlpf_cfg, Mpu60x0Config::gyro_range, ImuNavstik::hmc, HMC58XX_ADDR, hmc58xx_init(), ImuNavstik::mpu, MPU60X0_ADDR_ALT, mpu60x0_i2c_init(), NAVSTIK_ACCEL_RANGE, NAVSTIK_GYRO_RANGE, NAVSTIK_MAG_I2C_DEV, NAVSTIK_MPU_I2C_DEV, and Mpu60x0Config::smplrt_div.
void imu_navstik_periodic | ( | void | ) |
Handle all the periodic tasks of the Navstik IMU components.
Read the MPU60x0 every periodic call and the HMC58XX every 10th call.
Definition at line 96 of file imu_navstik.c.
References ImuNavstik::hmc, hmc58xx_periodic(), imu_navstik, ImuNavstik::mpu, and mpu60x0_i2c_periodic().
struct ImuNavstik imu_navstik |
Basic Navstik IMU data.
Definition at line 74 of file imu_navstik.c.
Referenced by imu_navstik_event(), and imu_navstik_periodic().