Paparazzi UAS  v5.2.2_stable-0-gd6b9f29
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
imu_navstik.h File Reference

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"
+ Include dependency graph for imu_navstik.h:

Go to the source code of this file.

Data Structures

struct  ImuNavstik
 

Macros

#define IMU_MAG_X_SIGN   1
 
#define IMU_MAG_Y_SIGN   1
 
#define IMU_MAG_Z_SIGN   1
 
#define IMU_GYRO_P_SIGN   1
 
#define IMU_GYRO_Q_SIGN   1
 
#define IMU_GYRO_R_SIGN   1
 
#define IMU_ACCEL_X_SIGN   1
 
#define IMU_ACCEL_Y_SIGN   1
 
#define IMU_ACCEL_Z_SIGN   1
 
#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 I 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_GYRO_P_NEUTRAL   0
 
#define IMU_GYRO_Q_NEUTRAL   0
 
#define IMU_GYRO_R_NEUTRAL   0
 
#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
 
#define IMU_ACCEL_X_NEUTRAL   0
 
#define IMU_ACCEL_Y_NEUTRAL   0
 
#define IMU_ACCEL_Z_NEUTRAL   0
 

Functions

void imu_navstik_event (void)
 Handle all the events of the Navstik IMU components. More...
 
static void ImuEvent (void(*_gyro_handler)(void), void(*_accel_handler)(void), void(*_mag_handler)(void))
 

Variables

struct ImuNavstik imu_navstik
 Basic Navstik IMU data. More...
 

Detailed Description

Interface for the Navstik magnetometer, accelerometer and gyroscope.

Definition in file imu_navstik.h.

Macro Definition Documentation

#define IMU_ACCEL_X_NEUTRAL   0

Definition at line 94 of file imu_navstik.h.

#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 83 of file imu_navstik.h.

#define IMU_ACCEL_X_SENS_DEN   400

Definition at line 85 of file imu_navstik.h.

#define IMU_ACCEL_X_SENS_NUM   981

Definition at line 84 of file imu_navstik.h.

#define IMU_ACCEL_X_SIGN   1

Definition at line 49 of file imu_navstik.h.

#define IMU_ACCEL_Y_NEUTRAL   0

Definition at line 95 of file imu_navstik.h.

#define IMU_ACCEL_Y_SENS   2.4525

Definition at line 86 of file imu_navstik.h.

#define IMU_ACCEL_Y_SENS_DEN   400

Definition at line 88 of file imu_navstik.h.

#define IMU_ACCEL_Y_SENS_NUM   981

Definition at line 87 of file imu_navstik.h.

#define IMU_ACCEL_Y_SIGN   1

Definition at line 50 of file imu_navstik.h.

#define IMU_ACCEL_Z_NEUTRAL   0

Definition at line 96 of file imu_navstik.h.

#define IMU_ACCEL_Z_SENS   2.4525

Definition at line 89 of file imu_navstik.h.

#define IMU_ACCEL_Z_SENS_DEN   400

Definition at line 91 of file imu_navstik.h.

#define IMU_ACCEL_Z_SENS_NUM   981

Definition at line 90 of file imu_navstik.h.

#define IMU_ACCEL_Z_SIGN   1

Definition at line 51 of file imu_navstik.h.

#define IMU_GYRO_P_NEUTRAL   0

Definition at line 72 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 I

Definition at line 61 of file imu_navstik.h.

#define IMU_GYRO_P_SENS_DEN   8383

Definition at line 63 of file imu_navstik.h.

#define IMU_GYRO_P_SENS_NUM   18271

Definition at line 62 of file imu_navstik.h.

#define IMU_GYRO_P_SIGN   1

Definition at line 44 of file imu_navstik.h.

#define IMU_GYRO_Q_NEUTRAL   0

Definition at line 73 of file imu_navstik.h.

#define IMU_GYRO_Q_SENS   2.17953

Definition at line 64 of file imu_navstik.h.

#define IMU_GYRO_Q_SENS_DEN   8383

Definition at line 66 of file imu_navstik.h.

#define IMU_GYRO_Q_SENS_NUM   18271

Definition at line 65 of file imu_navstik.h.

#define IMU_GYRO_Q_SIGN   1

Definition at line 45 of file imu_navstik.h.

#define IMU_GYRO_R_NEUTRAL   0

Definition at line 74 of file imu_navstik.h.

#define IMU_GYRO_R_SENS   2.17953

Definition at line 67 of file imu_navstik.h.

#define IMU_GYRO_R_SENS_DEN   8383

Definition at line 69 of file imu_navstik.h.

#define IMU_GYRO_R_SENS_NUM   18271

Definition at line 68 of file imu_navstik.h.

#define IMU_GYRO_R_SIGN   1

Definition at line 46 of file imu_navstik.h.

#define IMU_MAG_X_SIGN   1

Definition at line 39 of file imu_navstik.h.

#define IMU_MAG_Y_SIGN   1

Definition at line 40 of file imu_navstik.h.

#define IMU_MAG_Z_SIGN   1

Definition at line 41 of file imu_navstik.h.

Function Documentation

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 112 of file imu_navstik.c.

References Imu::accel_unscaled, ImuNavstik::accel_valid, Hmc58xx::data, Mpu60x0_I2c::data_accel, Mpu60x0_I2c::data_available, Hmc58xx::data_available, Mpu60x0_I2c::data_rates, FALSE, Imu::gyro_unscaled, ImuNavstik::gyro_valid, ImuNavstik::hmc, hmc58xx_event(), imu, imu_navstik, Imu::mag_unscaled, ImuNavstik::mag_valid, ImuNavstik::mpu, mpu60x0_i2c_event(), Mpu60x0_I2c::rates, RATES_COPY, TRUE, Hmc58xx::vect, Mpu60x0_I2c::vect, VECT3_COPY, Int16Vect3::x, Int32Vect3::x, Int16Vect3::y, Int32Vect3::y, Int16Vect3::z, and Int32Vect3::z.

Referenced by ImuEvent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ImuEvent ( void(*)(void)  _gyro_handler,
void(*)(void)  _accel_handler,
void(*)(void)  _mag_handler 
)
inlinestatic

Definition at line 112 of file imu_navstik.h.

References ImuNavstik::accel_valid, FALSE, ImuNavstik::gyro_valid, imu_navstik, imu_navstik_event(), and ImuNavstik::mag_valid.

+ Here is the call graph for this function:

Variable Documentation

struct ImuNavstik imu_navstik

Basic Navstik IMU data.

Definition at line 73 of file imu_navstik.c.

Referenced by imu_navstik_event(), imu_periodic(), and ImuEvent().