This is some awesome robot code

Dependencies:   mbed-rtos mbed QEI

Fork of ICRSEurobot13 by Thomas Branch

Revision:
50:937e860f4621
Parent:
45:77cf6375348a
--- a/Sensors/Colour/Colour.h	Fri Apr 12 21:07:00 2013 +0000
+++ b/Sensors/Colour/Colour.h	Fri Apr 12 21:26:02 2013 +0000
@@ -1,51 +1,56 @@
 
 // Eurobot13 Colour.h
-
-//red led use 45ohm
-//blue led use 10ohm
+#ifndef COLOUR_H
+#define COLOUR_H
 
 #include "mbed.h"
+#include "globals.h"
+#include "math.h"
 
-enum ColourEnum {BLUE, RED, WHITE, INCONCLUSIVE, BUG};
+#define BUFF_SIZE 10
+#define SNR_THRESHOLD_DB 4
+
+#define UPPERARM_CORRECTION 2.310f
+#define LOWERARM_CORRECTION 1.000f
+
+
+enum ColourEnum {BLUE=0, RED, WHITE, BLACK};
+enum ArmEnum {UPPER=0, LOWER};
 
 class Colour{
-private:
-    DigitalOut blue;   float bavg, bstdev;
-    DigitalOut red;    float ravg, rstdev; 
-    AnalogIn pt;
-    
 public:
-    Colour(PinName bluePin, PinName redPin, PinName phototransistorPin)
-        : blue(bluePin)
-        , red (redPin)
-        , pt (phototransistorPin)
-        {
-        LedsOff();
-    }
 
-    void Calibrate(){
-        ReadLed(blue, bavg, bstdev);
-        ReadLed( red, ravg, rstdev);
-    }
-        
-    ColourEnum getColour(){
-        bool blueb = isColour(blue, bavg, bstdev)
-            , redb = isColour( red, ravg, rstdev);
-                  
-        if      ( blueb &&  redb)
-                    {return WHITE;}
-        else if ( blueb && !redb)
-                    {return BLUE;}
-        else if (!blueb &&  redb)
-                    {return RED;}
-        else if (!blueb && !redb)
-                    {return INCONCLUSIVE;} 
-        return BUG;            
-    }
+    Colour(
+    PinName blue_led, 
+    PinName red_led,
+    PinName pt,
+    ArmEnum arm);
+    
+    ColourEnum getColour();
+
 
 private:
-    void LedsOff(){blue = 0; red = 0;}
-    void ReadLed (DigitalOut &led, float &avg, float &stdev, const int measureNum = 25); // Colour.cpp
-    bool isColour(DigitalOut &led, const float &avg, const float &stdev, const float numstddev = 2); // Colour.cpp
+    Ticker ticker;
+    DigitalOut blue_led;
+    DigitalOut red_led;
+    AnalogIn pt;
+    ArmEnum arm;
+    
+    float red_correction_factor;
+    float colour;
+    float SNR;
+    void Blink();
     
-};
\ No newline at end of file
+    int togglecolour;
+    float blue;
+    float blue_buff[BUFF_SIZE];
+    float red;
+    float red_buff[BUFF_SIZE];
+    float noise;
+    float noise_buff[BUFF_SIZE];
+    
+    int buff_pointer;    
+    
+};
+
+#endif
\ No newline at end of file