ES202 Final Project {Gettinger ThompsonSevcik Blas Lee} / Mbed 2 deprecated ES202FinalProject

Dependencies:   Motor Servo TCS3472_I2C mbed

Files at this revision

API Documentation at this revision

Comitter:
GettingerR
Date:
Mon Apr 27 20:24:55 2015 +0000
Child:
1:36239a679a31
Commit message:
Final Project Final Build;

Changed in this revision

Motor.lib Show annotated file Show diff for this revision Revisions of this file
Servo.lib Show annotated file Show diff for this revision Revisions of this file
TCS3472_I2C.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Motor.lib	Mon Apr 27 20:24:55 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/Motor/#f265e441bcd9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Mon Apr 27 20:24:55 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/Servo/#b186b23cf219
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TCS3472_I2C.lib	Mon Apr 27 20:24:55 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/karlmaxwell67/code/TCS3472_I2C/#6d5bb4ad7d6e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Apr 27 20:24:55 2015 +0000
@@ -0,0 +1,203 @@
+#include "mbed.h"
+#include "Motor.h"
+#include "Servo.h"
+#include "TCS3472_I2C.h"
+
+
+PwmOut LB(p22); // PWM out signal to power LED on the sensor
+TCS3472_I2C rgb_sensor( p9, p10 ); // Establish RGB sensor object
+Motor m(p25, p27, p28);
+Serial pc(USBTX, USBRX); //USB Port Declare
+AnalogIn sensorin(p20); //Analog Pin Declare
+AnalogIn photoin(p16); // photoresistor into pin 16
+AnalogIn photoin2(p18);
+AnalogIn photoin3(p17);
+Servo s1(p21);
+float distanceinches = 20;
+
+int main()
+{
+    pc.printf("starting...");
+    rgb_sensor.enablePowerAndRGBC(); // Enable RGB sensor
+    rgb_sensor.setIntegrationTime(100); // Set integration time of sensor
+    pc.baud(9600);//Port Parameters
+    pc.format(8, SerialBase::None, 1);
+
+    float volt = 0.0; // variable float
+    float volt2= 0.0;
+    float volt3= 0.0;
+    float PWMbrightness = 1.0; // declare a float specifying brightness of LED
+    int rgb_data[4]; // declare a 4 element array to store RGB sensor readings
+    float straight = .605;
+    float left = .755;
+    float right = .455;
+    float bleft = .455;
+    float manspeed = 0;
+    float bright = .755;
+    m.speed(0);//Stop Motor
+    s1 = straight;//Set Servo Straight Ahead
+    float motspeed = 0;
+    int tooclose = 0;
+    float sensorval = 0;
+    int distanceconversion = 0;//Set change for distance to ultra
+    wait(2);
+    int counter = 1;
+    motspeed = .25;
+    manspeed = .35;
+    m.speed(.25);
+    pc.printf("starting2");
+
+
+    while(tooclose<2) { //MAINPROGRAM
+
+
+        volt = photoin;
+        volt2= photoin2;
+        volt3= photoin3;
+
+        LB = PWMbrightness; // set brightness of sensor LED
+        rgb_sensor.getAllColors( rgb_data ); // read the sensor to get red, green, and blue color data along with overall brightness
+        //pc.printf( "red: %d, green: %d, blue: %d \n", rgb_data[1], rgb_data[2], rgb_data[3]);
+        s1 = straight;
+        m.speed(motspeed);
+        while(counter<=1) {
+            distanceinches=20;
+            counter = 2;
+        }
+
+        if(distanceinches>19) {
+            pc.printf("%4.3f     %d\n", distanceinches, tooclose);
+            if(rgb_data[1]>rgb_data[2] && rgb_data[1]>rgb_data[3]) {
+                m.speed(-.25);
+                s1 = bleft;
+                wait(.25);
+                while(rgb_data[1]>rgb_data[2] && rgb_data[1]>rgb_data[3]) {
+                    rgb_sensor.getAllColors( rgb_data );
+                    m.speed(-manspeed);
+                }
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+                wait(.4);
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
+                s1 = straight;
+                m.speed(manspeed);
+            }//end red if
+            else if(rgb_data[2]>rgb_data[1] && rgb_data[2]>rgb_data[3]) {
+                m.speed(-.25);
+                s1 = bright;
+                wait(.25);
+                while(rgb_data[2]>rgb_data[1] && rgb_data[2]>rgb_data[3]) {
+                    rgb_sensor.getAllColors( rgb_data );
+                    m.speed(-manspeed);
+                }
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+                wait(.4);
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
+                s1 = straight;
+                m.speed(manspeed);
+            }//end green if
+            else if(rgb_data[3] >= rgb_data[1] && rgb_data[3]>rgb_data[2]) {
+                //pc.printf("go straight\n");
+                m.speed(manspeed);
+                wait(.1);
+            }//end blue if
+            else {
+                //pc.printf("back up\n");
+                m.speed(-manspeed);
+                wait(.1);
+            }
+
+            //pc.printf("go straight");
+
+
+
+            sensorval = sensorin.read();//Read Sensor
+            distanceinches = (160750 * (sensorval*sensorval*sensorval) - 16325 * (sensorval*sensorval) + 1039 * sensorval - 4.6243) - distanceconversion;//Convert to inches
+            pc.printf("%4.3f     %d\n", distanceinches, tooclose);
+        } else {
+
+            if(rgb_data[1]>rgb_data[2] && rgb_data[1]>rgb_data[3]) {
+                m.speed(-.25);
+                s1 = bleft;
+                wait(.25);
+                while(rgb_data[1]>rgb_data[2] && rgb_data[1]>rgb_data[3]) {
+                    rgb_sensor.getAllColors( rgb_data );
+                    m.speed(-manspeed);
+                }
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+                wait(.4);
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
+                s1 = straight;
+                m.speed(manspeed);
+                wait(.2);
+            }//end red if
+            else if(rgb_data[1]>rgb_data[2] && rgb_data[1]>rgb_data[3]) {
+                m.speed(-.25);
+                s1 = bright;
+                wait(.25);
+                while(rgb_data[1]>rgb_data[2] && rgb_data[1]>rgb_data[3]) {
+                    rgb_sensor.getAllColors( rgb_data );
+                    m.speed(-manspeed);
+                }
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+                wait(.4);
+                //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
+                s1 = straight;
+                m.speed(manspeed);
+            }//end red if
+            else if(rgb_data[3] >= rgb_data[1] && rgb_data[3]>rgb_data[2]) {
+                if(volt>volt2 && volt>volt3 && volt>.025) {
+                    pc.printf("turn left");
+                    m.speed(-.5);
+                    s1 = bleft;
+                    wait(.25);
+                    m.speed(0);
+                    wait(.2);
+                    s1 = straight;
+                    wait(.2);
+                    sensorval = sensorin.read();//Read Sensor
+                    distanceinches = (160750 * (sensorval*sensorval*sensorval) - 16325 * (sensorval*sensorval) + 1039 * sensorval - 4.6243) - distanceconversion;//Convert to inches
+                    pc.printf("%4.3f     %d\n", distanceinches, tooclose);
+
+                } else if(volt2>volt && volt2>volt3 && volt2>.0002) {
+
+                    pc.printf("turn right");
+                    m.speed(-.5);
+                    s1 = bright;
+                    wait(.25);
+                    m.speed(0);
+                    wait(.2);
+                    s1 = straight;
+                    wait(.2);
+                    sensorval = sensorin.read();//Read Sensor
+                    distanceinches = (160750 * (sensorval*sensorval*sensorval) - 16325 * (sensorval*sensorval) + 1039 * sensorval - 4.6243) - distanceconversion;//Convert to inches
+                    pc.printf("%4.3f     %d\n", distanceinches, tooclose);
+
+
+                } else {
+
+                    pc.printf("go straight");
+                    m.speed(manspeed);
+                    wait(.2);
+                    sensorval = sensorin.read();//Read Sensor
+                    distanceinches = (160750 * (sensorval*sensorval*sensorval) - 16325 * (sensorval*sensorval) + 1039 * sensorval - 4.6243) - distanceconversion;//Convert to inches
+                    pc.printf("%4.3f     %d\n", distanceinches, tooclose);
+
+                }
+
+
+                sensorval = sensorin.read();//Read Sensor
+                distanceinches = (160750 * (sensorval*sensorval*sensorval) - 16325 * (sensorval*sensorval) + 1039 * sensorval - 4.6243) - distanceconversion;//Convert to inches
+                pc.printf("%4.3f     %d\n", distanceinches, tooclose);
+
+
+            }
+        }
+        if(distanceinches>10) { //If car far enough away
+            tooclose = 0;
+        } else {
+            tooclose = tooclose+1;
+        }
+    }
+
+    m.speed(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Apr 27 20:24:55 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/552587b429a1
\ No newline at end of file