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
detection.h@1:a6c13143b151, 2014-07-03 (annotated)
- 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?
User | Revision | Line number | New 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__ |