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

Interface for the Swing accelerometer and gyroscope. More...

#include "generated/airframe.h"
#include "subsystems/imu.h"
#include "peripherals/mpu60x0_i2c.h"
+ Include dependency graph for imu_swing.h:

Go to the source code of this file.

Data Structures

struct  ImuSwing
 Everything that is in the swing IMU. More...
 

Macros

#define SWING_GYRO_RANGE   MPU60X0_GYRO_RANGE_1000
 
#define SWING_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_8G
 
#define IMU_GYRO_P_SENS   MPU60X0_GYRO_SENS[SWING_GYRO_RANGE]
 
#define IMU_GYRO_P_SENS_NUM   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][0]
 
#define IMU_GYRO_P_SENS_DEN   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][1]
 
#define IMU_GYRO_Q_SENS   MPU60X0_GYRO_SENS[SWING_GYRO_RANGE]
 
#define IMU_GYRO_Q_SENS_NUM   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][0]
 
#define IMU_GYRO_Q_SENS_DEN   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][1]
 
#define IMU_GYRO_R_SENS   MPU60X0_GYRO_SENS[SWING_GYRO_RANGE]
 
#define IMU_GYRO_R_SENS_NUM   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][0]
 
#define IMU_GYRO_R_SENS_DEN   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][1]
 
#define IMU_ACCEL_X_SENS   MPU60X0_ACCEL_SENS[SWING_ACCEL_RANGE]
 
#define IMU_ACCEL_X_SENS_NUM   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][0]
 
#define IMU_ACCEL_X_SENS_DEN   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][1]
 
#define IMU_ACCEL_Y_SENS   MPU60X0_ACCEL_SENS[SWING_ACCEL_RANGE]
 
#define IMU_ACCEL_Y_SENS_NUM   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][0]
 
#define IMU_ACCEL_Y_SENS_DEN   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][1]
 
#define IMU_ACCEL_Z_SENS   MPU60X0_ACCEL_SENS[SWING_ACCEL_RANGE]
 
#define IMU_ACCEL_Z_SENS_NUM   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][0]
 
#define IMU_ACCEL_Z_SENS_DEN   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][1]
 

Functions

void imu_swing_init (void)
 Navstik IMU initializtion of the MPU-60x0 and HMC58xx. More...
 
void imu_swing_periodic (void)
 Handle all the periodic tasks of the Navstik IMU components. More...
 
void imu_swing_event (void)
 Handle all the events of the Navstik IMU components. More...
 

Variables

struct ImuSwing imu_swing
 Basic Navstik IMU data. More...
 

Detailed Description

Interface for the Swing accelerometer and gyroscope.

Definition in file imu_swing.h.


Data Structure Documentation

struct ImuSwing

Everything that is in the swing IMU.

Definition at line 73 of file imu_swing.h.

+ Collaboration diagram for ImuSwing:
Data Fields
struct Mpu60x0_I2c mpu The MPU gyro/accel device.

Macro Definition Documentation

#define IMU_ACCEL_X_SENS   MPU60X0_ACCEL_SENS[SWING_ACCEL_RANGE]

Definition at line 60 of file imu_swing.h.

#define IMU_ACCEL_X_SENS_DEN   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][1]

Definition at line 62 of file imu_swing.h.

#define IMU_ACCEL_X_SENS_NUM   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][0]

Definition at line 61 of file imu_swing.h.

#define IMU_ACCEL_Y_SENS   MPU60X0_ACCEL_SENS[SWING_ACCEL_RANGE]

Definition at line 63 of file imu_swing.h.

#define IMU_ACCEL_Y_SENS_DEN   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][1]

Definition at line 65 of file imu_swing.h.

#define IMU_ACCEL_Y_SENS_NUM   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][0]

Definition at line 64 of file imu_swing.h.

#define IMU_ACCEL_Z_SENS   MPU60X0_ACCEL_SENS[SWING_ACCEL_RANGE]

Definition at line 66 of file imu_swing.h.

#define IMU_ACCEL_Z_SENS_DEN   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][1]

Definition at line 68 of file imu_swing.h.

#define IMU_ACCEL_Z_SENS_NUM   MPU60X0_ACCEL_SENS_FRAC[SWING_ACCEL_RANGE][0]

Definition at line 67 of file imu_swing.h.

#define IMU_GYRO_P_SENS   MPU60X0_GYRO_SENS[SWING_GYRO_RANGE]

Definition at line 47 of file imu_swing.h.

#define IMU_GYRO_P_SENS_DEN   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][1]

Definition at line 49 of file imu_swing.h.

#define IMU_GYRO_P_SENS_NUM   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][0]

Definition at line 48 of file imu_swing.h.

#define IMU_GYRO_Q_SENS   MPU60X0_GYRO_SENS[SWING_GYRO_RANGE]

Definition at line 50 of file imu_swing.h.

#define IMU_GYRO_Q_SENS_DEN   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][1]

Definition at line 52 of file imu_swing.h.

#define IMU_GYRO_Q_SENS_NUM   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][0]

Definition at line 51 of file imu_swing.h.

#define IMU_GYRO_R_SENS   MPU60X0_GYRO_SENS[SWING_GYRO_RANGE]

Definition at line 53 of file imu_swing.h.

#define IMU_GYRO_R_SENS_DEN   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][1]

Definition at line 55 of file imu_swing.h.

#define IMU_GYRO_R_SENS_NUM   MPU60X0_GYRO_SENS_FRAC[SWING_GYRO_RANGE][0]

Definition at line 54 of file imu_swing.h.

#define SWING_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_8G

Definition at line 42 of file imu_swing.h.

Referenced by imu_swing_init().

#define SWING_GYRO_RANGE   MPU60X0_GYRO_RANGE_1000

Definition at line 38 of file imu_swing.h.

Referenced by imu_swing_init().

Function Documentation

void imu_swing_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 92 of file imu_swing.c.

References Imu::accel, Imu::accel_unscaled, Mpu60x0_I2c::data_accel, Mpu60x0_I2c::data_available, Mpu60x0_I2c::data_rates, get_sys_time_usec(), Imu::gyro, Imu::gyro_unscaled, imu, IMU_BOARD_ID, imu_scale_accel(), imu_scale_gyro(), imu_swing, ImuSwing::mpu, mpu60x0_i2c_event(), RATES_ASSIGN, and VECT3_ASSIGN.

+ Here is the call graph for this function:

void imu_swing_init ( void  )

Navstik IMU initializtion of the MPU-60x0 and HMC58xx.

Definition at line 68 of file imu_swing.c.

References Mpu60x0Config::accel_range, Mpu60x0_I2c::config, Mpu60x0Config::dlpf_cfg, Mpu60x0Config::gyro_range, ImuSwing::mpu, MPU60X0_ADDR, mpu60x0_i2c_init(), Mpu60x0Config::smplrt_div, SWING_ACCEL_RANGE, SWING_GYRO_RANGE, and SWING_MPU_I2C_DEV.

+ Here is the call graph for this function:

void imu_swing_periodic ( void  )

Handle all the periodic tasks of the Navstik IMU components.

Read the MPU60x0 every periodic call

Definition at line 82 of file imu_swing.c.

References imu_swing, ImuSwing::mpu, and mpu60x0_i2c_periodic().

+ Here is the call graph for this function:

Variable Documentation

struct ImuSwing imu_swing

Basic Navstik IMU data.

Definition at line 63 of file imu_swing.c.

Referenced by imu_swing_event(), and imu_swing_periodic().