HI

Dependencies:   Motor TCS3472_I2C mbed

Revision:
0:1cbed7d36912
Child:
1:9eb8d4e6a719
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Apr 24 00:53:50 2015 +0000
@@ -0,0 +1,71 @@
+#include "mbed.h"       //includes this library for all mbed functions
+#include "TCS3472_I2C.h"        //includes the library for the RGB sensor
+#include "Motor.h"
+Motor R(p24, p25, p26);
+Motor L(p21, p22, p23);
+
+PwmOut RGBsensorLED(p22);       //established pin to power the LED on the sensor
+TCS3472_I2C RGBsensor(p9, p10);     //establishes pins for the RGB sensor.
+
+
+Serial pc(USBTX, USBRX);        //establishes a serial port in order to communicate with TeraTerm and LATLAB
+
+int main()      //starts the program
+{
+    int RGB_data[4];        //declares an array to store the data read from the RGB sensor
+    float PWMbrightness = 1.0;      //declares float for LED brightness
+
+    RGBsensor.enablePowerAndRGBC();     //enables RGB sensor
+    RGBsensor.setIntegrationTime(100);      //sets the intergration time of the RGB sensor
+    RGBsensorLED = PWMbrightness;       //set brightness of sensor LED
+    pc.baud(921600);        //sets the baud rate of the serial connection
+
+    while (1) {     //loops the program until is broken
+
+        int colorcount[3] = {0,0,0};      //establishes an array for the possible regions the car is in
+        int scan = 0;       //variable for for loop
+
+        for (scan=0; scan<10; scan+=1) {
+
+            RGBsensor.getAllColors(RGB_data);       //read data from sensor for red, green, and blue along with magnitude
+            
+            int light = RGB_data[0];        //sets a variable for the light data so I don't have to type that every time
+            int red = RGB_data[1];      //sets a variable for the red data so I don't have to type that every time
+            int green = RGB_data[2];        //sets a variable for the blue data so I don't have to type that every time
+            int blue = RGB_data[3];     //sets a variable for the green data so I don't have to type that every time
+
+            if ( (abs((1.6822*red + 15.609)-light) < 10) && (abs((4.2525*green - 37.993)-light) < 10) && (abs((6.5565*blue - 44.793 )-light) < 10) ) {
+                colorcount[0] += 1;     //car is in red
+                L.speed(0.0);
+                R.speed(0.2);
+            }
+            
+            if ( (abs((3.7757*red - 134.86)-light) < 10) && (abs((3.4282*green - 8.791 )-light) < 10) && (abs((2.5685*blue + 63.205)-light) < 10) ) {
+                colorcount[1] += 1;     //car is in blue
+                 R.speed(0.5);
+                 L.speed(0.5);
+            }
+            
+            if ( (abs((3.8225*red - 138.09)-light) < 10) && (abs((2.1032*green + 39.654)-light) < 10) && (abs((5.3619*blue - 2.7884)-light) < 10) ) {
+                colorcount[2] += 1;     //car is in green
+                L.speed(0.2);
+                R.speed(0.0);
+            }
+        }
+        if (colorcount[0] >= 7) {       //data reads in the red
+            pc.printf("Making a right turn. \n");        //print to tera term
+ 
+        }
+        if (colorcount[1] >= 7) {       //data reads in the blue
+            pc.printf("Driving straight. \n");        //print to tera term
+          
+        }
+        if (colorcount[2] >= 7) {       //data reads in the green
+            pc.printf("Making a left turn. \n");        //print to tera term
+           
+        }
+
+
+    }
+
+}
\ No newline at end of file