Mekatronics Team G
Dependencies: BNO055_fusion PowerControl mbed BMP280
Fork of DEMO3 by
LOCOMOTION.h@25:f3bf8351bbd4, 2016-04-05 (annotated)
- 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?
User | Revision | Line number | New 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 |