The subsystem design/basis for the final project

Dependencies:   mbed-rtos mbed-src pixylib

global.h

Committer:
balsamfir
Date:
2016-03-25
Revision:
9:62fbb69b612c
Parent:
7:5ef312aa2678

File content as of revision 9:62fbb69b612c:

#include "mbed.h"
#include "rtos.h"
#include "Pixy.h"
#include "PeriodicPI.h"

// ----------------------------------------------------------------
// Contains common defintions share between modes
// ----------------------------------------------------------------

// Preprocessor Definitions
// ----------------------------------------------------------------
#define SPEED_MAX 10 // rads/s
#define MAX_BLOCKS 1

#define TARGET_DECIMAL 10 
#define PWM_PERIOD 0.001
#define MOTOR_PERIOD 0.001
#define NAVIGATION_PERIOD 0.0167 // 60 times/sec

#define MOTOR_KP 0.120
#define MOTOR_KI 0.0000001

#define STEERING_KP 0.01
#define STEERING_KI 0.1

#define SPEED_KP 0.2
#define SPEED_KI 0.6


// Global variables
// ----------------------------------------------------------------
// IO Port
extern DigitalOut led1;
extern DigitalOut led2;
extern DigitalOut led3;
extern DigitalOut led4;
extern DigitalOut leftDir;
extern DigitalOut rightDir;
extern DigitalOut spiReset;
extern DigitalOut ioReset;

// Comunication 
extern SPI deSpi;
extern Pixy pixy;
extern Serial pc; // PC serial channel
extern Serial bt; // Bluetooth serial channel

// Control
extern PeriodicPI leftMotorPI;
extern PeriodicPI rightMotorPI;
extern PeriodicPI heightPI;
extern PeriodicPI xPI;

// Other
extern PwmOut leftPwm; 
extern PwmOut rightPwm; 
extern InterruptIn bumper;  // External interrupt pin declared as Bumper

// Method prototypes
void PI(float error, float *output, float *integral, float kP, float kI, float bound);
float QE2RadsPerSec(short counts, short time);