DERPS

Dependencies:   BMP280 BNO055_fusion PowerControl mbed

Fork of STRAIGHT_DRIVE_NO_SEP by Antoine Laurens

Committer:
12104404
Date:
Wed Apr 06 04:04:00 2016 +0000
Revision:
26:0ea6a550a99d
Parent:
25:f3bf8351bbd4
Child:
27:fb1298d35bd1
added antoine stuff

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 26:0ea6a550a99d 3
12104404 6:0602a9e8118b 4 #include "mbed.h"
12104404 17:2f89826b5679 5 #include "LOCALIZE.h"
12104404 26:0ea6a550a99d 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 26:0ea6a550a99d 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 26:0ea6a550a99d 17 #define ROTATE_1 4
12104404 26:0ea6a550a99d 18 #define ROTATE_2 5
12104404 26:0ea6a550a99d 19 #define BACKOFF 10
12104404 26:0ea6a550a99d 20 #define X_NEAR_GOAL 0
12104404 26:0ea6a550a99d 21 #define X_FAR_GOAL 90
12104404 26:0ea6a550a99d 22 #define Y_INCREMENT 7
12104404 26:0ea6a550a99d 23
12104404 15:7729da55873a 24 enum {
12104404 15:7729da55873a 25 ANGLE_TURN = 0,
12104404 15:7729da55873a 26 ANGLE_BIAS = 1,
12104404 15:7729da55873a 27 };
12104404 26:0ea6a550a99d 28
12104404 6:0602a9e8118b 29 class LOCOMOTION
12104404 6:0602a9e8118b 30 {
12104404 6:0602a9e8118b 31 public:
12104404 24:fb1f083ebd62 32 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 33 DigitalOut _en;
12104404 15:7729da55873a 34 PwmOut _m1f;
12104404 15:7729da55873a 35 PwmOut _m1b;
12104404 15:7729da55873a 36 PwmOut _m2f;
12104404 15:7729da55873a 37 PwmOut _m2b;
12104404 15:7729da55873a 38 DigitalOut _m1dir;
12104404 15:7729da55873a 39 DigitalOut _m2dir;
12104404 24:fb1f083ebd62 40 DigitalOut _led1;
12104404 24:fb1f083ebd62 41 DigitalOut _led2;
12104404 24:fb1f083ebd62 42 DigitalOut _led3;
12104404 24:fb1f083ebd62 43 DigitalOut _led4;
12104404 23:455f7da3dd7a 44 void eStop(void);
12104404 26:0ea6a550a99d 45 void mStop(void);
12104404 18:f9012e93edb8 46 bool setXPos(int target, int current, int error, int angle);
12104404 25:f3bf8351bbd4 47 bool setYBias(int target, int current, int error, int angle);
12104404 15:7729da55873a 48 bool setAngle(int target, int current, int error, int mode);
12104404 25:f3bf8351bbd4 49
12104404 26:0ea6a550a99d 50 void setXstate(int *xCurrState, int *xTarget,bool xGood,bool angleGood,int *angleGoal,int *angleTol );
12104404 25:f3bf8351bbd4 51 void setAngleTol(int *angleTol,bool yGood, bool xGood);
12104404 25:f3bf8351bbd4 52 void setYgoal(bool xGood,bool angleGood,bool yGood,int *yTarget);
12104404 25:f3bf8351bbd4 53 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 26:0ea6a550a99d 54
12104404 15:7729da55873a 55 protected:
12104404 17:2f89826b5679 56 float s;
12104404 25:f3bf8351bbd4 57 void setMotors(float x);
12104404 23:455f7da3dd7a 58 int wrap(int num);
12104404 19:2dd81b864e14 59
12104404 6:0602a9e8118b 60 };
12104404 6:0602a9e8118b 61 #endif