DERPS

Dependencies:   BMP280 BNO055_fusion PowerControl mbed

Fork of STRAIGHT_DRIVE_NO_SEP by Antoine Laurens

Committer:
12104404
Date:
Tue Apr 05 02:30:40 2016 +0000
Revision:
25:f3bf8351bbd4
Parent:
24:fb1f083ebd62
Child:
26:0ea6a550a99d
goood but overshoot bottom missing tol state

Who changed what in which revision?

UserRevisionLine numberNew contents of line
12104404 6:0602a9e8118b 1 #ifndef LOCOMOTION_H
12104404 6:0602a9e8118b 2 #define LOCOMOTION_H
12104404 6:0602a9e8118b 3
12104404 6:0602a9e8118b 4 #include "mbed.h"
12104404 17:2f89826b5679 5 #include "LOCALIZE.h"
12104404 6:0602a9e8118b 6
12104404 25:f3bf8351bbd4 7 #define SPEED_TURN_MIN 0.15
12104404 25:f3bf8351bbd4 8 #define SPEED_TURN_MAX 0.45
12104404 25:f3bf8351bbd4 9 #define Y_BIAS_MIN 0.50
12104404 25:f3bf8351bbd4 10 #define Y_BIAS_MAX 1.00
12104404 25:f3bf8351bbd4 11 #define SPEED_X_MIN 0.07
12104404 25:f3bf8351bbd4 12 #define SPEED_X_MAX 0.17
12104404 25:f3bf8351bbd4 13
12104404 25:f3bf8351bbd4 14 #define X_INCREASE 1
12104404 25:f3bf8351bbd4 15 #define X_DECREASE 2
12104404 25:f3bf8351bbd4 16 #define X_BACKWARDS 3
12104404 25:f3bf8351bbd4 17 #define BACKOFF 30
12104404 25:f3bf8351bbd4 18 #define X_NEAR_GOAL 20
12104404 25:f3bf8351bbd4 19 #define X_FAR_GOAL 80
12104404 25:f3bf8351bbd4 20 #define Y_INCREMENT 20
12104404 15:7729da55873a 21
12104404 15:7729da55873a 22 enum {
12104404 15:7729da55873a 23 ANGLE_TURN = 0,
12104404 15:7729da55873a 24 ANGLE_BIAS = 1,
12104404 15:7729da55873a 25 };
12104404 6:0602a9e8118b 26
12104404 6:0602a9e8118b 27 class LOCOMOTION
12104404 6:0602a9e8118b 28 {
12104404 6:0602a9e8118b 29 public:
12104404 24:fb1f083ebd62 30 LOCOMOTION(PinName en, PinName motor1F, PinName motor1B,PinName motor2F, PinName motor2B, PinName forward1, PinName forward2, DigitalOut& led1, DigitalOut& led2, DigitalOut& led3, DigitalOut& led4);
12104404 23:455f7da3dd7a 31 DigitalOut _en;
12104404 15:7729da55873a 32 PwmOut _m1f;
12104404 15:7729da55873a 33 PwmOut _m1b;
12104404 15:7729da55873a 34 PwmOut _m2f;
12104404 15:7729da55873a 35 PwmOut _m2b;
12104404 15:7729da55873a 36 DigitalOut _m1dir;
12104404 15:7729da55873a 37 DigitalOut _m2dir;
12104404 24:fb1f083ebd62 38 DigitalOut _led1;
12104404 24:fb1f083ebd62 39 DigitalOut _led2;
12104404 24:fb1f083ebd62 40 DigitalOut _led3;
12104404 24:fb1f083ebd62 41 DigitalOut _led4;
12104404 23:455f7da3dd7a 42 void eStop(void);
12104404 18:f9012e93edb8 43 bool setXPos(int target, int current, int error, int angle);
12104404 25:f3bf8351bbd4 44 bool setYBias(int target, int current, int error, int angle);
12104404 15:7729da55873a 45 bool setAngle(int target, int current, int error, int mode);
12104404 25:f3bf8351bbd4 46
12104404 25:f3bf8351bbd4 47 void setXstate(int *xCurrState, int *xTarget,bool xGood,bool angleGood,int *angleGoal);
12104404 25:f3bf8351bbd4 48 void setAngleTol(int *angleTol,bool yGood, bool xGood);
12104404 25:f3bf8351bbd4 49 void setYgoal(bool xGood,bool angleGood,bool yGood,int *yTarget);
12104404 25:f3bf8351bbd4 50 void check_xya(bool *xGood,bool *yGood,bool *angleGood, int xGoal,int angleGoal,int yGoal,LOCALIZE_xya xya,int xErr, int yErr,int angleErr);
12104404 15:7729da55873a 51
12104404 15:7729da55873a 52 protected:
12104404 17:2f89826b5679 53 float s;
12104404 25:f3bf8351bbd4 54 void setMotors(float x);
12104404 23:455f7da3dd7a 55 int wrap(int num);
12104404 19:2dd81b864e14 56
12104404 6:0602a9e8118b 57 };
12104404 6:0602a9e8118b 58 #endif