ICRS Eurobot 2013

Dependencies:   mbed mbed-rtos Servo QEI

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Colour.cpp Source File

Colour.cpp

00001 
00002 // Eurobot13 Colour.cpp
00003 
00004 #include "Colour.h"
00005 
00006 void Colour::ReadLed (DigitalOut &led, float &avg, float &stdev, const int measureNum){
00007     LedsOff();
00008     led = 1;
00009     double x = 0, x2 = 0;
00010     for (int i = measureNum; i != 0; i--) {
00011         float v = pt.read();
00012         x += v;
00013         x2+= v*v;
00014     }
00015     avg = x / measureNum;
00016     stdev = sqrt(x2 / measureNum - avg*avg);
00017     LedsOff();
00018     //pc.printf("Phototransistor Analog is: %f\t%f\n\r", avg, stdev);
00019 }
00020 
00021 bool Colour::isColour(DigitalOut &led, const float &avg, const float &stdev, const float numstddev){
00022     float avg2, stdev2;
00023     ReadLed(led, avg2, stdev2);
00024 
00025     if (avg + numstddev*stdev < avg2 - numstddev*stdev2) {
00026         return true;
00027     } else {
00028         return false;
00029     }
00030 }