Used to track the robot's position and initialise an m3pi object to drive the robot

Navigate_Pololu.h

Committer:
sleighton
Date:
2016-03-04
Revision:
3:c5dff598fea4
Parent:
2:1255feea1c59

File content as of revision 3:c5dff598fea4:

#include "mbed.h"
#include "m3pi.h"

class Navigate_Pololu{
    
private:
const float PI = 3.14159f; //declare constants for pi and 2pi
const float TWO_PI = PI * 2.0f;
float distancePerCount;
float radiansPerCount;
float X;
float Y;
float heading;
int previousLeftCounts;
int previousRightCounts;
float deltaDistance;
float deltaX;
float deltaY;
int leftCounts;
int rightCounts;
int deltaLeft;
int deltaRight;
float deltaHeading;
InterruptIn leftOpto;
InterruptIn rightOpto;

public:

m3pi robot; //create robot object, make it public so it can be accessed by main program

Navigate_Pololu(PinName leftIn, PinName rightIn, int countsPerRevolution, float wheelDiameter, float trackWidth,PinName robotTx, PinName robotRx);
//constuctor

void leftWheelInterrupt();
//IRQ for left wheel sensor

void rightWheelInterrupt();
//IRQ for right wheel sensor

void UpdatePosition();
//Updates position based on wheel counts
int getX();
//returns x coordinate

int getY();
//returns y coordinate

int getHeading();
//returns heading

void calibratePos();
//aligns wheels

void resetCoordinates();
//resets X and Y coordinates
};