Eigen Revision

Dependencies:   mbed LPS25HB_I2C LSM9DS1 PIDcontroller Autopilot_Eigen LoopTicker GPSUBX_UART_Eigen SBUS_without_mainfile MedianFilter Eigen UsaPack solaESKF_Eigen Vector3 CalibrateMagneto FastPWM

global.hpp

Committer:
NaotoMorita
Date:
2021-06-22
Revision:
66:e5afad70fdd8
Parent:
64:e9661430f0e3
Child:
67:41fcdfb7cc5a

File content as of revision 66:e5afad70fdd8:

#ifndef __GLOBAL_HPP__
#define __GLOBAL_HPP__

#include "mbed.h"
#include "PIDcontroller.h"
#include "LoopTicker.hpp"
#include "MPU6050.h"
#include "MAG3110.h"
#include "CalibrateMagneto.h"
#include "I2Cdev.h"
#include "FastPWM.h"
#include <cmath>
#include "UsaPack.hpp"
#include "Vector3.hpp"
#include "HAPS_EKF.hpp"

#define MPU6050_PWR_MGMT_1   0x6B
#define MPU_ADDRESS  0x68
#define M_PI 3.141592f
#define ACCEL_FSR MPU6050_ACCEL_FS_8
#define ACCEL_SSF 4096.0f
#define GYRO_FSR MPU6050_GYRO_FS_250
#define GYRO_SSF 131.0f
#define MPU6050_LPF MPU6050_DLPF_BW_256
#define PID_dt 0.015f
#define servoPwmMax  1800.0f
#define servoPwmMin  1200.0f
#define motorPwmMax  2000.0f
#define motorPwmMin  1100.0f

struct valuePack
{
    float dt;
    int count;
    float acc[3];
    float gyro[3];
    float mag[3];
    float rpy[3];
};

// var

// communication
extern I2C i2c;  // sda, scl
extern UsaPack pc; // log - tail

// sensor
extern MPU6050 accelgyro;
extern MAG3110 mag_sensor;
extern CalibrateMagneto magCalibrator;

// io
extern DigitalIn userButton;
extern CalibrateMagneto joyCalibrator;

// control
extern FastPWM elevServo;
extern FastPWM rudServo;
extern PID pitchPID; // rad
extern PID pitchratePID;// rad/s
extern HAPS_EKF ekf; // EKF class

extern int loop_count;
extern float att_dt;

extern int16_t ax, ay, az;
extern int16_t gx, gy, gz;
extern MotionSensorDataUnits mdata;
extern float magval[3];

// position
extern Vector3 rpy; // x:roll  y:pitch  z:yaw
extern Vector3 acc;
extern Vector3 accref;
extern Vector3 mag;
extern Vector3 magref;
extern Vector3 gyro;

extern float scaledServoOut[2];
extern float servoOut[2];



extern int calibrationFlag;
extern int agoffset[6];
extern float magbiasMin[3];
extern float magbiasMax[3];

extern Vector3 rpy_align;


//// UsaPack
extern valuePack posValues;

// function

// main.cpp

// setup.cpp
extern void setup();
extern void calibrate();

// run.cpp
extern void run();

// imu.cpp
extern void getIMUval();

// servo.cpp
extern void calcServoOut();

// sd_eeprom.cpp
extern void writeSdcard();

// global.cpp
extern float mapfloat(float x, float in_min, float in_max, float out_min, float out_max);

#endif