Class 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        addChild, getName, getSubsystem, setName, setName, setName, setName, setSubsystem
    • Constructor Detail

      • TMD37003

        public TMD37003​(edu.wpi.first.wpilibj.I2C.Port i2cPort)
        Create Instance of TMD3700 color sensor driver.
        Parameters:
        i2cPort - Internal/MXP I2C port on the roboRIO
    • Method Detail

      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
      • initSendable

        public void initSendable​(edu.wpi.first.wpilibj.smartdashboard.SendableBuilder builder)
        Specified by:
        initSendable in interface edu.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 period
        proximityGain - 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 gain
        g - Green channel gain
        b - Blue channel gain
        c - Clear (ambient) channel gain
        gamma - 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.