def __init__(self, robot): super().__init__("Climb") self.robot = robot self.winchMotor = Spark(robotmap.CLIMBWINCH) self.armUpSolenoid = Solenoid(robotmap.CLIMBARM_UP) self.armDownSolenoid = Solenoid(robotmap.CLIMBARM_DOWN) self.lockCloseSolenoid = Solenoid(robotmap.CLIMBCLAMPLOCK_CLOSE) self.lockOpenSolenoid = Solenoid(robotmap.CLIMBCLAMPLOCK_OPEN) self.hookLimit = DigitalInput(robotmap.LIMIT_SWITCH_HOOK)
def initialize(self): self.xbox = oi.getJoystick(2) self.joystick0 = oi.getJoystick(0) self.joystick1 = oi.getJoystick(1) self.kicker = Solenoid(map.hatchKick) self.slider = Solenoid(map.hatchSlide) self.kick("in") self.slide("in") self.lastKick = False self.lastSlide = False
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 __init__(self, robot): super().__init__("Claw") self.robot = robot self.leftMotor = Spark(robotmap.CLAWLEFT) self.rightMotor = Spark(robotmap.CLAWRIGHT) self.CLAW_OPEN = Solenoid(robotmap.PCM1_CANID, robotmap.CLAW_OPEN_SOLENOID) self.CLAW_CLOSE = Solenoid(robotmap.PCM1_CANID, robotmap.CLAW_CLOSE_SOLENOID) self.sensor = InfraredSensor(robotmap.INFRARED_SENSOR_CHANNEL) self.close()
def __init__(self, robot): super().__init__("Drive") self.robot = robot self.left_master = WPI_TalonSRX(robotmap.DRIVELEFTMASTER) self.right_master = WPI_TalonSRX(robotmap.DRIVERIGHTMASTER) self.left_slave = WPI_TalonSRX(robotmap.DRIVELEFTSLAVE) self.right_slave = WPI_TalonSRX(robotmap.DRIVERIGHTSLAVE) self.shifter_high = Solenoid(robotmap.PCM1_CANID, robotmap.SHIFTER_HIGH) self.shifter_low = Solenoid(robotmap.PCM1_CANID, robotmap.SHIFTER_LOW) self.differential_drive = DifferentialDrive(self.left_master, self.right_master) self.TalonConfig() self.shiftLow()
def __init__(self): self.mainCompressor = Compressor(PCMID) self.intakeSolenoid = Solenoid(PCMID, intakeSolenoidChannel) self.isExtended = False self.mainCompressor.start()
def __init__(self, Robot): #self.navx = Robot.navx self.speedLimit = 0.999 self._leftRamp = 0.0 self._rightRamp = 0.0 self._rampSpeed = 6.0 self._kOonBalanceAngleThresholdDegrees = 5.0 self._autoBalance = True self._quickstop_accumulator = 0.0 self._old_wheel = 0.0 self._driveReversed = True self._drivePool = DataPool("Drive") # setup drive train motors self.rightDrive = SyncGroup(RIGHT_DRIVE_MOTOR_IDS, WPI_VictorSPX) self.leftDrive = SyncGroup(LEFT_DRIVE_MOTOR_IDS, WPI_VictorSPX) self.rightDrive.setInverted(True) # setup drive train gear shifter self.shifter = Solenoid(DRIVE_SHIFTER_PORT) self.shifter.set(False) # setup drive train encoders self.leftEncoder = Encoder(LEFT_DRIVE_ENCODER_A, LEFT_DRIVE_ENCODER_B, False, Encoder.EncodingType.k4X) self.rightEncoder = Encoder(RIGHT_DRIVE_ENCODER_A, RIGHT_DRIVE_ENCODER_B, False, Encoder.EncodingType.k4X) self.leftEncoder.setDistancePerPulse(DRIVE_INCHES_PER_TICK) self.leftEncoder.setReverseDirection(True) self.rightEncoder.setReverseDirection(False) self.rightEncoder.setDistancePerPulse(DRIVE_INCHES_PER_TICK)
def createPistons(self, pistonSpec): piston = None if pistonSpec['Type'] == 'Double': piston = DoubleSolenoid(pistonSpec['portA'], pistonSpec['portB']) elif pistonSpec['Type'] == 'single': piston = Solenoid(pistonSpec['portA']) else: print("IDK your pistons") return piston
def __init__(self, Robot): self._lift = Robot.lift self._ramp = 0.0 self._rampSpeed = 6.0 self._intakeMotorLeft = WPI_VictorSPX(*INTAKE_MOTOR_LEFT_IDS) self._intakeMotorRight = WPI_VictorSPX(*INTAKE_MOTOR_RIGHT_IDS) self._intakeMotorRight.setInverted(True) self._intakePistons = Solenoid(INTAKE_PISTONS) self._photosensor = LimelightPhotosensor(Robot.limelight, 1)
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)
def __init__(self): super().__init__() self._l_motor = Talon(constants.motor_intake_l) self._r_motor = Talon(constants.motor_intake_r) self._intake_piston = Solenoid(constants.solenoid_intake) self._photosensor = DigitalInput(constants.far_photosensor) self._left_pwm = 0 self._right_pwm = 0 self._open = False
def initialize(self): #makes control objects self.xbox = oi.getJoystick(2) self.joystick0 = oi.getJoystick(0) self.joystick1 = oi.getJoystick(1) #makes solenoid objects to be used in kick and slide functions self.kicker = Solenoid(map.hatchKick) self.slider = Solenoid(map.hatchSlide) self.maxVolts = 10 timeout = 0 self.wheels = Talon(map.hatchWheels) self.wheels.setNeutralMode(2) self.wheels.configVoltageCompSaturation(self.maxVolts) self.wheels.configContinuousCurrentLimit(20, timeout) #20 Amps per motor self.wheels.configPeakCurrentLimit( 30, timeout) #30 Amps during Peak Duration self.wheels.configPeakCurrentDuration( 100, timeout) #Peak Current for max 100 ms self.wheels.enableCurrentLimit(True) self.wheels.setInverted(True) self.powerIn = 0.9 self.powerOut = -0.9 #sets kicker and slide solenoids to in self.kick("in") self.slide("in") #starts lastkick/slide booleans self.lastKick = False self.lastSlide = False self.hasHatch = False self.outPower = 0
def init(self): self.logger.info("DeepSpaceLift::init()") self.timer = wpilib.Timer() self.timer.start() self.robot_mode = RobotMode.TEST self.last_lift_adjust_time = 0 self.lift_adjust_timer = wpilib.Timer() self.lift_adjust_timer.start() self.state_timer = wpilib.Timer() self.current_state = LiftState.LIFT_START_CONFIGURATION self.current_lift_preset = LiftPreset.LIFT_PRESET_STOW self.current_lift_preset_val = self.lift_stow_position self.lift_setpoint = self.min_lift_position self.lift_adjust_val = 0 self.lift_talon = TalonSRX(robotmap.LIFT_CAN_ID) '''Select and zero sensor in init() function. That way the zero position doesn't get reset every time we enable/disable robot''' self.lift_talon.configSelectedFeedbackSensor(FeedbackDevice.Analog, 0, robotmap.CAN_TIMEOUT_MS) self.lift_talon.setSelectedSensorPosition(0, 0, robotmap.CAN_TIMEOUT_MS) self.lift_pneumatic_extend = Solenoid(robotmap.PCM1_CANID, robotmap.LIFT_RAISE_SOLENOID) self.lift_pneumatic_retract = Solenoid(robotmap.PCM1_CANID, robotmap.LIFT_LOWER_SOLENOID) self.lift_pneumatic_extend.set(False) self.lift_pneumatic_retract.set(True) self.test_lift_pneumatic = sendablechooser.SendableChooser() self.test_lift_pneumatic.setDefaultOption("Retract", 1) self.test_lift_pneumatic.addOption("Extend", 2) SmartDashboard.putData("TestLiftPneumatic", self.test_lift_pneumatic)
def __init__(self): super().__init__() self._l_motor = Talon(hardware.intake_left) self._r_motor = Talon(hardware.intake_right) self._intake_piston = Solenoid(hardware.intake_solenoid) self._left_pwm = 0 self._right_pwm = 0 self._open = False self._left_intake_amp = CircularBuffer(25) self._right_intake_amp = CircularBuffer(25) self._pulse_timer = Timer()
def __init__(self): super().__init__() self._motor = SyncGroup(Talon, hardware.elevator) self._stabilizer_piston = Solenoid(hardware.stabilizer_solenoid) # Motion Planning! self._follower = TrajectoryFollower() self._calibrated = False self.tote_count = 0 self.has_bin = False # Do we have a bin? self._reset = True # starting a new stack? self.tote_first = False # We're stacking totes without a bin. self._should_drop = False # Are we currently trying to get a bin ? self._manual_stack = False self._cap = False self._follower.set_goal(Setpoints.BIN) # Base state self._follower_thread = Thread(target=self.update_follower) self._follower_thread.start()
def __init__(self): super().__init__() self._motor = SyncGroup(Talon, constants.motor_elevator) self._position_encoder = Encoder(*constants.encoder_elevator) self._photosensor = DigitalInput(constants.photosensor) self._stabilizer_piston = Solenoid(constants.solenoid_dropper) self._position_encoder.setDistancePerPulse( (PITCH_DIAMETER * math.pi) / TICKS_PER_REVOLUTION) # Trajectory controlling stuff self._follower = TrajectoryFollower() self.assure_tote = CircularBuffer(5) self.auto_stacking = True # Do the dew self._tote_count = 0 # Keep track of totes! self._has_bin = False # Do we have a bin on top? self._new_stack = True # starting a new stack? self._tote_first = False # Override bin first to grab totes before anything else self._should_drop = False # Are we currently trying to get a bin ? self._close_stabilizer = True # Opens the stabilizer manually self.force_stack = False # manually actuates the elevator down and up self._follower.set_goal(Setpoints.BIN) # Base state self._follower_thread = Thread(target=self.update_follower) self._follower_thread.start() self._auton = False quickdebug.add_tunables(Setpoints, ["DROP", "STACK", "BIN", "TOTE", "FIRST_TOTE"]) quickdebug.add_printables( self, [('position', self._position_encoder.getDistance), ('photosensor', self._photosensor.get), "has_bin", "tote_count", "tote_first", "at_goal", "has_game_piece", "auto_stacking"])
def __init__(self): self.climbExtend = Solenoid(robotmap.PCM_ID, robotmap.CLIMB_EXTEND_SOLENOID) self.climbRetract = Solenoid(robotmap.PCM_ID, robotmap.CLIMB_RETRACT_SOLENOID) self.hookExtend = Solenoid(robotmap.PCM_ID, robotmap.HOOK_EXTEND_SOLENOID) self.hookRetract = Solenoid(robotmap.PCM_ID, robotmap.HOOK_RETRACT_SOLENOID) self.hookReleaseExtend = Solenoid(robotmap.PCM2_ID, robotmap.HOOK_RELEASE_EXTEND_SOLENOID) self.hookReleaseRetract = Solenoid(robotmap.PCM2_ID, robotmap.HOOK_RELEASE_RETRACT_SOLENOID) self.climbMotor = ctre.WPI_VictorSPX(robotmap.LIFT_WINCH_ID) self.climbExtend.set(False) self.climbRetract.set(True) self.hookExtend.set(False) self.hookRetract.set(True) self.hookReleaseExtend.set(True) self.hookReleaseRetract.set(False)
def __init__(self, can_id=0, channel=0): super().__init__() self.solenoid = Solenoid(can_id, channel)
def robotInit(self): self.solenoid = Solenoid(0, 1)
pickup_achange_motor1 = CANTalon(45) pickup_achange_motor2 = CANTalon(46) pickup_achange_motor1.changeControlMode(CANTalon.ControlMode.Follower) pickup_achange_motor1.set(47) pickup_achange_motor1.reverseOutput(True) pickup_roller_motor = CANTalon(8) pickup = Pickup(pickup_achange_motor1, pickup_achange_motor2, pickup_roller_motor) #Manual shooter Talons and Objects flywheel_motor = CANTalon(44) shooter_act = Solenoid(1) turntable_motor = CANTalon(12) manual_shooter = ManualShooter(flywheel_motor, shooter_act, turntable_motor) #DT Talons and Objects dt_right = CANTalon(1) # dt_r2 = CANTalon(2) # dt_r3 = CANTalon(3) dt_left = CANTalon(10) # dt_l2 = CANTalon(11) # dt_l3 = CANTalon(12) dt_shifter = Solenoid(0) # dt_r2.changeControlMode(CANTalon.ControlMode.Follower) # dt_r3.changeControlMode(CANTalon.ControlMode.Follower)
def __init__(self): super().__init__("Pneumatics") self.solenoid_R = Solenoid(robotmap.solenoid_R) self.solenoid_L = Solenoid(robotmap.solenoid_L) self.is_active = False
dt_r3.changeControlMode(CANTalon.ControlMode.Follower) dt_r4.changeControlMode(CANTalon.ControlMode.Follower) dt_l2.changeControlMode(CANTalon.ControlMode.Follower) dt_l3.changeControlMode(CANTalon.ControlMode.Follower) dt_l4.changeControlMode(CANTalon.ControlMode.Follower) dt_r2.set(1) dt_r3.set(1) dt_r4.set(1) dt_l2.set(7) dt_l3.set(7) dt_l4.set(7) dt = DriveTrain(1.0, dt_left, dt_right, left_encoder=None, right_encoder=None) #Pneumatics s_a = Solenoid(1) s_b = Solenoid(2) s_c = Solenoid(3) s_d = Solenoid(4) # Drive Controllers driver_stick = Attack3Joystick(0) xbox_controller = XboxJoystick(1) ac = ArcadeDriveController(dt, driver_stick) hid_sp = SensorPoller( (driver_stick, xbox_controller)) # human interface devices # Mech Talons, objects, and controller # define MechController mc = MechController(driver_stick, xbox_controller)