class BallChute(): def __init__(self): self.stateTimer = wpilib.Timer() self.stateTimer.start() self.ballRakeExtend = Solenoid(robotmap.PCM2_ID, robotmap.BALL_RAKE_EXTEND_SOLENOID) self.ballRakeRetract = Solenoid(robotmap.PCM2_ID, robotmap.BALL_RAKE_RETRACT_SOLENOID) self.ballHatchExtend = Solenoid(robotmap.PCM2_ID, robotmap.BALL_HATCH_EXTEND_SOLENOID) self.ballHatchRetract = Solenoid(robotmap.PCM2_ID, robotmap.BALL_HATCH_RETRACT_SOLENOID) self.ballTickler = Spark(robotmap.BALL_TICKLER_ID) self.bottomIntake = Spark(robotmap.BOTTOM_INTAKE_ID) self.rakeMotor = Talon(robotmap.RAKE_ID) self.ballRakeExtend.set(False) self.ballRakeRetract.set(True) self.ballHatchExtend.set(False) self.ballHatchRetract.set(True) #-value so motors run that way we want them to def RakeMotorStart(self, value): self.rakeMotor.set(-value) def RakeMotorStop(self): self.rakeMotor.stopMotor() def BottomMotorStart(self, value): self.bottomIntake.set(-value) def BottomMotorStop(self): self.bottomIntake.stopMotor() def BallTicklerStart(self, value): self.ballTickler.set(value) def BallTicklerStop(self): self.ballTickler.stopMotor() #Solenoid functions ot make things easier def DeployRake(self): self.ballRakeExtend.set(True) self.ballRakeRetract.set(False) def StowRake(self): self.ballRakeExtend.set(False) self.ballRakeRetract.set(True) def OpenHatch(self): self.ballHatchExtend.set(True) self.ballHatchRetract.set(False) def CloseHatch(self): self.ballHatchExtend.set(False) self.ballHatchRetract.set(True) def Iterate(self, copilot: XBox): if copilot.Y(): if copilot.Start(): self.BottomMotorStart(1) elif copilot.X(): self.BottomMotorStart(-.5) else: self.BottomMotorStart(.5) else: self.BottomMotorStop() if copilot.A(): elif copilot.X(): self.RakeMotorStart(-.5) else: self.RakeMotorStart(.5) else:
class ColorWheel(): def __init__(self): self.colorWheelExtend = Solenoid(robotmap.PCM_ID, robotmap.COLOR_WHEEL_EXTEND_SOLENOID) self.colorWheelRetract = Solenoid( robotmap.PCM_ID, robotmap.COLOR_WHEEL_RETRACT_SOLENOID) self.colorWheelMotor = Spark(robotmap.COLOR_WHEEL_ID) self.RGBSensor = ColorSensorV3(wpilib.I2C.Port.kOnboard) self.colorWheelExtend.set(False) self.colorWheelRetract.set(True) def DeployWheelArm(self): self.colorWheelExtend.set(True) self.colorWheelRetract.set(False) def StowWheelArm(self): self.colorWheelExtend.set(False) self.colorWheelRetract.set(True) def Iterate(self, copilot: xboxcontroller.XBox): self.color = self.RGBSensor.getColor() self.ir = self.RGBSensor.getIR() self.proxy = self.RGBSensor.getProximity( ) #proxy's still alive Jazz band if self.color.red > 0.7 and self.color.red <= 1: self.red = True elif self.color.green > 0.7 and self.color.green <= 1: self.green = True elif self.color.blue > 0.7 and self.color.blue <= 1: self.blue = True else: self.red = False self.green = False self.blue = False #Boolean wpilib.SmartDashboard.putBoolean("Red", self.red) wpilib.SmartDashboard.putBoolean("Green", self.green) wpilib.SmartDashboard.putBoolean("Blue", self.blue) #Value wpilib.SmartDashboard.putNumber("RedN", self.color.red) wpilib.SmartDashboard.putNumber("BlueN", self.color.blue) wpilib.SmartDashboard.putNumber("GreenN", self.color.green) wpilib.SmartDashboard.putNumber("IR", self.ir) wpilib.SmartDashboard.putNumber("Proxy", self.proxy) #print(self.color) if copilot.X(): self.colorWheelMotor.set(0.5) elif copilot.B(): self.colorWheelMotor.set(-0.5) else: self.colorWheelMotor.stopMotor() if copilot.getDPadRight(): self.DeployWheelArm() elif copilot.getDPadLeft(): self.StowWheelArm()