Exemple #1
0
    def createObjects(self):
        # Joysticks
        self.joystick_left = wpilib.Joystick(0)
        self.joystick_right = wpilib.Joystick(1)
        self.joystick_alt = wpilib.Joystick(2)

        # Buttons
        self.btn_intake_in = JoystickButton(self.joystick_alt, 2)
        self.btn_intake_out = JoystickButton(self.joystick_alt, 1)

        # Set up Speed Controller Groups
        self.left_motors = wpilib.SpeedControllerGroup(
            VictorSP(0),
            VictorSP(1),
        )

        self.right_motors = wpilib.SpeedControllerGroup(
            VictorSP(2),
            VictorSP(3),
        )

        # Drivetrain
        self.train = wpilib.drive.DifferentialDrive(self.left_motors,
                                                    self.right_motors)

        # Intake
        self.intake_motor = VictorSP(4)
Exemple #2
0
    def createObjects(self):
        # Joysticks
        self.joystick = wpilib.Joystick(0)

        # Drive motor controllers
        #   Dig | 0/1
        #   2^1 | Left/Right
        #   2^0 | Front/Rear
        self.lf_motor = wpilib.Victor(0b00) # =>0
        self.lr_motor = wpilib.Victor(0b01) # =>1
        self.rf_motor = wpilib.Victor(0b10) # =>2
        self.rr_motor = wpilib.Victor(0b11) # =>3

        self.drivetrain = wpilib.drive.DifferentialDrive(wpilib.SpeedControllerGroup(self.lf_motor, self.lr_motor),
                                                    wpilib.SpeedControllerGroup(self.rf_motor, self.rr_motor))

        self.btn_sarah = ButtonDebouncer(self.joystick, 2)
        self.sarah = False

        # Intake
        self.intake_wheel_left = wpilib.Spark(5)
        self.intake_wheel_right = wpilib.Spark(4)
        self.intake_wheels = wpilib.SpeedControllerGroup(self.intake_wheel_left,
                                                         self.intake_wheel_right)
        self.intake_wheels.setInverted(True)

        self.btn_pull = JoystickButton(self.joystick, 3)
        self.btn_push = JoystickButton(self.joystick, 1)
Exemple #3
0
    def createObjects(self):
        # Joysticks
        self.joystick = wpilib.Joystick(0)

        # Drive motor controllers
        #   Dig | 0/1
        #   2^1 | Left/Right
        #   2^0 | Front/Rear
        #self.lf_motor = wpilib.Victor(0b00)  # => 0
        #self.lr_motor = wpilib.Victor(0b01)  # => 1
        #self.rf_motor = wpilib.Victor(0b10)  # => 2
        #self.rr_motor = wpilib.Victor(0b11)  # => 3
        # TODO: This is not in any way an ideal numbering system.
        # The PWM ports should be redone to use the old layout above.
        self.lf_motor = wpilib.Victor(9)
        self.lr_motor = wpilib.Victor(8)
        self.rf_motor = wpilib.Victor(7)
        self.rr_motor = wpilib.Victor(6)

        self.drivetrain = wpilib.drive.DifferentialDrive(
            wpilib.SpeedControllerGroup(self.lf_motor, self.lr_motor),
            wpilib.SpeedControllerGroup(self.rf_motor, self.rr_motor))

        self.btn_sarah = ButtonDebouncer(self.joystick, 2)
        self.sarah = False

        # Intake
        self.intake_wheel_left = wpilib.Spark(5)
        self.intake_wheel_right = wpilib.Spark(4)
        self.intake_wheels = wpilib.SpeedControllerGroup(
            self.intake_wheel_left, self.intake_wheel_right)
        self.intake_wheels.setInverted(True)

        self.btn_pull = JoystickButton(self.joystick, 3)
        self.btn_push = JoystickButton(self.joystick, 1)
Exemple #4
0
def init():
    global joystick, A, B, X, Y, bumper_L, bumper_R, back, start, stick_L, stick_R

    joystick = Joystick(robotmap.joystick)
    A = JoystickButton(joystick, 1)
    B = JoystickButton(joystick, 2)
    X = JoystickButton(joystick, 3)
    Y = JoystickButton(joystick, 4)
    bumper_L = JoystickButton(joystick, 5)
    bumper_R = JoystickButton(joystick, 6)
    back = JoystickButton(joystick, 7)
    start = JoystickButton(joystick, 8)
    stick_L = JoystickButton(joystick, 9)
    stick_R = JoystickButton(joystick, 10)
def init():
    global driverOne
    global driverTwo

    driverOne = XboxController(robotmap.USB_PORT_DRIVER_ONE)
    driverTwo = XboxController(robotmap.USB_PORT_DRIVER_TWO)

    toggleLauncher = JoystickButton(driverTwo, robotmap.BUTTON_A)
    toggleLauncher.whenPressed(LaunchHatchCommand())
    toggleLauncher.whenReleased(RetractCommand())

    toggleFront = JoystickButton(driverTwo, robotmap.BUTTON_RIGHT_BUMPER)
    toggleFront.whenReleased(ToggleFrontCommand())

    toggleRear = JoystickButton(driverTwo, robotmap.BUTTON_LEFT_BUMPER)
    toggleRear.whenReleased(ToggleRearCommand())
Exemple #6
0
    def __init__(self):
        self.driverController = XboxController(0)
        self.manipulatorController = XboxController(1)

        self.aButtonDriver = JoystickButton(self.driverController, 0)

        self.aButtonDriver.whenPressed(DriveStraightCommand(10))
Exemple #7
0
def init():
    global logger, joystick, A, B, X, Y, bumper_L, bumper_R, back, start, stick_L, stick_R

    logger = logging.getLogger("OI")
    joystick = Joystick(robotmap.joystick)
    A = JoystickButton(joystick, 1)
    B = JoystickButton(joystick, 2)
    X = JoystickButton(joystick, 3)
    Y = JoystickButton(joystick, 4)
    bumper_L = JoystickButton(joystick, 5)
    bumper_R = JoystickButton(joystick, 6)
    back = JoystickButton(joystick, 7)
    start = JoystickButton(joystick, 8)
    stick_L = JoystickButton(joystick, 9)
    stick_R = JoystickButton(joystick, 10)
    logger.debug("OI initialized")
Exemple #8
0
    def createObjects(self):
        wpilib.CameraServer.launch()
        wpilib.LiveWindow.disableAllTelemetry()

        self.left_drive_motor = WPI_TalonSRX(0)
        WPI_TalonSRX(1).set(WPI_TalonSRX.ControlMode.Follower,
                            self.left_drive_motor.getDeviceID())
        self.right_drive_motor = WPI_TalonSRX(2)
        WPI_TalonSRX(3).set(WPI_TalonSRX.ControlMode.Follower,
                            self.right_drive_motor.getDeviceID())

        self.robot_drive = wpilib.drive.DifferentialDrive(
            self.left_drive_motor, self.right_drive_motor)

        self.r_intake_motor = WPI_VictorSPX(4)
        self.l_intake_motor = WPI_VictorSPX(5)

        self.elevator_winch = WPI_TalonSRX(6)

        self.climber_motor = WPI_TalonSRX(7)
        self.wrist_motor = WPI_TalonSRX(8)

        self.intake_ir = wpilib.AnalogInput(0)

        self.intake_solenoid = wpilib.DoubleSolenoid(2, 3)

        self.right_drive_joystick = wpilib.Joystick(0)
        self.left_drive_joystick = wpilib.Joystick(1)
        self.operator_joystick = wpilib.Joystick(2)

        self.compressor = wpilib.Compressor()

        self.elevator_limit_switch = wpilib.DigitalInput(0)

        self.climber_motor = WPI_TalonSRX(7)

        self.navx = AHRS.create_spi()

        self.path_tracking_table = NetworkTables.getTable("path_tracking")

        self.down_button = ButtonDebouncer(self.operator_joystick, 1)
        self.right_button = ButtonDebouncer(self.operator_joystick, 2)
        self.left_button = ButtonDebouncer(self.operator_joystick, 3)
        self.has_cube_button = ButtonDebouncer(self.operator_joystick, 5)
        self.up_button = ButtonDebouncer(self.operator_joystick, 4)
        self.left_bumper_button = JoystickButton(self.operator_joystick, 5)
        self.right_bumper_button = JoystickButton(self.operator_joystick, 6)
Exemple #9
0
    def __init__(self, robot):
        '''The Constructor - assign Xbox controller buttons to specific Commands.
        '''

        print("In OI:__init__")

        robot.xbox0 = wpilib.XboxController(0)
        robot.xbox1 = wpilib.XboxController(1)

        stickbutton = StickButton(robot.xbox0, .1)
        shoot = JoystickButton(robot.xbox0, XboxController.Button.kA)
        block = JoystickButton(robot.xbox0, XboxController.Button.kY)
        intake = JoystickButton(robot.xbox0, XboxController.Button.kX)
        shiftup = JoystickButton(robot.xbox0,
                                 XboxController.Button.kBumperRight)
        shiftdown = JoystickButton(robot.xbox0,
                                   XboxController.Button.kBumperLeft)
        triggerbutton = TriggerButton(robot.xbox1, .1)
        extendclimber = JoystickButton(robot.xbox1, XboxController.Button.kA)

        togglecamera = JoystickButton(robot.xbox0,
                                      XboxController.Button.kStart)
        togglecamera.whenPressed(ToggleCamera(robot))
        stickbutton.whenPressed(DifferentialDriveWithXbox(robot))
        shoot.whileHeld(ReleaseShoot(robot))
        block.toggleWhenPressed(Block(robot))
        intake.whileHeld(Intake_Com(robot))
        shiftup.whenPressed(ShiftUp(robot))
        shiftdown.whenPressed(ShiftDown(robot))
        triggerbutton.whenPressed(Climbwithtriggers(robot))
        extendclimber.toggleWhenPressed(Extendclimber(robot))
Exemple #10
0
    def __init__(self, roller_motor, pivot, stick, initial_state):
        self.roller_motor = roller_motor
        self.pivot = pivot
        self.stick = stick
        self.rollerenabler = JoystickButton(self.stick, 14)
        self.pivotupbutton = JoystickButton(self.stick, 5)
        self.pivotdownbutton = JoystickButton(self.stick, 10)
        self.pistonoutbutton = JoystickButton(self.stick, 8)
        self.pistoninbutton = JoystickButton(self.stick, 7)
        #self.ratchetswitchbutton = JoystickButton(self.stick, 15)
        #self.ratchetbtnpressed = False
        #self.pivotstopbutton = JoystickButton(self.stick, 14)
        #self.pivotinitbutton = JoystickButton(self.stick, 13)
        self.rollerout = JoystickButton(self.stick, 9)
        self.rollerin = JoystickButton(self.stick, 6)
        self.state = initial_state
        self.pivot.selectProfileSlot(0, 0)
        self.switch = wpilib.DigitalInput(2)
        self.count = 0

        self.sol2 = wpilib.Solenoid(5, 3)
        self.sol1 = wpilib.Solenoid(5, 0)
        self.sol1.set(False)
        self.sol2.set(True)

        self.ratchet = wpilib.Solenoid(5, 6)
        self.ratchetEnabled = False
        self.ratchet.set(not self.ratchetEnabled)
Exemple #11
0
    def __init__(self, hs1, hs2, as1, as2, stick):
        self.hatchsolenoid1 = hs1
        self.hatchsolenoid2 = hs2
        self.armsolenoid1 = as1
        self.armsolenoid2 = as2

        # the corresponding solenoids for each subsystem must be in opposite
        # states.
        self.hatchsolenoid1.set(False)
        self.hatchsolenoid2.set(True)
        self.armsolenoid1.set(False)
        self.armsolenoid2.set(True)

        # Currently trigger and front button.
        # TODO separate controls out into separate config class.
        self.hatchbutton = JoystickButton(stick, 2)
        self.armbutton = JoystickButton(stick, 1)
        self.hatchenabled = False
        self.armenabled = False
Exemple #12
0
 def __init__(self, fl, rl, fr, rr, navx, stick):
     self.fl = fl
     self.rl = rl
     self.fr = fr
     self.rr = rr
     self.drive = wpilib.drive.MecanumDrive(fl, rl, fr, rr)
     self.navx = navx
     self.stick = stick
     self.foctoggle = JoystickButton(self.stick, 11)
     self.focenabled = False
     self.foctoggledown = False
Exemple #13
0
    def __init__(self, robot):

        self.robot = robot
        self.xbox = wpilib.Joystick(0)

        self.l_trigger = self.xbox.getRawAxis(2)
        self.r_trigger = self.xbox.getRawAxis(3)

        self.l_bumper = JoystickButton(self.xbox, 6)
        self.r_bumper = JoystickButton(self.xbox, 5)

        self.a_button = JoystickButton(self.xbox, 1)
        self.b_button = JoystickButton(self.xbox, 2)
        self.steer = self.xbox.getRawAxis(0)
        self.speed = self.l_trigger - self.r_trigger

        self.a_button.whileHeld(Pop(self.robot))

        self.r_bumper.whileHeld(LiftFront(self.robot))
        self.l_bumper.whileHeld(LiftRear(self.robot))
Exemple #14
0
    def __init__(self, robot):
        # driver mappings
        self.driver_joystick = wpilib.XboxController(0)

        JoystickButton(self.driver_joystick,
                       wpilib.XboxController.Button.kX).whenPressed(
                           TurnByGyro(robot, -90.0))
        JoystickButton(self.driver_joystick,
                       wpilib.XboxController.Button.kY).whenPressed(
                           TurnByGyro(robot, 90.0))

        JoystickButton(self.driver_joystick,
                       wpilib.XboxController.Button.kBack).whenPressed(
                           ClimbByGyro(robot))
        JoystickButton(self.driver_joystick,
                       wpilib.XboxController.Button.kStart).whenPressed(
                           ToggleCompressor(robot))

        # operator mappings
        self.operator_joystick = wpilib.XboxController(1)

        JoystickButton(self.operator_joystick,
                       wpilib.XboxController.Button.kA).whenPressed(
                           DeployHatch(robot))
        JoystickButton(self.operator_joystick,
                       wpilib.XboxController.Button.kB).whenPressed(
                           DropCargo(robot))

        JoystickButton(self.operator_joystick,
                       wpilib.XboxController.Button.kY).whenPressed(
                           ToggleLED(robot))
        JoystickButton(self.operator_joystick,
                       wpilib.XboxController.Button.kY).whileHeld(
                           AlignByCamera(robot))
        JoystickButton(self.operator_joystick,
                       wpilib.XboxController.Button.kY).whenReleased(
                           ToggleLED(robot))

        JoystickButton(self.operator_joystick,
                       wpilib.XboxController.Button.kStart).whenPressed(
                           ToggleCompressor(robot))
Exemple #15
0
def getJoystick():
    """
    Assign commands to button actions, and publish your joysticks so you
    can read values from them later.
    """

    joystick = Joystick(0)

    trigger = JoystickButton(joystick, Joystick.ButtonType.kTriggerButton)
    trigger.whenPressed(Crash())

    return joystick
Exemple #16
0
	def __init__ (self, robot):
		robot.joystick = wpilib.Joystick(0)
		robot.joystick1 = wpilib.Joystick(1)


		L3_button = JoystickButton(robot.joystick1, 9)
		LB_button = JoystickButton(robot.joystick1, 5)
		A_button = JoystickButton(robot.joystick1, 1)
		B_button = JoystickButton(robot.joystick1, 2)
		X_button = JoystickButton(robot.joystick1, 3)
		Y_button = JoystickButton(robot.joystick1, 4) 


		L3_button.whenPressed(TurboDrive())
		L3_button.whenReleased(FollowJoystick())

		LB_button.whenPressed(Align())
		LB_button.whenReleased(FollowJoystick())

		X_button.whenPressed(MoveClawTo(power=-.5))
		X_button.whenReleased(MoveClawTo(power=0))

		B_button.whenPressed(MoveClawTo(power=.5))
		B_button.whenReleased(MoveClawTo(power=0))

		Y_button.whenPressed(MoveArmTo(power=-1))
		Y_button.whenReleased(MoveArmTo(power=0))

		A_button.whenPressed(MoveArmTo(power=1))
		A_button.whenReleased(MoveArmTo(power=0))
Exemple #17
0
    def __init__(self, robot):
        '''The Constructor - assign Xbox controller buttons to specific Commands.
        '''

        print("In OI:__init__")

        robot.xbox0 = wpilib.XboxController(0)
        robot.xbox1 = wpilib.XboxController(1)
        """liftleft = JoystickButton(robot.xbox1, XboxController.Button.kA)
        lowerleft = JoystickButton(robot.xbox1, XboxController.Button.kB)
        liftright = JoystickButton(robot.xbox1, XboxController.Button.kX)
        lowerright = JoystickButton(robot.xbox1, XboxController.Button.kY)
        liftfront = JoystickButton(robot.xbox1, XboxController.Button.kStickLeft)
        lowerfront = JoystickButton(robot.xbox1, XboxController.Button.kStickRight)
        liftrear = JoystickButton(robot.xbox1, XboxController.Button.kBumperRight)
        lowerrear = JoystickButton(robot.xbox1, XboxController.Button.kBumperLeft)
        lift = JoystickButton(robot.xbox1, XboxController.Button.kStart)
        lower = JoystickButton(robot.xbox1, XboxController.Button.kBack)"""

        #claw = JoystickButton(robot.xbox1, XboxController.Button.kY)
        intake = JoystickButton(robot.xbox1, XboxController.Button.kA)
        liftwinch = JoystickButton(robot.xbox1,
                                   XboxController.Button.kBumperRight)
        lowerwinch = JoystickButton(robot.xbox1,
                                    XboxController.Button.kBumperLeft)
        ejectcargo = JoystickButton(robot.xbox1, XboxController.Button.kX)

        triggerbutton = TriggerButton(robot.xbox0, .1)
        punch = JoystickButton(robot.xbox0, XboxController.Button.kY)
        punchrear = JoystickButton(robot.xbox1, XboxController.Button.kY)
        hatch = JoystickButton(robot.xbox0, XboxController.Button.kX)
        #park = JoystickButton(robot.xbox0, XboxController.Button.kA)
        """liftleft.whileHeld(LiftLeft(robot))
        lowerleft.whileHeld(LowerLeft(robot))
        liftright.whileHeld(LiftRight(robot))
        lowerright.whileHeld(LowerRight(robot))
        liftfront.whileHeld(LiftFront(robot))#
        lowerfront.whileHeld(LowerFront(robot#
        liftrear.whileHeld(LiftRear(robot))
        lowerrear.whileHeld(LowerRear(robot))#
        lift.whileHeld(Lift(robot))
        lower.whileHeld(Lower(robot))"""

        triggerbutton.whenPressed(MoveArmWithTriggers(robot))
        intake.toggleWhenPressed(IntakeCargo(robot))
        ejectcargo.toggleWhenPressed(EjectCargo(robot))
        #claw.toggleWhenPressed(OpenClaw(robot))
        punch.whenPressed(Punch(robot))
        punch.whenReleased(Pull(robot))
        hatch.toggleWhenPressed(CoverHatch(robot))
        liftwinch.whileHeld(LiftWinch(robot))
        lowerwinch.whileHeld(LowerWinch(robot))
        punchrear.whenPressed(PunchRear(robot))
        punchrear.whenReleased(PullRear(robot))
Exemple #18
0
 def robotInit(self):
     Command.getRobot = lambda x=0: self
     self.driveSubsystem = DriveSubsystem()
             
     self.controller = Joystick(0)
     
     self.forward  = JoystickButton(self.controller, PS4Button["TRIANGLE"])
     self.backward = JoystickButton(self.controller, PS4Button["CROSS"])
     self.right    = JoystickButton(self.controller, PS4Button["CIRCLE"])
     self.left     = JoystickButton(self.controller, PS4Button["SQUARE"])
             
     self.forward.whenPressed(MoveForward())
     self.forward.whenReleased(Stop())
     
     self.backward.whenPressed(MoveBackward())
     self.backward.whenReleased(Stop())
     
     self.right.whenPressed(TurnRight())
     self.right.whenReleased(Stop())
     
     self.left.whenPressed(TurnLeft())
     self.left.whenReleased(Stop())
Exemple #19
0
    def __init__(self, robot):
        self.joystick = wpilib.Joystick(0)

        JoystickButton(self.joystick, 12).whenPressed(LowGoal(robot))
        JoystickButton(self.joystick, 10).whenPressed(Collect(robot))

        JoystickButton(self.joystick,
                       11).whenPressed(SetPivotSetpoint(robot, Pivot.SHOOT))
        JoystickButton(self.joystick,
                       9).whenPressed(SetPivotSetpoint(robot,
                                                       Pivot.SHOOT_NEAR))

        DoubleButton(self.joystick, 2, 3).whenActive(Shoot(robot))

        # SmartDashboard Buttons
        SmartDashboard.putData("Drive Forward", DriveForward(robot, 2.25))
        SmartDashboard.putData("Drive Backward", DriveForward(robot, -2.25))
        SmartDashboard.putData("Start Rollers",
                               SetCollectionSpeed(robot, Collector.FORWARD))
        SmartDashboard.putData("Stop Rollers",
                               SetCollectionSpeed(robot, Collector.STOP))
        SmartDashboard.putData("Reverse Rollers",
                               SetCollectionSpeed(robot, Collector.REVERSE))
Exemple #20
0
    def teleopPeriodic(self):
        """Called when operation control mode is enabled"""
        while self.isEnabled():
            self.drive.driveCartesian(
                -self.conditonAxis(self.lstick.getX(), 0.05, 0.85, 0.6, 1.5,
                                   -1, 1),
                self.conditonAxis(self.lstick.getY(), 0.05, 0.85, 0.6, 1.5, -1,
                                  1),
                -self.conditonAxis(self.rstick.getX(), 0.25, 0.85, 0.6, 0.5,
                                   -1, 1), self.gyro.getYaw())

            if self.timer.get() > 1:
                if (JoystickButton(self.lstick, 3).get()):
                    self.timer.reset()
                    self.COMPRESSOR_STATE = not self.COMPRESSOR_STATE
                    if self.COMPRESSOR_STATE:
                        self.compressor.start()
                    else:
                        self.compressor.stop()

                #pilotstick 1
                if JoystickButton(self.lstick, 5).get():
                    self.BallDoorOpen()

                if JoystickButton(self.lstick, 4).get():
                    self.BallDoorClose()

                if JoystickButton(self.lstick, 6).get():
                    self.BallGrabStart()

                if JoystickButton(self.lstick, 7).get():
                    self.BallGrabStop()

                #pilotstick 2
                if JoystickButton(self.rstick, 3).get():
                    self.activate(self.GearDoorRaise, self.GearDoorDrop,
                                  self.GEAR_DOOR_STATE)

                if JoystickButton(self.rstick, 5).get():
                    self.activate(self.GearAdjustExtend,
                                  self.GearAdjustRetract,
                                  self.GEAR_ADJUST_STATE)

                if JoystickButton(self.rstick, 4).get():
                    self.activate(self.GearPusherExtend,
                                  self.GearPusherRetract,
                                  self.GEAR_PUSHER_STATE)
Exemple #21
0
    def __init__(self, lift_talon, upper_switch, lower_switch, stick):

        self.lift_motor = lift_talon
        self.upper_switch = upper_switch
        self.lower_switch = lower_switch

        # I don't think there's a better way to do this. Using an array will
        # sacrifice too much readability for not much more conciseness.
        self.manual_up = JoystickButton(stick, 4)
        self.manual_down = JoystickButton(stick, 3)
        self.ball_bottom = JoystickButton(stick, 5)
        self.ball_middle = JoystickButton(stick, 6)
        self.ball_top = JoystickButton(stick, 7)
        self.hatch_bottom = JoystickButton(stick, 10)
        self.hatch_middle = JoystickButton(stick, 9)
        self.hatch_top = JoystickButton(stick, 8)

        self.lift_disabler = JoystickButton(stick, 14)

        self.state = "manual_stop"
    def teleopPeriodic(self):
        """Called when operation control mode is enabled"""

        while self.isEnabled():
            '''
            self.logger.info("FrontLeft: " + str(self.frontLeftMotor.getMotorOutputVoltage()))
            self.logger.info("RearLeft: " + str(self.rearLeftMotor.getMotorOutputVoltage()))
            self.logger.info("FrontRight: " + str(self.frontRightMotor.getMotorOutputVoltage()))
            self.logger.info("RearRight: " + str(self.rearRightMotor.getMotorOutputVoltage()))
            '''

            self.drive.driveCartesian(
                -self.conditonAxis(self.lstick.getX(), 0.05, 0.85, 0.6, 1.5,
                                   -1, 1),
                self.conditonAxis(self.lstick.getY(), 0.05, 0.85, 0.6, 1.5, -1,
                                  1),
                -self.conditonAxis(self.rstick.getX(), 0.25, 0.85, 0.6, 0.5,
                                   -1, 1)
                #self.gyro.getYaw()
            )

            if self.solenoid_timer.hasPeriodPassed(0.5):
                if JoystickButton(self.lstick, 3).get():
                    self.COMPRESSOR_STATE = not self.COMPRESSOR_STATE
                    self.activate(self.compressor.start, self.compressor.stop,
                                  self.COMPRESSOR_STATE)

                if JoystickButton(self.lstick, 2).get():
                    self.TICKLER_STATE = not self.TICKLER_STATE
                    self.activate(self.BallDoorOpen, self.BallDoorClose,
                                  self.TICKLER_STATE)

                if JoystickButton(self.lstick, 1).get():
                    self.GRABBER_STATE = not self.GRABBER_STATE
                    self.activate(self.BallGrabStart, self.BallGrabStop,
                                  self.GRABBER_STATE)

                #pilotstick 2
                if JoystickButton(self.rstick, 3).get():
                    self.GEAR_DOOR_STATE = not self.GEAR_DOOR_STATE
                    self.activate(self.GearDoorRaise, self.GearDoorDrop,
                                  self.GEAR_DOOR_STATE)

                if JoystickButton(self.rstick, 5).get():
                    self.GEAR_ADJUST_STATE = not self.GEAR_ADJUST_STATE
                    self.activate(self.GearAdjustExtend,
                                  self.GearAdjustRetract,
                                  self.GEAR_ADJUST_STATE)

                if JoystickButton(self.rstick, 4).get():
                    self.GEAR_PUSHER_STATE = not self.GEAR_PUSHER_STATE
                    self.activate(self.GearPusherExtend,
                                  self.GearPusherRetract,
                                  self.GEAR_PUSHER_STATE)

            wpilib.Timer.delay(0.04)
    def __init__(self, port):
        super().__init__(port)

        self.timer = wpilib.Timer()
        self.timer.start()

        self.btnX = JoystickButton(self, robotmap.XBOX_X)
        self.btnY = JoystickButton(self, robotmap.XBOX_Y)
        self.btnA = JoystickButton(self, robotmap.XBOX_A)
        self.btnB = JoystickButton(self, robotmap.XBOX_B)
        self.btnLB = JoystickButton(self, robotmap.XBOX_LEFT_BUMPER)
        self.btnRB = JoystickButton(self, robotmap.XBOX_RIGHT_BUMPER)
        self.btnStart = JoystickButton(self, robotmap.XBOX_START)
        self.btnBack = JoystickButton(self, robotmap.XBOX_BACK)
        self.btnDpadUp = XboxDPadButton(self, DPAD_BUTTON.DPAD_UP)
        self.btnDpadRight = XboxDPadButton(self, DPAD_BUTTON.DPAD_RIGHT)
        self.btnDpadDown = XboxDPadButton(self, DPAD_BUTTON.DPAD_DOWN)
        self.btnDpadLeft = XboxDPadButton(self, DPAD_BUTTON.DPAD_LEFT)
Exemple #24
0
    def robotInit(self):
        # Robot initialization function

        # VictorSPX = Motor Controllers
        self.frontLeftMotor = ctre.WPI_VictorSPX(0)
        self.rearLeftMotor = ctre.WPI_VictorSPX(1)

        self.frontRightMotor = ctre.WPI_VictorSPX(4)
        self.rearRightMotor = ctre.WPI_VictorSPX(5)

        self.basketMotor = ctre.WPI_VictorSPX(3)

        # Digital Inputs (Limit Switch)
        self.basketLimitSwitch = wpilib.DigitalInput(0)

        # Motor controller groups for each side of the robot
        self.left = wpilib.SpeedControllerGroup(self.frontLeftMotor,
                                                self.rearLeftMotor)
        self.right = wpilib.SpeedControllerGroup(self.frontRightMotor,
                                                 self.rearRightMotor)

        # Differential drive with left and right motor controller groups
        self.myRobot = DifferentialDrive(self.left, self.right)
        self.myRobot.setExpiration(0.1)

        self.direction = -1

        # Declare gamepad
        self.gamepad = wpilib.Joystick(0)

        # Declare buttons
        # Controller mapping (1-10): B (East), A (South), Y (North), X (West), Right Bumper, Left Bumper, ?, ?, ?, ?
        self.toggleHatchButton = JoystickButton(self.gamepad, 1)
        self.toggleBasketButton = JoystickButton(self.gamepad, 2)
        self.toggleDirectionButton = JoystickButton(self.gamepad, 3)
        self.speedUpButton = JoystickButton(self.gamepad, 4)

        self.raiseBasketButton = JoystickButton(self.gamepad, 5)
        self.lowerBasketButton = JoystickButton(self.gamepad, 6)

        # Determine if already acted on
        self.hatchActed = False
        self.basketActed = False
        self.directionActed = False

        # Solenoids
        self.hatchSolenoid = wpilib.DoubleSolenoid(0, 1)
        self.basketSolenoid = wpilib.DoubleSolenoid(2, 3)

        # Compressor
        self.compressor = wpilib.Compressor(0)

        # Camera Server
        wpilib.CameraServer.launch()
Exemple #25
0
    def createObjects(self):
        self.launcher_motor = CANSparkMax(7, MotorType.kBrushed)
        self.launcher_motor.restoreFactoryDefaults()
        self.launcher_motor.setOpenLoopRampRate(0)
        self.intake = WPI_VictorSPX(1)
        self.solenoid = wpilib.Solenoid(0)
        self.encoder = self.launcher_motor.getEncoder()
        # self.shooter_running = False
        self.logger.addFilter(PeriodicFilter(1, bypass_level=logging.WARN))

        # 2000rpm is a good setting

        # set up joystick buttons
        self.joystick_left = wpilib.Joystick(0)
        self.joystick_right = wpilib.Joystick(1)
        self.joystick_alt = wpilib.Joystick(2)

        # self.left_button = Toggle(self.joystick_alt, 10)
        # self.middle_button = Toggle(self.joystick_alt, 11)
        # self.right_button = Toggle(self.joystick_alt, 12)
        self.one = JoystickButton(self.joystick_alt, 7)
        self.two = JoystickButton(self.joystick_alt, 8)
        self.three = JoystickButton(self.joystick_alt, 9)
        self.four = JoystickButton(self.joystick_alt, 10)
        self.five = JoystickButton(self.joystick_alt, 11)
        self.six = JoystickButton(self.joystick_alt, 12)

        self.intake_in = JoystickButton(self.joystick_alt, 3)
        self.intake_out = JoystickButton(self.joystick_alt, 4)
        self.btn_solenoid = JoystickButton(self.joystick_alt, 1)

         # Set up Speed Controller Groups
        self.left_motors = wpilib.SpeedControllerGroup(CANSparkMax(1, MotorType.kBrushless), CANSparkMax(2, MotorType.kBrushless), CANSparkMax(3, MotorType.kBrushless))
        self.right_motors = wpilib.SpeedControllerGroup(CANSparkMax(4, MotorType.kBrushless), CANSparkMax(5, MotorType.kBrushless), CANSparkMax(6, MotorType.kBrushless))

        # Drivetrain
        self.train = wpilib.drive.DifferentialDrive(self.left_motors, self.right_motors)
Exemple #26
0
    def __init__(self, port: int = robotmap.joystick):
        super().__init__(port)

        buttons = {
            'a': 1,
            'b': 2,
            'x': 3,
            'y': 4,
            'bumper_l': 5,
            'bumper_r': 6,
            'back': 7,
            'start': 8,
            'l_3': 9,
            'r_3': 10
        }

        for button, number in buttons.items():
            self.__dict__[str(button)] = JoystickButton(self, number)
Exemple #27
0
    def createObjects(self):
        """
        Initialize all wpilib motors & sensors
        """
        # Joysticks
        self.joystick_left = wpilib.Joystick(0)
        self.joystick_right = wpilib.Joystick(1)
        self.joystick_alt = wpilib.Joystick(2)
        self.btn_fine_movement = JoystickButton(self.joystick_right, 2)

        # Drive motor controllers
        # ID SCHEME:
        #   10^1: 1 = left, 2 = right
        #   10^0: 0 = front, 5 = rear
        self.lf_motor = WPI_TalonSRX(10)
        self.lr_motor = WPI_VictorSPX(15)
        self.rf_motor = WPI_TalonSRX(20)
        self.rr_motor = WPI_VictorSPX(25)
        self.lf_motor.configSelectedFeedbackSensor(
            WPI_TalonSRX.FeedbackDevice.CTRE_MagEncoder_Absolute
        )
        self.rf_motor.configSelectedFeedbackSensor(
            WPI_TalonSRX.FeedbackDevice.CTRE_MagEncoder_Absolute
        )
        # Following masters
        self.lr_motor.follow(self.lf_motor)
        self.rr_motor.follow(self.rf_motor)
        # Drive init
        self.train = wpilib.drive.DifferentialDrive(
            self.lf_motor, self.rf_motor
        )

        # Arm
        self.arm_motor = WPI_TalonSRX(0)
        self.arm_motor.configSelectedFeedbackSensor(
            WPI_TalonSRX.FeedbackDevice.CTRE_MagEncoder_Absolute
        )
        self.arm_limit = wpilib.DigitalInput(4)

        # Gyro
        self.gyro = navx.AHRS.create_spi()
        self.gyro.reset()

        self.control_loop_wait_time = 0.02
Exemple #28
0
    def __init__(self, robot):

        self.joy = wpilib.Joystick(0)

        # Put Some buttons on the SmartDashboard
        SmartDashboard.putData("Elevator Bottom",
                               SetElevatorSetpoint(robot, 0))
        SmartDashboard.putData("Elevator Platform",
                               SetElevatorSetpoint(robot, 0.2))
        SmartDashboard.putData("Elevator Top", SetElevatorSetpoint(robot, 0.3))

        SmartDashboard.putData("Wrist Horizontal", SetWristSetpoint(robot, 0))
        SmartDashboard.putData("Raise Wrist", SetWristSetpoint(robot, -45))

        SmartDashboard.putData("Open Claw", OpenClaw(robot))
        SmartDashboard.putData("Close Claw", CloseClaw(robot))

        SmartDashboard.putData("Deliver Soda", Autonomous(robot))

        # Create some buttons
        d_up = JoystickButton(self.joy, 5)
        d_right = JoystickButton(self.joy, 6)
        d_down = JoystickButton(self.joy, 7)
        d_left = JoystickButton(self.joy, 8)
        l2 = JoystickButton(self.joy, 9)
        r2 = JoystickButton(self.joy, 10)
        l1 = JoystickButton(self.joy, 11)
        r1 = JoystickButton(self.joy, 12)

        # Connect the buttons to commands
        d_up.whenPressed(SetElevatorSetpoint(robot, 0.2))
        d_down.whenPressed(SetElevatorSetpoint(robot, -0.2))
        d_right.whenPressed(CloseClaw(robot))
        d_left.whenPressed(OpenClaw(robot))

        r1.whenPressed(PrepareToPickup(robot))
        r2.whenPressed(Pickup(robot))
        l1.whenPressed(Place(robot))
        l2.whenPressed(Autonomous(robot))
    def robotInit(self):
        try:
            wpilib.CameraServer.launch()
        except:
            pass
        self.stick = wpilib.Joystick(0)
        self.base = Base(rev.CANSparkMax(4, rev.MotorType.kBrushless),
                         rev.CANSparkMax(2, rev.MotorType.kBrushless),
                         rev.CANSparkMax(3, rev.MotorType.kBrushless),
                         rev.CANSparkMax(1, rev.MotorType.kBrushless),
                         AHRS.create_spi(wpilib.SPI.Port.kMXP), self.stick)
        self.lift = Lift(WPI_TalonSRX(3), wpilib.DigitalInput(0),
                         wpilib.DigitalInput(1), self.stick)
        self.arm = Arm(wpilib.Solenoid(5, 2), wpilib.Solenoid(5, 4),
                       wpilib.Solenoid(5, 1), wpilib.Solenoid(5, 5),
                       self.stick)
        self.testvar = 0
        self.ballintake = BallIntake(WPI_TalonSRX(4))
        try:
            self.ledController = LEDController.getInstance()
        except:
            pass

        # Various one-time initializations happen here.
        self.lift.initSensor()
        self.base.navx.reset()
        try:
            NetworkTables.initialize()
        except:
            pass
        try:
            self.visiontable = NetworkTables.getTable("visiontable")
        except:
            pass
        self.lights = False
        self.op = False
        self.testButton = JoystickButton(self.stick, 16)
        self.roller = Roller(WPI_TalonSRX(20), WPI_TalonSRX(10), self.stick,
                             "init")
Exemple #30
0
    def createObjects(self):
        self.joystick = wpilib.Joystick(2)
        self.winch_button = JoystickButton(self.joystick, 6)
        self.cp_extend_button = JoystickButton(self.joystick, 5)
        self.cp_solenoid = wpilib.DoubleSolenoid(4, 5)
        self.cp_motor = CANSparkMax(10, MotorType.kBrushed)

        self.solenoid = wpilib.Solenoid(0)
        self.btn_solenoid = JoystickButton(self.joystick, 1)

        self.intake = WPI_VictorSPX(1)

        self.cp_motor_button = JoystickButton(self.joystick, 7)
        self.winch_motor = CANSparkMax(8, MotorType.kBrushless)

        self.six = JoystickButton(self.joystick, 12)
        self.shooter_motor = CANSparkMax(7, MotorType.kBrushed)
        self.shooter_motor.restoreFactoryDefaults()
        self.shooter_motor.setOpenLoopRampRate(0)

        self.intake_in = JoystickButton(self.joystick, 3)
        self.intake_out = JoystickButton(self.joystick, 4)