Nishant Shah
/
4180-Project-Target
Target code for 4180 Project
main.cpp@0:6bd3fec95c53, 2016-12-11 (annotated)
- Committer:
- nini1294
- Date:
- Sun Dec 11 22:15:16 2016 +0000
- Revision:
- 0:6bd3fec95c53
Initial Commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nini1294 | 0:6bd3fec95c53 | 1 | #include "mbed.h" |
nini1294 | 0:6bd3fec95c53 | 2 | #include "Motor.h" |
nini1294 | 0:6bd3fec95c53 | 3 | #include "string" |
nini1294 | 0:6bd3fec95c53 | 4 | |
nini1294 | 0:6bd3fec95c53 | 5 | //AnalogIn light(p18); |
nini1294 | 0:6bd3fec95c53 | 6 | |
nini1294 | 0:6bd3fec95c53 | 7 | RawSerial pc(USBTX, USBRX); |
nini1294 | 0:6bd3fec95c53 | 8 | RawSerial dev(p9,p10); |
nini1294 | 0:6bd3fec95c53 | 9 | //DigitalOut led4(LED4); |
nini1294 | 0:6bd3fec95c53 | 10 | |
nini1294 | 0:6bd3fec95c53 | 11 | Motor m1(p21, p5, p6); |
nini1294 | 0:6bd3fec95c53 | 12 | Motor m2(p22, p7, p8); |
nini1294 | 0:6bd3fec95c53 | 13 | |
nini1294 | 0:6bd3fec95c53 | 14 | DigitalIn i2(p12); |
nini1294 | 0:6bd3fec95c53 | 15 | DigitalIn i3(p13); |
nini1294 | 0:6bd3fec95c53 | 16 | DigitalIn i4(p14); |
nini1294 | 0:6bd3fec95c53 | 17 | DigitalIn i5(p15); |
nini1294 | 0:6bd3fec95c53 | 18 | DigitalIn i6(p16); |
nini1294 | 0:6bd3fec95c53 | 19 | DigitalIn i7(p17); |
nini1294 | 0:6bd3fec95c53 | 20 | DigitalIn i8(p18); |
nini1294 | 0:6bd3fec95c53 | 21 | DigitalIn i9(p19); |
nini1294 | 0:6bd3fec95c53 | 22 | DigitalIn i10(p20); |
nini1294 | 0:6bd3fec95c53 | 23 | DigitalIn i11(p29); |
nini1294 | 0:6bd3fec95c53 | 24 | DigitalIn i12(p28); |
nini1294 | 0:6bd3fec95c53 | 25 | DigitalIn i13(p27); |
nini1294 | 0:6bd3fec95c53 | 26 | |
nini1294 | 0:6bd3fec95c53 | 27 | DigitalOut led1(LED1); |
nini1294 | 0:6bd3fec95c53 | 28 | DigitalOut led2(LED2); |
nini1294 | 0:6bd3fec95c53 | 29 | |
nini1294 | 0:6bd3fec95c53 | 30 | void dev_recv() |
nini1294 | 0:6bd3fec95c53 | 31 | { |
nini1294 | 0:6bd3fec95c53 | 32 | led1 = !led1; |
nini1294 | 0:6bd3fec95c53 | 33 | while(dev.readable()) { |
nini1294 | 0:6bd3fec95c53 | 34 | if(dev.getc() == 'm') { |
nini1294 | 0:6bd3fec95c53 | 35 | char xbuf[6]; |
nini1294 | 0:6bd3fec95c53 | 36 | char ybuf[6]; |
nini1294 | 0:6bd3fec95c53 | 37 | |
nini1294 | 0:6bd3fec95c53 | 38 | int ind = 0; |
nini1294 | 0:6bd3fec95c53 | 39 | char cur = dev.getc(); |
nini1294 | 0:6bd3fec95c53 | 40 | while(cur != ',') { |
nini1294 | 0:6bd3fec95c53 | 41 | xbuf[ind++] = cur; |
nini1294 | 0:6bd3fec95c53 | 42 | cur = dev.getc(); |
nini1294 | 0:6bd3fec95c53 | 43 | } |
nini1294 | 0:6bd3fec95c53 | 44 | xbuf[ind] = NULL; |
nini1294 | 0:6bd3fec95c53 | 45 | |
nini1294 | 0:6bd3fec95c53 | 46 | ind = 0; |
nini1294 | 0:6bd3fec95c53 | 47 | cur = dev.getc(); |
nini1294 | 0:6bd3fec95c53 | 48 | while(cur != '|') { |
nini1294 | 0:6bd3fec95c53 | 49 | ybuf[ind++] = cur; |
nini1294 | 0:6bd3fec95c53 | 50 | cur = dev.getc(); |
nini1294 | 0:6bd3fec95c53 | 51 | } |
nini1294 | 0:6bd3fec95c53 | 52 | ybuf[ind] = NULL; |
nini1294 | 0:6bd3fec95c53 | 53 | |
nini1294 | 0:6bd3fec95c53 | 54 | float x, y; |
nini1294 | 0:6bd3fec95c53 | 55 | x = (float)atof(xbuf); |
nini1294 | 0:6bd3fec95c53 | 56 | y = (float)atof(ybuf); |
nini1294 | 0:6bd3fec95c53 | 57 | |
nini1294 | 0:6bd3fec95c53 | 58 | pc.printf("%f, %f\n",x , y); |
nini1294 | 0:6bd3fec95c53 | 59 | |
nini1294 | 0:6bd3fec95c53 | 60 | if (x >= 0.1) { |
nini1294 | 0:6bd3fec95c53 | 61 | m1.speed( (y + x) ); |
nini1294 | 0:6bd3fec95c53 | 62 | m2.speed(y); |
nini1294 | 0:6bd3fec95c53 | 63 | // pc.printf("GREATER THAN %f, %f\n",(y + x) , y); |
nini1294 | 0:6bd3fec95c53 | 64 | } else if (x <= -0.1) { |
nini1294 | 0:6bd3fec95c53 | 65 | m1.speed(y); |
nini1294 | 0:6bd3fec95c53 | 66 | m2.speed( (y - x)); |
nini1294 | 0:6bd3fec95c53 | 67 | // pc.printf("LESS THAN %f, %f\n",y, (y - x)); |
nini1294 | 0:6bd3fec95c53 | 68 | } else { |
nini1294 | 0:6bd3fec95c53 | 69 | m1.speed(y); |
nini1294 | 0:6bd3fec95c53 | 70 | m2.speed(y); |
nini1294 | 0:6bd3fec95c53 | 71 | // pc.printf("%.2f, %.2f\n",x, y); |
nini1294 | 0:6bd3fec95c53 | 72 | } |
nini1294 | 0:6bd3fec95c53 | 73 | } |
nini1294 | 0:6bd3fec95c53 | 74 | } |
nini1294 | 0:6bd3fec95c53 | 75 | } |
nini1294 | 0:6bd3fec95c53 | 76 | |
nini1294 | 0:6bd3fec95c53 | 77 | int main() { |
nini1294 | 0:6bd3fec95c53 | 78 | dev.attach(&dev_recv, Serial::RxIrq); |
nini1294 | 0:6bd3fec95c53 | 79 | while(1) { |
nini1294 | 0:6bd3fec95c53 | 80 | // pc.printf("%f\n", i5.read()); |
nini1294 | 0:6bd3fec95c53 | 81 | if(i2 || i3 || i4 || i5 || i6 || i7 || i8 || i9 || i10 || i11 || i12 || i13) { |
nini1294 | 0:6bd3fec95c53 | 82 | dev.putc('1'); |
nini1294 | 0:6bd3fec95c53 | 83 | } |
nini1294 | 0:6bd3fec95c53 | 84 | led1 = i2 || i3 || i4 || i5 || i6 || i7 || i8 || i9 || i10 || i11 || i12 || i13; |
nini1294 | 0:6bd3fec95c53 | 85 | wait(0.5); |
nini1294 | 0:6bd3fec95c53 | 86 | } |
nini1294 | 0:6bd3fec95c53 | 87 | } |