void HandleArmInputs(void) { if (gamepad.GetLeftY() < -0.1) { if (potentiometer.GetVoltage() < 4.5) { armMotor.Set(1.0); } else { armMotor.Set(0.0); } } else if (gamepad.GetLeftY() > 0.1) { if (potentiometer.GetVoltage() > .5) { armMotor.Set(-1.0); } else { armMotor.Set(0.0); } } else { armMotor.Set(0.0); } if (gamepad.GetEvent(BUTTON_CLAW_1_LOCKED) == kEventClosed) { greenClaw.Set(DoubleSolenoid::kForward); } else if (gamepad.GetEvent(BUTTON_CLAW_1_UNLOCKED) == kEventClosed) { greenClaw.Set(DoubleSolenoid::kReverse); } else if (gamepad.GetEvent(BUTTON_CLAW_2_LOCKED) == kEventClosed) { yellowClaw.Set(DoubleSolenoid::kForward); } else if (gamepad.GetEvent(BUTTON_CLAW_2_UNLOCKED) == kEventClosed) { yellowClaw.Set(DoubleSolenoid::kReverse); } }
void Autonomous(void) { myRobot.SetSafetyEnabled(false); // Move the arm to a level position armMotor.Set(ARM_FWD); while (!((potentiometer.GetVoltage() > 2.4) && (potentiometer.GetVoltage() < 2.6))) { // Check to make sure we don't overrotate the arm in either direction if (potentiometer.GetVoltage() > 4.5 || potentiometer.GetVoltage() < 0.5) { armMotor.Set(0.0); return; } Wait(0.2); UpdateStatusDisplays(); } armMotor.Set(0.0); // Drive robot DoAutonomousMoveStep(&m_autoForward[0], "Moving..."); DoAutonomousMoveStep(&m_autoForward[1], "Moving..."); //Shoot for five seconds Timer* t = new Timer(); t->Start(); shooterMotor.Set(SHOOTER_FWD); indexerMotor.Set(INDEXER_FWD); while(!t->HasPeriodPassed(5.0)) { Wait(0.02); } shooterMotor.Set(0.0); indexerMotor.Set(0.0); }
void HandleResetButton(void) { if (gamepad.GetEvent(BUTTON_STOP_ALL) == kEventClosed) { collectorMotor.Set(0.0); m_collectorMotorRunning = false; shooterMotor.Set(0.0); m_shooterMotorRunning = false; indexerMotor.Set(0.0); armMotor.Set(0.0); jogTimer.Stop(); jogTimer.Reset(); m_jogTimerRunning = false; } }
void UpdateStatusDisplays(void) { // Joystick values SmartDashboard::PutNumber("stickX", stick.GetX()); SmartDashboard::PutNumber("stickY", stick.GetY()); SmartDashboard::PutBoolean("shift", stick2.GetState(BUTTON_SHIFT) ? kStateClosed : kStateOpen); // Shooter/Indexer values SmartDashboard::PutBoolean("indexSwitch", indexSwitch.GetState() ? kStateClosed : kStateOpen); SmartDashboard::PutNumber("shooterMotor", shooterMotor.Get()); SmartDashboard::PutNumber("indexerMotor", indexerMotor.Get()); // Misc Motor Values SmartDashboard::PutNumber("collectorMotor", collectorMotor.Get()); SmartDashboard::PutNumber("armMotor", armMotor.Get()); // Arm position via potentiometer voltage (2.5 volts is center position) dsLCD->PrintfLine(DriverStationLCD::kUser_Line3, "Voltage: %3.1f", potentiometer.GetVoltage()); SmartDashboard::PutNumber("Potentiometer", potentiometer.GetVoltage()); // Claw lock states SmartDashboard::PutBoolean("Green Claw State", greenClawLockSwitch.GetState()); SmartDashboard::PutBoolean("Yellow Claw State", yellowClawLockSwitch.GetState()); dsLCD->PrintfLine(DriverStationLCD::kUser_Line4, "Green : %s", greenClawLockSwitch.GetState() ? "Locked" : "Unlocked"); dsLCD->PrintfLine(DriverStationLCD::kUser_Line5, "Yellow: %s", yellowClawLockSwitch.GetState() ? "Locked" : "Unlocked"); // Pneumatic shifter count SmartDashboard::PutNumber("Shift Count", m_shiftCount); // State viariables dsLCD->PrintfLine(DriverStationLCD::kUser_Line6, "CMR: %s SMR: %s JTR: %s", m_collectorMotorRunning ? "T" : "F", m_shooterMotorRunning ? "T" : "F", m_jogTimerRunning ? "T" : "F"); }
void HandleArmInputs(void) { if (!m_jogTimerRunning) { if (gamepad.GetLeftY() < -0.1) { if (potentiometer.GetVoltage() < 4.5) { armMotor.Set(ARM_FWD); } else { armMotor.Set(0.0); } } else if (gamepad.GetLeftY() > 0.1) { if (potentiometer.GetVoltage() > .5) { armMotor.Set(ARM_REV); } else { armMotor.Set(0.0); } } else if (kEventClosed == gamepad.GetDPadEvent(Gamepad::kUp)) { armMotor.Set(ARM_FWD); jogTimer.Start(); jogTimer.Reset(); m_jogTimerRunning = true; } else if (kEventClosed == gamepad.GetDPadEvent(Gamepad::kDown)) { armMotor.Set(ARM_REV); jogTimer.Start(); jogTimer.Reset(); m_jogTimerRunning = true; } else { armMotor.Set(0.0); } } else if (jogTimer.HasPeriodPassed(JOG_TIME)) { armMotor.Set(0); jogTimer.Stop(); jogTimer.Reset(); m_jogTimerRunning = false; } if (gamepad.GetEvent(BUTTON_CLAW_1_LOCKED) == kEventClosed) { greenClaw.Set(DoubleSolenoid::kForward); } else if (gamepad.GetEvent(BUTTON_CLAW_1_UNLOCKED) == kEventClosed) { greenClaw.Set(DoubleSolenoid::kReverse); } else if (gamepad.GetEvent(BUTTON_CLAW_2_LOCKED) == kEventClosed) { yellowClaw.Set(DoubleSolenoid::kForward); } else if (gamepad.GetEvent(BUTTON_CLAW_2_UNLOCKED) == kEventClosed) { yellowClaw.Set(DoubleSolenoid::kReverse); } }