Object Avoidance Program

Dependencies:   4DGL-uLCD-SE Motordriver mbed

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?

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