POC1.5 prototype 2 x color sensor 2 x LM75B 3 x AnalogIn 1 x accel

Dependencies:   mbed vt100

Committer:
Rhyme
Date:
Tue Dec 12 06:53:12 2017 +0000
Revision:
13:88ee926c56ae
Parent:
0:f0de320e23ac
MCU Reset Reason Attribute added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:f0de320e23ac 1 #ifndef _EDGE_COLOR_H_
Rhyme 0:f0de320e23ac 2 #define _EDGE_COLOR_H_
Rhyme 0:f0de320e23ac 3 #include "mbed.h"
Rhyme 0:f0de320e23ac 4 #include "edge_sensor.h"
Rhyme 0:f0de320e23ac 5 #include "VEML6040.h"
Rhyme 0:f0de320e23ac 6
Rhyme 0:f0de320e23ac 7 class edge_color : public edge_sensor {
Rhyme 0:f0de320e23ac 8 public:
Rhyme 0:f0de320e23ac 9 edge_color(VEML6040 *sensor, PwmOut *led[], uint16_t *pwm) ;
Rhyme 0:f0de320e23ac 10 ~edge_color(void) ;
Rhyme 0:f0de320e23ac 11 virtual void reset(void) ;
Rhyme 0:f0de320e23ac 12 virtual void prepare(void) ;
Rhyme 0:f0de320e23ac 13 virtual void sample(void) ;
Rhyme 0:f0de320e23ac 14 virtual int deliver(void) ;
Rhyme 0:f0de320e23ac 15
Rhyme 0:f0de320e23ac 16 void calibrate(uint16_t target[], uint16_t result[], int num_ave) ;
Rhyme 0:f0de320e23ac 17 void getAveColor(uint16_t v[], int num_ave) ;
Rhyme 0:f0de320e23ac 18 void getRGB(uint16_t v[]) ;
Rhyme 0:f0de320e23ac 19 uint8_t getConfig(void) { return _sensor_config ; }
Rhyme 0:f0de320e23ac 20 void setConfig(uint8_t config) { _sensor_config = config ; }
Rhyme 0:f0de320e23ac 21 uint16_t get_pwm_period(void) { return _pwm_period ; }
Rhyme 0:f0de320e23ac 22 void set_pwm_period(uint16_t period) { _pwm_period = period ; }
Rhyme 0:f0de320e23ac 23 uint16_t get_pwm_target(void) { return _pwm_target ; }
Rhyme 0:f0de320e23ac 24 void set_pwm_target(uint16_t target) { _pwm_target = target ; }
Rhyme 0:f0de320e23ac 25 uint16_t getR(void) { return _value[0] ; }
Rhyme 0:f0de320e23ac 26 uint16_t getG(void) { return _value[1] ; }
Rhyme 0:f0de320e23ac 27 uint16_t getB(void) { return _value[2] ; }
Rhyme 0:f0de320e23ac 28 uint16_t getPwmR(void) { return _pwm[0] ; }
Rhyme 0:f0de320e23ac 29 uint16_t getPwmG(void) { return _pwm[1] ; }
Rhyme 0:f0de320e23ac 30 uint16_t getPwmB(void) { return _pwm[2] ; }
Rhyme 0:f0de320e23ac 31 void setLEDs(uint16_t led_value[]) ;
Rhyme 0:f0de320e23ac 32 void setLEDs(uint16_t r, uint16_t g, uint16_t b) ;
Rhyme 0:f0de320e23ac 33
Rhyme 0:f0de320e23ac 34 protected:
Rhyme 0:f0de320e23ac 35 VEML6040 *_sensor ;
Rhyme 0:f0de320e23ac 36 uint8_t _sensor_config ;
Rhyme 0:f0de320e23ac 37 PwmOut *_led[3] ;
Rhyme 0:f0de320e23ac 38 uint16_t _pwm_period ;
Rhyme 0:f0de320e23ac 39 uint16_t _pwm_target ;
Rhyme 0:f0de320e23ac 40 uint16_t _value[3] ; /* r, g, b */
Rhyme 0:f0de320e23ac 41 uint16_t _pwm[3] ; /* r, g, b */
Rhyme 0:f0de320e23ac 42 uint16_t _probe ; /* probing value for calibration */
Rhyme 0:f0de320e23ac 43 } ;
Rhyme 0:f0de320e23ac 44
Rhyme 0:f0de320e23ac 45 extern uint16_t color0_pwm[3] ;
Rhyme 0:f0de320e23ac 46 extern uint16_t color1_pwm[3] ;
Rhyme 0:f0de320e23ac 47 extern uint16_t color0_target[3] ;
Rhyme 0:f0de320e23ac 48 extern uint16_t color1_target[3] ;
Rhyme 0:f0de320e23ac 49
Rhyme 0:f0de320e23ac 50 #endif /* _EDGE_COLOR_H_ */