Colour binning for Nespresso capsules using rgb_sensor (RGB LED & Photo Diode) - to detect flavour based on colour

Dependencies:   rgb_sensor_buffer

Dependents:   coffee_capsule_detection

Committer:
bjblazkowicz
Date:
Thu Jul 03 09:32:09 2014 +0000
Revision:
1:a6c13143b151
Parent:
0:8a18ceffce1b
Child:
3:4eefc032a319
Updated to latest rgb_sensor with low ADC frequency.; C++-ified detection code.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bjblazkowicz 0:8a18ceffce1b 1 #ifndef __DETECTION_H_
bjblazkowicz 0:8a18ceffce1b 2 #define __DETECTION_H__
bjblazkowicz 0:8a18ceffce1b 3
bjblazkowicz 1:a6c13143b151 4 #include <rgb_sensor.h>
bjblazkowicz 1:a6c13143b151 5
bjblazkowicz 1:a6c13143b151 6 #define DETECTION_VALUES (15)
bjblazkowicz 1:a6c13143b151 7
bjblazkowicz 1:a6c13143b151 8 struct Capsule {
bjblazkowicz 1:a6c13143b151 9 const char* name;
bjblazkowicz 1:a6c13143b151 10 double r, g, b;
bjblazkowicz 1:a6c13143b151 11 };
bjblazkowicz 1:a6c13143b151 12
bjblazkowicz 1:a6c13143b151 13 class RGB_Detection {
bjblazkowicz 0:8a18ceffce1b 14
bjblazkowicz 1:a6c13143b151 15 public:
bjblazkowicz 1:a6c13143b151 16 RGB_Detection(PinName red, PinName green, PinName blue, PinName adc);
bjblazkowicz 1:a6c13143b151 17 ~RGB_Detection(void);
bjblazkowicz 1:a6c13143b151 18 const char *run(void);
bjblazkowicz 1:a6c13143b151 19
bjblazkowicz 1:a6c13143b151 20 protected:
bjblazkowicz 1:a6c13143b151 21 int match_sample_to_capsule(TRGB& rgb_sample);
bjblazkowicz 1:a6c13143b151 22 const Capsule *read_capsule(void);
bjblazkowicz 1:a6c13143b151 23
bjblazkowicz 1:a6c13143b151 24 RGB_Sensor m_rgb;
bjblazkowicz 1:a6c13143b151 25 Capsule const *m_last_capsule;
bjblazkowicz 1:a6c13143b151 26
bjblazkowicz 1:a6c13143b151 27 uint32_t m_buffer_pos;
bjblazkowicz 1:a6c13143b151 28 TRGB m_buffer[DETECTION_VALUES];
bjblazkowicz 1:a6c13143b151 29
bjblazkowicz 1:a6c13143b151 30 private:
bjblazkowicz 1:a6c13143b151 31 static bool __callback(const TRGB &color);
bjblazkowicz 1:a6c13143b151 32 bool callback(const TRGB &color);
bjblazkowicz 1:a6c13143b151 33 static RGB_Detection *m_global;
bjblazkowicz 1:a6c13143b151 34 };
bjblazkowicz 0:8a18ceffce1b 35 const char* do_detection();
bjblazkowicz 0:8a18ceffce1b 36
bjblazkowicz 0:8a18ceffce1b 37 #endif // __DETECTION_H__