Ejemplo n.º 1
0
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:
Ejemplo n.º 2
0
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()