Object Avoidance Program
Dependencies: 4DGL-uLCD-SE Motordriver mbed
main.cpp@4:1c83cabcd6f8, 2014-04-29 (annotated)
- Committer:
- rokash000
- Date:
- Tue Apr 29 22:18:25 2014 +0000
- Revision:
- 4:1c83cabcd6f8
- Parent:
- 3:8af20d0242b2
- Child:
- 5:50887f863c01
Front isn't working. Left and Right sensors aren't working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rokash000 | 0:eb26279eeb24 | 1 | |
rokash000 | 0:eb26279eeb24 | 2 | #include "mbed.h" |
rokash000 | 0:eb26279eeb24 | 3 | #include "motordriver.h" |
rokash000 | 0:eb26279eeb24 | 4 | //#include "SHARPIR.h" |
rokash000 | 0:eb26279eeb24 | 5 | #include "uLCD_4DGL.h" |
rokash000 | 0:eb26279eeb24 | 6 | |
rokash000 | 0:eb26279eeb24 | 7 | Motor mA(p22, p6, p5, 1); // pwm, fwd, rev |
rokash000 | 0:eb26279eeb24 | 8 | Motor mB(p23, p8, p7, 1); // pwm, fwd, rev |
rokash000 | 0:eb26279eeb24 | 9 | |
rokash000 | 0:eb26279eeb24 | 10 | |
rokash000 | 0:eb26279eeb24 | 11 | Serial pc(USBTX, USBRX); // tx, rx |
rokash000 | 0:eb26279eeb24 | 12 | DigitalOut led_back(p16); // test led for Back_sensor |
rokash000 | 0:eb26279eeb24 | 13 | DigitalOut led_left(p15); // test led for Back_sensor |
rokash000 | 0:eb26279eeb24 | 14 | DigitalOut led_right(p14); // test led for Back_sensor |
rokash000 | 0:eb26279eeb24 | 15 | DigitalOut led_front(p13); // test led for Back_sensor |
rokash000 | 0:eb26279eeb24 | 16 | |
rokash000 | 0:eb26279eeb24 | 17 | AnalogIn irBack_ain(p18); |
rokash000 | 0:eb26279eeb24 | 18 | AnalogIn irFront_ain(p17); |
rokash000 | 0:eb26279eeb24 | 19 | AnalogIn irLeft_ain(p20); |
rokash000 | 0:eb26279eeb24 | 20 | AnalogIn irRight_ain(p19); |
rokash000 | 0:eb26279eeb24 | 21 | |
rokash000 | 0:eb26279eeb24 | 22 | //SHARPIR sensor_back(p18); //the output of the sharpIR sensor is connected to the MBEDs pin 10. |
rokash000 | 0:eb26279eeb24 | 23 | |
rokash000 | 0:eb26279eeb24 | 24 | //uLCD_4DGL uLCD(p28, p27, p29); // create a global lcd object |
rokash000 | 0:eb26279eeb24 | 25 | |
rokash000 | 0:eb26279eeb24 | 26 | //speed => 1 = forward, -1 = reverse ... range from -1 to 1 |
rokash000 | 0:eb26279eeb24 | 27 | |
rokash000 | 0:eb26279eeb24 | 28 | int main() { |
rokash000 | 0:eb26279eeb24 | 29 | //uLCD.cls(); |
rokash000 | 0:eb26279eeb24 | 30 | float backsensor = 0.0; |
rokash000 | 0:eb26279eeb24 | 31 | float frontsensor = 0.0; |
rokash000 | 0:eb26279eeb24 | 32 | float leftsensor = 0.0; |
rokash000 | 0:eb26279eeb24 | 33 | float rightsensor = 0.0; |
rokash000 | 0:eb26279eeb24 | 34 | int sensor = 0; |
rokash000 | 0:eb26279eeb24 | 35 | while(1){ |
rokash000 | 0:eb26279eeb24 | 36 | |
rokash000 | 0:eb26279eeb24 | 37 | |
rokash000 | 0:eb26279eeb24 | 38 | |
rokash000 | 0:eb26279eeb24 | 39 | |
rokash000 | 0:eb26279eeb24 | 40 | |
rokash000 | 0:eb26279eeb24 | 41 | //float backsensor = sensor_back.cm(); |
rokash000 | 0:eb26279eeb24 | 42 | |
rokash000 | 0:eb26279eeb24 | 43 | backsensor = irBack_ain * 100; |
rokash000 | 0:eb26279eeb24 | 44 | // pc.printf("FRONT Sensor is: %f \n", backsensor); |
rokash000 | 0:eb26279eeb24 | 45 | frontsensor = irFront_ain * 100; |
rokash000 | 0:eb26279eeb24 | 46 | leftsensor = irLeft_ain * 100; |
rokash000 | 0:eb26279eeb24 | 47 | rightsensor = irRight_ain * 100; |
rokash000 | 0:eb26279eeb24 | 48 | //pc.printf("Front Sensor is: %f \n", frontsensor); |
rokash000 | 0:eb26279eeb24 | 49 | // pc.printf("Left Sensor is: %f \n", leftsensor); |
rokash000 | 0:eb26279eeb24 | 50 | // pc.printf("Right Sensor is: %f \n", rightsensor); |
rokash000 | 0:eb26279eeb24 | 51 | // |
rokash000 | 0:eb26279eeb24 | 52 | if((frontsensor > 52)&&(frontsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 53 | sensor = 2;} |
rokash000 | 4:1c83cabcd6f8 | 54 | else if((backsensor > 52)&&(backsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 55 | sensor = 3;} |
rokash000 | 4:1c83cabcd6f8 | 56 | else if((leftsensor > 52)&&(leftsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 57 | sensor = 1;} |
rokash000 | 4:1c83cabcd6f8 | 58 | else if((rightsensor > 52)&&(rightsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 59 | sensor = 0;} |
rokash000 | 4:1c83cabcd6f8 | 60 | |
rokash000 | 4:1c83cabcd6f8 | 61 | |
rokash000 | 4:1c83cabcd6f8 | 62 | switch(sensor) |
rokash000 | 4:1c83cabcd6f8 | 63 | { |
rokash000 | 4:1c83cabcd6f8 | 64 | case 0: //Right |
rokash000 | 4:1c83cabcd6f8 | 65 | mA.speed(.6); |
rokash000 | 4:1c83cabcd6f8 | 66 | mB.speed(.9); |
rokash000 | 4:1c83cabcd6f8 | 67 | led_right = 1; |
rokash000 | 4:1c83cabcd6f8 | 68 | break; |
rokash000 | 4:1c83cabcd6f8 | 69 | case 1: // Left |
rokash000 | 4:1c83cabcd6f8 | 70 | mA.speed(.9); |
rokash000 | 4:1c83cabcd6f8 | 71 | mB.speed(.6); |
rokash000 | 4:1c83cabcd6f8 | 72 | led_left = 1; |
rokash000 | 4:1c83cabcd6f8 | 73 | break; |
rokash000 | 4:1c83cabcd6f8 | 74 | case 2: // Front |
rokash000 | 4:1c83cabcd6f8 | 75 | // mA.stop(0.5); |
rokash000 | 4:1c83cabcd6f8 | 76 | // mB.stop(0.5); |
rokash000 | 4:1c83cabcd6f8 | 77 | mA.speed(-1); |
rokash000 | 4:1c83cabcd6f8 | 78 | mB.speed(-1); |
rokash000 | 4:1c83cabcd6f8 | 79 | led_front = 1; |
rokash000 | 4:1c83cabcd6f8 | 80 | //mA.stop(0.5); |
rokash000 | 4:1c83cabcd6f8 | 81 | // mB.stop(0.5); |
rokash000 | 3:8af20d0242b2 | 82 | |
rokash000 | 4:1c83cabcd6f8 | 83 | mA.speed(.2); |
rokash000 | 4:1c83cabcd6f8 | 84 | mB.speed(.2); |
rokash000 | 4:1c83cabcd6f8 | 85 | wait(0.5); |
rokash000 | 4:1c83cabcd6f8 | 86 | break; |
rokash000 | 4:1c83cabcd6f8 | 87 | case 3: // Back// |
rokash000 | 4:1c83cabcd6f8 | 88 | // mA.speed(.4); |
rokash000 | 4:1c83cabcd6f8 | 89 | // mB.speed(.4); |
rokash000 | 4:1c83cabcd6f8 | 90 | // wait(0.5); |
rokash000 | 4:1c83cabcd6f8 | 91 | // mA.stop(0.5); |
rokash000 | 4:1c83cabcd6f8 | 92 | // mB.stop(0.5); |
rokash000 | 4:1c83cabcd6f8 | 93 | mA.speed(.7); |
rokash000 | 4:1c83cabcd6f8 | 94 | mB.speed(.7); |
rokash000 | 4:1c83cabcd6f8 | 95 | led_back = 1; |
rokash000 | 4:1c83cabcd6f8 | 96 | break; |
rokash000 | 4:1c83cabcd6f8 | 97 | default :// |
rokash000 | 4:1c83cabcd6f8 | 98 | // mA.speed(.5); |
rokash000 | 4:1c83cabcd6f8 | 99 | // mB.speed(.5); |
rokash000 | 4:1c83cabcd6f8 | 100 | // wait(0.5); |
rokash000 | 4:1c83cabcd6f8 | 101 | // mA.stop(0.3); |
rokash000 | 4:1c83cabcd6f8 | 102 | // mB.stop(0.3); |
rokash000 | 4:1c83cabcd6f8 | 103 | mA.speed(0.7); |
rokash000 | 4:1c83cabcd6f8 | 104 | mB.speed(0.7); |
rokash000 | 4:1c83cabcd6f8 | 105 | led_left = 0; |
rokash000 | 4:1c83cabcd6f8 | 106 | led_back = 0; |
rokash000 | 4:1c83cabcd6f8 | 107 | led_front = 0; |
rokash000 | 4:1c83cabcd6f8 | 108 | led_right = 0; |
rokash000 | 4:1c83cabcd6f8 | 109 | break; |
rokash000 | 1:ab45b552644b | 110 | } |
rokash000 | 4:1c83cabcd6f8 | 111 | //led_left = 0; |
rokash000 | 4:1c83cabcd6f8 | 112 | //led_back = 0; |
rokash000 | 4:1c83cabcd6f8 | 113 | //led_front = 0; |
rokash000 | 4:1c83cabcd6f8 | 114 | //led_right = 0; |
rokash000 | 4:1c83cabcd6f8 | 115 | sensor = 4; //DEFAULT CONDITION |
rokash000 | 4:1c83cabcd6f8 | 116 | // Back Sensor |
rokash000 | 4:1c83cabcd6f8 | 117 | // if((backsensor > 52)&&(backsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 118 | // mA.speed(.8); |
rokash000 | 4:1c83cabcd6f8 | 119 | // mB.speed(.8); |
rokash000 | 4:1c83cabcd6f8 | 120 | // led_back = 1; |
rokash000 | 4:1c83cabcd6f8 | 121 | // |
rokash000 | 4:1c83cabcd6f8 | 122 | // } |
rokash000 | 4:1c83cabcd6f8 | 123 | // // front Sensor |
rokash000 | 4:1c83cabcd6f8 | 124 | // else if((frontsensor > 52)&&(frontsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 125 | // mA.speed(-1); |
rokash000 | 4:1c83cabcd6f8 | 126 | // mB.speed(-1); |
rokash000 | 4:1c83cabcd6f8 | 127 | // led_front = 1; |
rokash000 | 4:1c83cabcd6f8 | 128 | // |
rokash000 | 4:1c83cabcd6f8 | 129 | // }else |
rokash000 | 4:1c83cabcd6f8 | 130 | // // right Sensor |
rokash000 | 4:1c83cabcd6f8 | 131 | // if((rightsensor > 52)&&(rightsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 132 | // mA.speed(.4); |
rokash000 | 4:1c83cabcd6f8 | 133 | // mB.speed(.6); |
rokash000 | 4:1c83cabcd6f8 | 134 | // led_right = 1; |
rokash000 | 4:1c83cabcd6f8 | 135 | // |
rokash000 | 4:1c83cabcd6f8 | 136 | // }else // Left Sensor |
rokash000 | 4:1c83cabcd6f8 | 137 | // if((leftsensor > 52)&&(leftsensor < 100)){ |
rokash000 | 4:1c83cabcd6f8 | 138 | // mA.speed(.6); |
rokash000 | 4:1c83cabcd6f8 | 139 | // mB.speed(.4); |
rokash000 | 4:1c83cabcd6f8 | 140 | // led_left = 1; |
rokash000 | 4:1c83cabcd6f8 | 141 | // |
rokash000 | 4:1c83cabcd6f8 | 142 | // }else{ |
rokash000 | 4:1c83cabcd6f8 | 143 | // mA.speed(1); |
rokash000 | 4:1c83cabcd6f8 | 144 | // mB.speed(1); |
rokash000 | 4:1c83cabcd6f8 | 145 | // led_left = 0; |
rokash000 | 4:1c83cabcd6f8 | 146 | // led_back = 0; |
rokash000 | 4:1c83cabcd6f8 | 147 | // led_front = 0; |
rokash000 | 4:1c83cabcd6f8 | 148 | // led_right = 0; |
rokash000 | 4:1c83cabcd6f8 | 149 | // } |
rokash000 | 4:1c83cabcd6f8 | 150 | |
rokash000 | 4:1c83cabcd6f8 | 151 | |
rokash000 | 4:1c83cabcd6f8 | 152 | wait(0.1); |
rokash000 | 4:1c83cabcd6f8 | 153 | } |
rokash000 | 0:eb26279eeb24 | 154 | } |