ICRS Eurobot 2013

Dependencies:   mbed mbed-rtos Servo QEI

Committer:
twighk
Date:
Wed Apr 03 17:54:53 2013 +0000
Revision:
4:1be0f6c6ceae
Parent:
3:717de74f6ebd
Child:
5:56a5fdd373c9
State on 3rd of april

Who changed what in which revision?

UserRevisionLine numberNew contents of line
twighk 3:717de74f6ebd 1
twighk 3:717de74f6ebd 2 // Eurobot13 Colour.h
twighk 3:717de74f6ebd 3
twighk 3:717de74f6ebd 4 #include "mbed.h"
twighk 3:717de74f6ebd 5 #include "Led.h"
twighk 3:717de74f6ebd 6 #include "Phototransistor.h"
twighk 3:717de74f6ebd 7
twighk 3:717de74f6ebd 8 enum ColourEnum {BLUE, RED, WHITE, INCONCLUSIVE, BUG};
twighk 3:717de74f6ebd 9
twighk 3:717de74f6ebd 10 class Colour{
twighk 3:717de74f6ebd 11 private:
twighk 3:717de74f6ebd 12 Led blue; float bavg, bstdev;
twighk 3:717de74f6ebd 13 Led red; float ravg, rstdev;
twighk 3:717de74f6ebd 14 Phototransistor pt;
twighk 3:717de74f6ebd 15
twighk 3:717de74f6ebd 16 public:
twighk 3:717de74f6ebd 17 Colour(PinName bluePin, PinName redPin, PinName phototransistorPin)
twighk 3:717de74f6ebd 18 : blue(bluePin)
twighk 3:717de74f6ebd 19 , red (redPin)
twighk 3:717de74f6ebd 20 , pt (phototransistorPin)
twighk 3:717de74f6ebd 21 {
twighk 3:717de74f6ebd 22 LedsOff();
twighk 3:717de74f6ebd 23 }
twighk 3:717de74f6ebd 24
twighk 3:717de74f6ebd 25 void Calibrate(){
twighk 3:717de74f6ebd 26 ReadLed(blue, bavg, bstdev);
twighk 3:717de74f6ebd 27 ReadLed( red, ravg, rstdev);
twighk 3:717de74f6ebd 28 }
twighk 3:717de74f6ebd 29
twighk 3:717de74f6ebd 30 ColourEnum getColour(){
twighk 3:717de74f6ebd 31 bool blueb = isColour(blue, bavg, bstdev)
twighk 3:717de74f6ebd 32 , redb = isColour( red, ravg, rstdev);
twighk 3:717de74f6ebd 33
twighk 3:717de74f6ebd 34 if ( blueb && redb)
twighk 3:717de74f6ebd 35 {return WHITE;}
twighk 3:717de74f6ebd 36 else if ( blueb && !redb)
twighk 3:717de74f6ebd 37 {return BLUE;}
twighk 3:717de74f6ebd 38 else if (!blueb && redb)
twighk 3:717de74f6ebd 39 {return RED;}
twighk 3:717de74f6ebd 40 else if (!blueb && !redb)
twighk 3:717de74f6ebd 41 {return INCONCLUSIVE;}
twighk 3:717de74f6ebd 42 return BUG;
twighk 3:717de74f6ebd 43 }
twighk 3:717de74f6ebd 44
twighk 3:717de74f6ebd 45 private:
twighk 3:717de74f6ebd 46 void LedsOff(){blue.off(); red.off();}
twighk 4:1be0f6c6ceae 47 void ReadLed (Led &led, float &avg, float &stdev, const int measureNum = 25); // Colour.cpp
twighk 4:1be0f6c6ceae 48 bool isColour(Led &led, const float &avg, const float &stdev, const float numstddev = 2); // Colour.cpp
twighk 3:717de74f6ebd 49
twighk 3:717de74f6ebd 50 };