Basic motor code
Dependencies: Motordriver mbed HALLFX_ENCODER Servo
Diff: main.cpp
- Revision:
- 6:235548599e79
- Parent:
- 5:7572f73a78f3
- Child:
- 7:6ef9b0aab972
--- a/main.cpp Sat Apr 21 20:09:35 2018 +0000 +++ b/main.cpp Sat Apr 21 21:22:43 2018 +0000 @@ -2,10 +2,14 @@ #include "motordriver.h" #include "HALLFX_ENCODER.h" +#include <string> + #define SPEED 0.2 #define TICKSPERREV 390 #define DISTPERREV 8.25 // 8.25 inches per revolution #define TicksPerDeg 2.756 + +using namespace std; Motor right(p23,p6,p5, 1); // pwm, fwd, rev Motor left(p21, p7, p8, 1); // pwm, fwd, rev @@ -13,19 +17,23 @@ HALLFX_ENCODER leftEnc(p15); HALLFX_ENCODER rightEnc(p16); -RawSerial pc(USBTX, USBRX); -RawSerial dev(p28,p27); +RawSerial dev(p13,p14); +RawSerial pc(USBTX, USBRX); DigitalOut led1(LED1); DigitalOut led4(LED4); +int count = 0; + void dev_recv() { + count++; led1 = !led1; while(dev.readable()) { pc.putc(dev.getc()); } + pc.printf("%d", count); } - + void pc_recv() { led4 = !led4; @@ -34,6 +42,27 @@ } } +string command; + +void blue_recv() +{ + led1 = !led1; + while(dev.readable()) { + char letter = (char) dev.getc(); + command += letter; + //strcat(command, &letter); + //pc.putc(dev.getc()); + } + pc.printf("%s", command); + + string circle = "circle"; + if (circle.compare(0,6,command) == 0) { + dev.puts("Recognized word circle"); + } else { + dev.puts("Did not recognize command"); + } +} + void stop() { right.speed(0.0); left.speed(0.0); @@ -100,9 +129,9 @@ int main() { pc.baud(9600); dev.baud(9600); - + pc.attach(&pc_recv, Serial::RxIrq); - dev.attach(&dev_recv, Serial::RxIrq); + dev.attach(&blue_recv, Serial::RxIrq); while(1) { sleep();