Lu-Hsuan Chen
/
autocar_3sensor_mbed
An auto car with 3 IR sensors.
autocar/autocar.h@13:87cd0ae37e06, 2018-07-01 (annotated)
- Committer:
- cudaChen
- Date:
- Sun Jul 01 07:58:20 2018 +0000
- Revision:
- 13:87cd0ae37e06
- Parent:
- 12:e95ed962be7a
- Child:
- 15:1d440beb24d3
[add] create PID control feature (unfinished)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cudaChen | 12:e95ed962be7a | 1 | #ifndef AUTOCAR_H |
cudaChen | 12:e95ed962be7a | 2 | #define AUTOCAR_H |
cudaChen | 12:e95ed962be7a | 3 | |
cudaChen | 12:e95ed962be7a | 4 | #include "mbed.h" |
cudaChen | 12:e95ed962be7a | 5 | |
cudaChen | 12:e95ed962be7a | 6 | // used for motor |
cudaChen | 12:e95ed962be7a | 7 | //AnalogOut M1_enable(D6); |
cudaChen | 12:e95ed962be7a | 8 | //AnalogOut M2_enable(D5); |
cudaChen | 12:e95ed962be7a | 9 | /*DigitalOut M1_enable(D6); |
cudaChen | 12:e95ed962be7a | 10 | DigitalOut M2_enable(D5); |
cudaChen | 12:e95ed962be7a | 11 | DigitalOut M1_in1(D3); |
cudaChen | 12:e95ed962be7a | 12 | DigitalOut M1_in2(D2); |
cudaChen | 12:e95ed962be7a | 13 | DigitalOut M2_in3(D1); |
cudaChen | 12:e95ed962be7a | 14 | DigitalOut M2_in4(D0); |
cudaChen | 12:e95ed962be7a | 15 | const int MOTOR_M1 = 0; |
cudaChen | 12:e95ed962be7a | 16 | const int MOTOR_M2 = 1; |
cudaChen | 12:e95ed962be7a | 17 | const int DIR_FORWARD = 0; |
cudaChen | 12:e95ed962be7a | 18 | const int DIR_BACKWARD = 1; |
cudaChen | 12:e95ed962be7a | 19 | const int PWR_STOP = 0;*/ |
cudaChen | 12:e95ed962be7a | 20 | |
cudaChen | 12:e95ed962be7a | 21 | // used for IR sensors |
cudaChen | 12:e95ed962be7a | 22 | /*AnalogIn leftIR(A1); |
cudaChen | 12:e95ed962be7a | 23 | AnalogIn middleIR(A3); |
cudaChen | 12:e95ed962be7a | 24 | AnalogIn rightIR(A5);*/ |
cudaChen | 12:e95ed962be7a | 25 | void readIR(bool* left, bool* middle, bool* right, int threshold); |
cudaChen | 13:87cd0ae37e06 | 26 | int readIRValues(); |
cudaChen | 12:e95ed962be7a | 27 | |
cudaChen | 12:e95ed962be7a | 28 | long map(long x, long in_min, long in_max, long out_min, long out_max); |
cudaChen | 12:e95ed962be7a | 29 | |
cudaChen | 12:e95ed962be7a | 30 | // used for controlling the direction of auto car |
cudaChen | 12:e95ed962be7a | 31 | void DriveSingleMotor(int m, int speed, int dir); |
cudaChen | 12:e95ed962be7a | 32 | void driveMotor(bool left, bool middle, bool right); |
cudaChen | 13:87cd0ae37e06 | 33 | |
cudaChen | 13:87cd0ae37e06 | 34 | void driveMotorPID(int values, float Kp, float Ki, float Kd); |
cudaChen | 13:87cd0ae37e06 | 35 | |
cudaChen | 12:e95ed962be7a | 36 | void init(); |
cudaChen | 12:e95ed962be7a | 37 | void forward(); |
cudaChen | 12:e95ed962be7a | 38 | void turnLeft(); |
cudaChen | 12:e95ed962be7a | 39 | void turnRight(); |
cudaChen | 12:e95ed962be7a | 40 | |
cudaChen | 12:e95ed962be7a | 41 | #endif |