Colour sensors calibrated

Dependencies:   mbed-rtos mbed Servo QEI

Fork of ICRSEurobot13 by Thomas Branch

Committer:
madcowswe
Date:
Thu Apr 04 14:44:14 2013 +0000
Revision:
5:56a5fdd373c9
Parent:
4:1be0f6c6ceae
Child:
7:4340355261f9
Removed e stop button code, as power will be used through the button instead.

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