Paparazzi UAS  v5.10_stable-5-g83a0da5-dirty
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
imu_bebop.h File Reference

Interface for the Bebop magnetometer, accelerometer and gyroscope. More...

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

Go to the source code of this file.

Data Structures

struct  ImuBebop
 Everything that is in the bebop IMU. More...
 

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_bebop_init (void)
 Navstik IMU initializtion of the MPU-60x0 and HMC58xx. More...
 
void imu_bebop_periodic (void)
 Handle all the periodic tasks of the Navstik IMU components. More...
 
void imu_bebop_event (void)
 Handle all the events of the Navstik IMU components. More...
 

Variables

struct ImuBebop imu_bebop
 Basic Navstik IMU data. More...
 

Detailed Description

Interface for the Bebop magnetometer, accelerometer and gyroscope.

Definition in file imu_bebop.h.


Data Structure Documentation

struct ImuBebop

Everything that is in the bebop IMU.

Definition at line 73 of file imu_bebop.h.

+ Collaboration diagram for ImuBebop:
Data Fields
struct Ak8963 ak The AK8963 mag.
struct Mpu60x0_I2c mpu The MPU gyro/accel device.

Macro Definition Documentation

#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_bebop.h.

#define IMU_ACCEL_X_SENS_DEN   400

Definition at line 63 of file imu_bebop.h.

#define IMU_ACCEL_X_SENS_NUM   981

Definition at line 62 of file imu_bebop.h.

#define IMU_ACCEL_Y_SENS   2.4525

Definition at line 64 of file imu_bebop.h.

#define IMU_ACCEL_Y_SENS_DEN   400

Definition at line 66 of file imu_bebop.h.

#define IMU_ACCEL_Y_SENS_NUM   981

Definition at line 65 of file imu_bebop.h.

#define IMU_ACCEL_Z_SENS   2.4525

Definition at line 67 of file imu_bebop.h.

#define IMU_ACCEL_Z_SENS_DEN   400

Definition at line 69 of file imu_bebop.h.

#define IMU_ACCEL_Z_SENS_NUM   981

Definition at line 68 of file imu_bebop.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_bebop.h.

#define IMU_GYRO_P_SENS_DEN   8383

Definition at line 46 of file imu_bebop.h.

#define IMU_GYRO_P_SENS_NUM   18271

Definition at line 45 of file imu_bebop.h.

#define IMU_GYRO_Q_SENS   2.17953

Definition at line 47 of file imu_bebop.h.

#define IMU_GYRO_Q_SENS_DEN   8383

Definition at line 49 of file imu_bebop.h.

#define IMU_GYRO_Q_SENS_NUM   18271

Definition at line 48 of file imu_bebop.h.

#define IMU_GYRO_R_SENS   2.17953

Definition at line 50 of file imu_bebop.h.

#define IMU_GYRO_R_SENS_DEN   8383

Definition at line 52 of file imu_bebop.h.

#define IMU_GYRO_R_SENS_NUM   18271

Definition at line 51 of file imu_bebop.h.

Function Documentation

void imu_bebop_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_bebop.c.

References Imu::accel, Imu::accel_unscaled, ImuBebop::ak, ak8963_event(), Ak8963::data, Mpu60x0_I2c::data_accel, Mpu60x0_I2c::data_available, Ak8963::data_available, Mpu60x0_I2c::data_rates, get_sys_time_usec(), Imu::gyro, Imu::gyro_unscaled, imu, imu_bebop, IMU_BOARD_ID, imu_scale_accel(), imu_scale_gyro(), imu_scale_mag(), Imu::mag, Imu::mag_unscaled, ImuBebop::mpu, mpu60x0_i2c_event(), RATES_ASSIGN, and VECT3_ASSIGN.

+ Here is the call graph for this function:

void imu_bebop_init ( void  )
void imu_bebop_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_bebop.c.

References ImuBebop::ak, ak8963_periodic(), imu_bebop, ImuBebop::mpu, and mpu60x0_i2c_periodic().

+ Here is the call graph for this function:

Variable Documentation

struct ImuBebop imu_bebop

Basic Navstik IMU data.

Definition at line 74 of file imu_bebop.c.

Referenced by imu_bebop_event(), and imu_bebop_periodic().