Alexander Schwartz
/
4180_final_project_robot_motors
Code for mbed on robot that polls DigitalIn pins to control robot movement via 2 DC motors
main.cpp@0:1dadb580b75f, 2019-12-06 (annotated)
- Committer:
- aschwartz44
- Date:
- Fri Dec 06 04:17:08 2019 +0000
- Revision:
- 0:1dadb580b75f
Publish repo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aschwartz44 | 0:1dadb580b75f | 1 | #include "mbed.h" |
aschwartz44 | 0:1dadb580b75f | 2 | #include "Motor.h" |
aschwartz44 | 0:1dadb580b75f | 3 | |
aschwartz44 | 0:1dadb580b75f | 4 | Motor leftWheel(p23, p16, p15); //pwm, fwd(Digital), rev(Digital) |
aschwartz44 | 0:1dadb580b75f | 5 | Motor rightWheel(p24, p18, p17); //pwm, fwd(Digital), rev(Digital) |
aschwartz44 | 0:1dadb580b75f | 6 | DigitalIn fwd(p5); |
aschwartz44 | 0:1dadb580b75f | 7 | DigitalIn rev(p6); |
aschwartz44 | 0:1dadb580b75f | 8 | DigitalIn turnL(p7); |
aschwartz44 | 0:1dadb580b75f | 9 | DigitalIn turnR(p8); |
aschwartz44 | 0:1dadb580b75f | 10 | |
aschwartz44 | 0:1dadb580b75f | 11 | DigitalOut led1(LED1); |
aschwartz44 | 0:1dadb580b75f | 12 | DigitalOut led2(LED2); |
aschwartz44 | 0:1dadb580b75f | 13 | DigitalOut led3(LED3); |
aschwartz44 | 0:1dadb580b75f | 14 | DigitalOut led4(LED4); |
aschwartz44 | 0:1dadb580b75f | 15 | |
aschwartz44 | 0:1dadb580b75f | 16 | |
aschwartz44 | 0:1dadb580b75f | 17 | void moveForward(float time) |
aschwartz44 | 0:1dadb580b75f | 18 | { |
aschwartz44 | 0:1dadb580b75f | 19 | leftWheel.speed(0.6); |
aschwartz44 | 0:1dadb580b75f | 20 | rightWheel.speed(0.6); |
aschwartz44 | 0:1dadb580b75f | 21 | wait(time); |
aschwartz44 | 0:1dadb580b75f | 22 | leftWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 23 | rightWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 24 | } |
aschwartz44 | 0:1dadb580b75f | 25 | |
aschwartz44 | 0:1dadb580b75f | 26 | void moveBackward(float time) |
aschwartz44 | 0:1dadb580b75f | 27 | { |
aschwartz44 | 0:1dadb580b75f | 28 | leftWheel.speed(-0.6); |
aschwartz44 | 0:1dadb580b75f | 29 | rightWheel.speed(-0.6); |
aschwartz44 | 0:1dadb580b75f | 30 | wait(time); |
aschwartz44 | 0:1dadb580b75f | 31 | leftWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 32 | rightWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 33 | } |
aschwartz44 | 0:1dadb580b75f | 34 | |
aschwartz44 | 0:1dadb580b75f | 35 | void turnLeft(float time) |
aschwartz44 | 0:1dadb580b75f | 36 | { |
aschwartz44 | 0:1dadb580b75f | 37 | leftWheel.speed(-0.6); |
aschwartz44 | 0:1dadb580b75f | 38 | rightWheel.speed(0.6); |
aschwartz44 | 0:1dadb580b75f | 39 | wait(time); |
aschwartz44 | 0:1dadb580b75f | 40 | leftWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 41 | rightWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 42 | } |
aschwartz44 | 0:1dadb580b75f | 43 | |
aschwartz44 | 0:1dadb580b75f | 44 | void turnRight(float time) |
aschwartz44 | 0:1dadb580b75f | 45 | { |
aschwartz44 | 0:1dadb580b75f | 46 | leftWheel.speed(0.6); |
aschwartz44 | 0:1dadb580b75f | 47 | rightWheel.speed(-0.6); |
aschwartz44 | 0:1dadb580b75f | 48 | wait(time); |
aschwartz44 | 0:1dadb580b75f | 49 | leftWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 50 | rightWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 51 | } |
aschwartz44 | 0:1dadb580b75f | 52 | |
aschwartz44 | 0:1dadb580b75f | 53 | int main() |
aschwartz44 | 0:1dadb580b75f | 54 | { |
aschwartz44 | 0:1dadb580b75f | 55 | led1 = 0; |
aschwartz44 | 0:1dadb580b75f | 56 | led2 = 0; |
aschwartz44 | 0:1dadb580b75f | 57 | led3 = 0; |
aschwartz44 | 0:1dadb580b75f | 58 | led4 = 0; |
aschwartz44 | 0:1dadb580b75f | 59 | leftWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 60 | rightWheel.speed(0.0); |
aschwartz44 | 0:1dadb580b75f | 61 | |
aschwartz44 | 0:1dadb580b75f | 62 | while (1) |
aschwartz44 | 0:1dadb580b75f | 63 | { |
aschwartz44 | 0:1dadb580b75f | 64 | if (fwd) |
aschwartz44 | 0:1dadb580b75f | 65 | { |
aschwartz44 | 0:1dadb580b75f | 66 | led2 = 1; |
aschwartz44 | 0:1dadb580b75f | 67 | led3 = 1; |
aschwartz44 | 0:1dadb580b75f | 68 | moveForward(0.2); |
aschwartz44 | 0:1dadb580b75f | 69 | led2 = 0; |
aschwartz44 | 0:1dadb580b75f | 70 | led3 = 0; |
aschwartz44 | 0:1dadb580b75f | 71 | } |
aschwartz44 | 0:1dadb580b75f | 72 | if (rev) |
aschwartz44 | 0:1dadb580b75f | 73 | { |
aschwartz44 | 0:1dadb580b75f | 74 | led1 = 1; |
aschwartz44 | 0:1dadb580b75f | 75 | led4 = 1; |
aschwartz44 | 0:1dadb580b75f | 76 | moveBackward(0.2); |
aschwartz44 | 0:1dadb580b75f | 77 | led1 = 0; |
aschwartz44 | 0:1dadb580b75f | 78 | led4 = 0; |
aschwartz44 | 0:1dadb580b75f | 79 | } |
aschwartz44 | 0:1dadb580b75f | 80 | if (turnL) |
aschwartz44 | 0:1dadb580b75f | 81 | { |
aschwartz44 | 0:1dadb580b75f | 82 | led1 = 1; |
aschwartz44 | 0:1dadb580b75f | 83 | led2 = 1; |
aschwartz44 | 0:1dadb580b75f | 84 | turnLeft(0.2); |
aschwartz44 | 0:1dadb580b75f | 85 | led1 = 0; |
aschwartz44 | 0:1dadb580b75f | 86 | led2 = 0; |
aschwartz44 | 0:1dadb580b75f | 87 | } |
aschwartz44 | 0:1dadb580b75f | 88 | if (turnR) |
aschwartz44 | 0:1dadb580b75f | 89 | { |
aschwartz44 | 0:1dadb580b75f | 90 | led3 = 1; |
aschwartz44 | 0:1dadb580b75f | 91 | led4 = 1; |
aschwartz44 | 0:1dadb580b75f | 92 | turnRight(0.2); |
aschwartz44 | 0:1dadb580b75f | 93 | led3 = 0; |
aschwartz44 | 0:1dadb580b75f | 94 | led4 = 0; |
aschwartz44 | 0:1dadb580b75f | 95 | } |
aschwartz44 | 0:1dadb580b75f | 96 | } |
aschwartz44 | 0:1dadb580b75f | 97 | } |