Source code for robotpy_ext.common_drivers.distance_sensors

import wpilib
import math


[docs] class SharpIR2Y0A02: """ Sharp GP2Y0A02YK0F is an analog IR sensor capable of measuring distances from 20cm to 150cm. Output distance is measured in centimeters. Distance is calculated using the following equation derived from the graph provided in the datasheet:: 62.28*x ^ -1.092 .. warning:: FRC Teams: the case on these sensors is conductive and grounded, and should not be mounted on a metallic surface! """ def __init__(self, port): """:param port: Analog port number""" self.distance = wpilib.AnalogInput(port)
[docs] def getDistance(self): """ :returns: distance in centimeters. The output is constrained to be between 22.5 and 145 """ # Don't allow zero/negative values v = max(self.distance.getVoltage(), 0.00001) d = 62.28 * math.pow(v, -1.092) # Constrain output return max(min(d, 145.0), 22.5)
[docs] class SharpIR2Y0A21: """ Sharp GP2Y0A21YK0F is an analog IR sensor capable of measuring distances from 10cm to 80cm. Output distance is measured in centimeters. Distance is calculated using the following equation derived from the graph provided in the datasheet:: 26.449*x ^ -1.226 .. warning:: FRC Teams: the case on these sensors is conductive and grounded, and should not be mounted on a metallic surface! """ def __init__(self, port): """:param port: Analog port number""" self.distance = wpilib.AnalogInput(port)
[docs] def getDistance(self): """ :returns: distance in centimeters. The output is constrained to be between 10 and 80 """ # Don't allow zero/negative values v = max(self.distance.getVoltage(), 0.00001) d = 26.449 * math.pow(v, -1.226) # Constrain output return max(min(d, 80.0), 10.0)
[docs] class SharpIR2Y0A41: """ Sharp GP2Y0A41SK0F is an analog IR sensor capable of measuring distances from 4cm to 40cm. Output distance is measured in centimeters. Distance is calculated using the following equation derived from the graph provided in the datasheet:: 12.84*x ^ -0.9824 .. warning:: FRC Teams: the case on these sensors is conductive and grounded, and should not be mounted on a metallic surface! """ def __init__(self, port): """:param port: Analog port number""" self.distance = wpilib.AnalogInput(port)
[docs] def getDistance(self): """ :returns: distance in centimeters. The output is constrained to be between 4.5 and 35 """ # Don't allow zero/negative values v = max(self.distance.getVoltage(), 0.00001) d = 12.84 * math.pow(v, -0.9824) # Constrain output return max(min(d, 35.0), 4.5)
# backwards compat SharpIRGP2Y0A41SK0F = SharpIR2Y0A41