Richard Li
/
4180_robot_thing
Mbed portion of 4180 project
main.cpp@2:ed57ee381f8f, 2019-12-05 (annotated)
- Committer:
- rli361
- Date:
- Thu Dec 05 17:12:10 2019 +0000
- Revision:
- 2:ed57ee381f8f
- Parent:
- 1:e1f799db0b10
revised turning speeds
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
4180_1 | 0:4f64dd8a2ca3 | 1 | #include "mbed.h" |
rli361 | 1:e1f799db0b10 | 2 | #include "Motor.h" |
rli361 | 1:e1f799db0b10 | 3 | |
rli361 | 1:e1f799db0b10 | 4 | Motor left(p21, p23, p24); // Left motor when looking from the front (pwm, fwd, rev) |
rli361 | 1:e1f799db0b10 | 5 | Motor right(p22, p25, p26); // Right motor when looking from the front (pwm, fwd, rev) |
4180_1 | 0:4f64dd8a2ca3 | 6 | RawSerial pc(USBTX, USBRX); |
rli361 | 1:e1f799db0b10 | 7 | RawSerial dev(p13, p14); |
4180_1 | 0:4f64dd8a2ca3 | 8 | DigitalOut led1(LED1); |
4180_1 | 0:4f64dd8a2ca3 | 9 | DigitalOut led4(LED4); |
rli361 | 1:e1f799db0b10 | 10 | volatile char state = 's'; |
4180_1 | 0:4f64dd8a2ca3 | 11 | |
4180_1 | 0:4f64dd8a2ca3 | 12 | void dev_recv() |
4180_1 | 0:4f64dd8a2ca3 | 13 | { |
4180_1 | 0:4f64dd8a2ca3 | 14 | led1 = !led1; |
4180_1 | 0:4f64dd8a2ca3 | 15 | while(dev.readable()) { |
rli361 | 1:e1f799db0b10 | 16 | char new_char = dev.getc(); |
rli361 | 1:e1f799db0b10 | 17 | state = new_char; |
4180_1 | 0:4f64dd8a2ca3 | 18 | } |
4180_1 | 0:4f64dd8a2ca3 | 19 | } |
4180_1 | 0:4f64dd8a2ca3 | 20 | |
4180_1 | 0:4f64dd8a2ca3 | 21 | void pc_recv() |
4180_1 | 0:4f64dd8a2ca3 | 22 | { |
4180_1 | 0:4f64dd8a2ca3 | 23 | led4 = !led4; |
4180_1 | 0:4f64dd8a2ca3 | 24 | while(pc.readable()) { |
4180_1 | 0:4f64dd8a2ca3 | 25 | dev.putc(pc.getc()); |
4180_1 | 0:4f64dd8a2ca3 | 26 | } |
4180_1 | 0:4f64dd8a2ca3 | 27 | } |
4180_1 | 0:4f64dd8a2ca3 | 28 | |
4180_1 | 0:4f64dd8a2ca3 | 29 | int main() |
4180_1 | 0:4f64dd8a2ca3 | 30 | { |
4180_1 | 0:4f64dd8a2ca3 | 31 | pc.baud(115200); |
rli361 | 1:e1f799db0b10 | 32 | dev.baud(38400); |
4180_1 | 0:4f64dd8a2ca3 | 33 | |
rli361 | 1:e1f799db0b10 | 34 | //pc.attach(&pc_recv, Serial::RxIrq); |
4180_1 | 0:4f64dd8a2ca3 | 35 | dev.attach(&dev_recv, Serial::RxIrq); |
4180_1 | 0:4f64dd8a2ca3 | 36 | |
4180_1 | 0:4f64dd8a2ca3 | 37 | while(1) { |
rli361 | 1:e1f799db0b10 | 38 | //pc.putc(state); |
rli361 | 1:e1f799db0b10 | 39 | switch(state){ |
rli361 | 1:e1f799db0b10 | 40 | case 'f': |
rli361 | 1:e1f799db0b10 | 41 | left.speed(.5); |
rli361 | 1:e1f799db0b10 | 42 | right.speed(-0.5); |
rli361 | 1:e1f799db0b10 | 43 | break; |
rli361 | 1:e1f799db0b10 | 44 | case 'b': |
rli361 | 1:e1f799db0b10 | 45 | left.speed(-0.5); |
rli361 | 1:e1f799db0b10 | 46 | right.speed(0.5); |
rli361 | 1:e1f799db0b10 | 47 | break; |
rli361 | 1:e1f799db0b10 | 48 | case 'r': |
rli361 | 2:ed57ee381f8f | 49 | left.speed(-0.35); |
rli361 | 2:ed57ee381f8f | 50 | right.speed(-0.35); |
rli361 | 1:e1f799db0b10 | 51 | break; |
rli361 | 1:e1f799db0b10 | 52 | case 'l': |
rli361 | 2:ed57ee381f8f | 53 | left.speed(0.35); |
rli361 | 2:ed57ee381f8f | 54 | right.speed(0.35); |
rli361 | 1:e1f799db0b10 | 55 | break; |
rli361 | 1:e1f799db0b10 | 56 | default: |
rli361 | 1:e1f799db0b10 | 57 | left.speed(0.0); |
rli361 | 1:e1f799db0b10 | 58 | right.speed(0.0); |
rli361 | 1:e1f799db0b10 | 59 | |
rli361 | 1:e1f799db0b10 | 60 | } |
rli361 | 1:e1f799db0b10 | 61 | wait(0.5); |
4180_1 | 0:4f64dd8a2ca3 | 62 | } |
4180_1 | 0:4f64dd8a2ca3 | 63 | } |