Package com.playingwithfusion
Class TMD37003
- java.lang.Object
-
- com.playingwithfusion.TMD37003
-
- All Implemented Interfaces:
edu.wpi.first.wpilibj.Sendable
,java.lang.AutoCloseable
public class TMD37003 extends java.lang.Object implements edu.wpi.first.wpilibj.Sendable, java.lang.AutoCloseable
-
-
Constructor Summary
Constructors Constructor Description TMD37003(edu.wpi.first.wpilibj.I2C.Port i2cPort)
Create Instance of TMD3700 color sensor driver.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
configureColorSense(double alsIntegrationTime, int alsGain)
Configure TMD3700 Color (Ambient Light Sensing) parameters.void
configureProximitySense(double proximitySampleTime, double proximityPulseLength, int numProximityPulses, int proximityGain, int proximityLedCurrent)
Configure TMD3700 Proximity sense parameters.double
getAmbientLightLevel()
Get clear (Ambient) channel value.double
getBlue()
Get blue channel value.double
getGreen()
Get green channel value.double
getHue()
Get the measured color (hue).double
getProximity()
Get proximity value.double
getRed()
Get red channel value.double
getSaturation()
Get measured color saturation.void
initSendable(edu.wpi.first.wpilibj.smartdashboard.SendableBuilder builder)
void
setGain(double r, double g, double b, double c, double gamma)
Specifiy gains and gamma value to convert raw RGB samples to normalized RGB values to aproximate sRGB space.
-
-
-
Method Detail
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
-
initSendable
public void initSendable(edu.wpi.first.wpilibj.smartdashboard.SendableBuilder builder)
- Specified by:
initSendable
in interfaceedu.wpi.first.wpilibj.Sendable
-
configureColorSense
public void configureColorSense(double alsIntegrationTime, int alsGain)
Configure TMD3700 Color (Ambient Light Sensing) parameters.- Parameters:
alsIntegrationTime
- Color sensing sample time in milliseconds. Value may range from 2.8 to 721ms. Longer sample times act to filtered the sampled color.alsGain
- Color sensor gain as a value between 1 and 64.
-
configureProximitySense
public void configureProximitySense(double proximitySampleTime, double proximityPulseLength, int numProximityPulses, int proximityGain, int proximityLedCurrent)
Configure TMD3700 Proximity sense parameters.- Parameters:
proximitySampleTime
- Proximity sensing sample time in milliseconds. Value may range from 0.088 to 22.528 ms.proximityPulseLength
- Lengh of each IR LED pulse during proximity measurement in milliseconds. Value must fall between 0.004 and 0.032 ms.numProximityPulses
- Number of proximity IR LED pulses which occur during each sample periodproximityGain
- Proximity sensor gain as a value between 1 and 8.proximityLedCurrent
- Proximity IR LED current in milliamps. Value must fall between 6 and 192 mA
-
setGain
public void setGain(double r, double g, double b, double c, double gamma)
Specifiy gains and gamma value to convert raw RGB samples to normalized RGB values to aproximate sRGB space.The default gains are calibrated for the built in white LED. If another lighting source is used this function may be required to specify the white point.
Channels are calculated using:
{Normilized value} = ({Raw value} * gain) ^ (1/gamma)
- Parameters:
r
- Red channel gaing
- Green channel gainb
- Blue channel gainc
- Clear (ambient) channel gaingamma
- Gamma vaule used to convert raw (linear) samples to something that responds like a human eye
-
getHue
public double getHue()
Get the measured color (hue).- Returns:
- Measured hue in degrees
-
getSaturation
public double getSaturation()
Get measured color saturation.- Returns:
- Measured saturation as ratio between 0 and 1
-
getRed
public double getRed()
Get red channel value.- Returns:
- Normalized red channel value as ratio between 0 and 1..
-
getGreen
public double getGreen()
Get green channel value.- Returns:
- Normalized green channel value as ratio between 0 and 1..
-
getBlue
public double getBlue()
Get blue channel value.- Returns:
- Normalized blue channel value as ratio between 0 and 1..
-
getAmbientLightLevel
public double getAmbientLightLevel()
Get clear (Ambient) channel value.- Returns:
- Normalized clear channel value as ratio between 0 and 1.
-
getProximity
public double getProximity()
Get proximity value.- Returns:
- Normalized proximity value as ratio between 0 and 1.
-
-