Target code for 4180 Project

Dependencies:   Motor mbed

Committer:
nini1294
Date:
Sun Dec 11 22:15:16 2016 +0000
Revision:
0:6bd3fec95c53
Initial Commit

Who changed what in which revision?

UserRevisionLine numberNew 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 }