code for the speed robot
Dependencies: MPU6050-DMP mbed PololuQTRSensors vl53l0x
motor_control.h@8:d7941bcd9981, 2019-10-01 (annotated)
- Committer:
- deepanaishtaweera174
- Date:
- Tue Oct 01 12:33:33 2019 +0000
- Revision:
- 8:d7941bcd9981
- Parent:
- 7:fd80a0d11658
hey
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
deepanaishtaweera174 | 7:fd80a0d11658 | 1 | void StopMotors(); |
deepanaishtaweera174 | 7:fd80a0d11658 | 2 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 3 | DigitalOut motorLeft1(MOTOR_LEFT_1); |
deepanaishtaweera174 | 7:fd80a0d11658 | 4 | DigitalOut motorLeft2(MOTOR_LEFT_2); |
deepanaishtaweera174 | 7:fd80a0d11658 | 5 | DigitalOut motorRight1(MOTOR_RIGHT_1); |
deepanaishtaweera174 | 7:fd80a0d11658 | 6 | DigitalOut motorRight2(MOTOR_RIGHT_2); |
deepanaishtaweera174 | 7:fd80a0d11658 | 7 | PwmOut motorLeftPowerPin(MOTOR_LEFT_POWER_PIN); |
deepanaishtaweera174 | 7:fd80a0d11658 | 8 | PwmOut motorRightPowerPin(MOTOR_RIGHT_POWER_PIN); |
deepanaishtaweera174 | 7:fd80a0d11658 | 9 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 10 | void InitMotors() |
deepanaishtaweera174 | 7:fd80a0d11658 | 11 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 12 | motorLeftPowerPin.period_us(100); |
deepanaishtaweera174 | 7:fd80a0d11658 | 13 | motorRightPowerPin.period_us(100); |
deepanaishtaweera174 | 7:fd80a0d11658 | 14 | StopMotors(); |
deepanaishtaweera174 | 7:fd80a0d11658 | 15 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 16 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 17 | void StopMotors() |
deepanaishtaweera174 | 7:fd80a0d11658 | 18 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 19 | motorLeft1 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 20 | motorLeft2 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 21 | motorRight1 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 22 | motorRight2 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 23 | motorLeftPowerPin.write(0); |
deepanaishtaweera174 | 7:fd80a0d11658 | 24 | motorRightPowerPin.write(0); |
deepanaishtaweera174 | 7:fd80a0d11658 | 25 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 26 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 27 | void ForwardLeftMotor(float power) |
deepanaishtaweera174 | 7:fd80a0d11658 | 28 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 29 | motorLeft1 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 30 | motorLeft2 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 31 | motorLeftPowerPin.write((int)power/1000); |
deepanaishtaweera174 | 7:fd80a0d11658 | 32 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 33 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 34 | void BackwardLeftMotor(float power) |
deepanaishtaweera174 | 7:fd80a0d11658 | 35 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 36 | motorLeft1 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 37 | motorLeft2 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 38 | motorLeftPowerPin.write((int)power/1000); |
deepanaishtaweera174 | 7:fd80a0d11658 | 39 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 40 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 41 | void ForwardRightMotor(float power) |
deepanaishtaweera174 | 7:fd80a0d11658 | 42 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 43 | motorRight1 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 44 | motorRight2 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 45 | motorRightPowerPin.write(power/1000); |
deepanaishtaweera174 | 7:fd80a0d11658 | 46 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 47 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 48 | void BackwardRightMotor(float power) |
deepanaishtaweera174 | 7:fd80a0d11658 | 49 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 50 | motorRight1 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 51 | motorRight2 = 0; |
deepanaishtaweera174 | 7:fd80a0d11658 | 52 | motorRightPowerPin.write(power/1000); |
deepanaishtaweera174 | 7:fd80a0d11658 | 53 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 54 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 55 | void BreakMotors() |
deepanaishtaweera174 | 7:fd80a0d11658 | 56 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 57 | motorLeft1 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 58 | motorLeft2 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 59 | motorRight1 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 60 | motorRight2 = 1; |
deepanaishtaweera174 | 7:fd80a0d11658 | 61 | motorLeftPowerPin.write(0); |
deepanaishtaweera174 | 7:fd80a0d11658 | 62 | motorRightPowerPin.write(0); |
deepanaishtaweera174 | 7:fd80a0d11658 | 63 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 64 | |
deepanaishtaweera174 | 7:fd80a0d11658 | 65 | void RunBothMotors(float leftPower, float rightPower) |
deepanaishtaweera174 | 7:fd80a0d11658 | 66 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 67 | if (leftPower > 0) |
deepanaishtaweera174 | 7:fd80a0d11658 | 68 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 69 | ForwardLeftMotor(leftPower); |
deepanaishtaweera174 | 7:fd80a0d11658 | 70 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 71 | else |
deepanaishtaweera174 | 7:fd80a0d11658 | 72 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 73 | BackwardLeftMotor(abs(leftPower)); |
deepanaishtaweera174 | 7:fd80a0d11658 | 74 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 75 | if (rightPower > 0) |
deepanaishtaweera174 | 7:fd80a0d11658 | 76 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 77 | ForwardRightMotor(rightPower); |
deepanaishtaweera174 | 7:fd80a0d11658 | 78 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 79 | else |
deepanaishtaweera174 | 7:fd80a0d11658 | 80 | { |
deepanaishtaweera174 | 7:fd80a0d11658 | 81 | BackwardRightMotor(abs(rightPower)); |
deepanaishtaweera174 | 7:fd80a0d11658 | 82 | } |
deepanaishtaweera174 | 7:fd80a0d11658 | 83 | } |