Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.usfirst.frc.team5510.robot;
- import edu.wpi.first.wpilibj.*;
- import edu.wpi.first.wpilibj.drive.DifferentialDrive;
- //import edu.wpi.first.wpilibj.drive.DifferentialDrive;
- //import edu.wpi.first.wpilibj.IterativeRobot;
- //import edu.wpi.first.wpilibj.Joystick;
- //import edu.wpi.first.wpilibj.RobotDrive;
- //import edu.wpi.first.wpilibj.drive.DifferentialDrive;
- //import edu.wpi.first.wpilibj.Spark;
- //import edu.wpi.first.wpilibj.Talon;
- //import edu.wpi.first.wpilibj.Timer;
- //import edu.wpi.first.wpilibj.Timer.StaticInterface;
- //import edu.wpi.first.wpilibj.Victor;
- import edu.wpi.first.wpilibj.smartdashboard.SendableChooser;
- import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
- public class Robot extends IterativeRobot {
- private SendableChooser<String> m_chooser = new SendableChooser<>();
- final String leftStartAlpha = "Left Start Alpha";
- final String midStartAlpha = "Mid Start Alpha";
- final String rightStartAlpha = "Right Start Alpha";
- final String leftStartBeta = "Left Start Beta";
- final String midStartBeta = "Mid Start Beta";
- final String rightStartBeta = "Right Start Beta";
- final String shtf = "Sh*t Hits The Fan";
- String autoSelected;
- SendableChooser <String> chooser = new SendableChooser<>();
- Victor leftFront;
- Victor leftBack;
- Victor rightFront;
- Victor rightBack;
- Victor cubeLeft;
- Victor cubeRight;
- Victor climber;
- Victor elevator;
- boolean onDrive;
- boolean driveArcade;
- boolean driveGTA;
- boolean driveReverse;
- boolean speedNos;
- boolean speedCreep;
- boolean speedNormal;
- Joystick xboxController; //mechanism
- Joystick logitechController; //drive
- DigitalInput climberLimitSwitch;
- double autoTimerStart;
- DifferentialDrive tomato;
- @Override
- public void robotInit() {
- //m_chooser.addDefault("Default Auto", kDefaultAuto);
- //m_chooser.addObject("My Auto", kCustomAuto);
- SmartDashboard.putData("Auto choices", m_chooser);
- chooser.addObject("Left Start Alpha", leftStartAlpha);
- chooser.addObject("Mid Start Alpha", midStartAlpha);
- chooser.addObject("Right Start Alpha" , rightStartAlpha);
- chooser.addObject("Left Start Beta", leftStartBeta);
- chooser.addObject("Mid Start Beta", midStartBeta);
- chooser.addObject("Right Start Beta", rightStartBeta);
- chooser.addObject("Sh*t Hits The Fan", shtf);
- SmartDashboard.putData("Auto modes", chooser);
- logitechController = new Joystick(0);
- xboxController = new Joystick(1);
- onDrive = false;
- driveArcade = false;
- driveGTA = false;
- driveReverse=false;
- speedCreep = false;
- speedNos = false;
- speedNormal = true;
- rightFront = new Victor (1); //port 1
- rightBack = new Victor (2); //port 2
- leftFront = new Victor (3); //port 3
- leftBack = new Victor (4); //port 4
- cubeLeft = new Victor (8); //ASSUMING THE TWO MOTORS ARE IN PORTS 6 AND 7
- cubeRight = new Victor (7);
- climber = new Victor (5);
- elevator = new Victor (6);
- climberLimitSwitch = new DigitalInput(1);
- tomato = new DifferentialDrive(new SpeedControllerGroup(leftFront, leftBack),
- new SpeedControllerGroup(rightFront, rightBack));
- }
- @Override
- public void autonomousInit() {
- //m_autoSelected = m_chooser.getSelected();
- //System.out.println("Auto selected: " + m_autoSelected);
- }
- @Override
- public void autonomousPeriodic() {
- double currTimer = Timer.getFPGATimestamp();
- double timeElapsed = currTimer-autoTimerStart;
- String gameData;
- gameData = DriverStation.getInstance().getGameSpecificMessage();
- if(gameData.length() > 0)
- {
- if(gameData.charAt(0) == 'L')
- {
- //Put left auto code here
- switch (autoSelected) {
- case leftStartAlpha:
- // Put Mid Start code here
- if (timeElapsed <2){
- tomato.arcadeDrive(-0.6, 0.0);
- }
- else if (timeElapsed <5){
- tomato.arcadeDrive(0.6, 0.0);
- }
- else if (timeElapsed < 6) {
- tomato.arcadeDrive(0.2, 0.0);
- }
- else if (timeElapsed>=15){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case midStartAlpha:
- //Put Left Start Code here
- if (timeElapsed <2) {
- tomato.arcadeDrive(-0.6, 0.5);
- }
- else if (timeElapsed <5){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case rightStartAlpha:
- //Put Right Start Code here
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case leftStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case midStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case rightStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case shtf:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.2, 0);
- }
- else if (timeElapsed<3){
- tomato.arcadeDrive(0.0, 0.0);
- }
- }
- } else {
- //Put right auto code here
- switch (autoSelected) {
- case leftStartAlpha:
- // Put Mid Start code here
- if (timeElapsed <2){
- tomato.arcadeDrive(-0.6, 0.0);
- }
- else if (timeElapsed <5){
- tomato.arcadeDrive(0.6, 0.0);
- }
- else if (timeElapsed < 6) {
- tomato.arcadeDrive(0.2, 0.0);
- }
- else if (timeElapsed>=15){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case midStartAlpha:
- //Put Left Start Code here
- if (timeElapsed <2) {
- tomato.arcadeDrive(-0.6, 0.5);
- }
- else if (timeElapsed <5){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case rightStartAlpha:
- //Put Right Start Code here
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case leftStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case midStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case rightStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case shtf:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.2, 0);
- }
- else if (timeElapsed<3){
- tomato.arcadeDrive(0.0, 0.0);
- }
- }
- }
- } else {
- //Put right auto code here
- switch (autoSelected) {
- case leftStartAlpha:
- // Put Mid Start code here
- if (timeElapsed <2){
- tomato.arcadeDrive(-0.6, 0.0);
- }
- else if (timeElapsed <5){
- tomato.arcadeDrive(0.6, 0.0);
- }
- else if (timeElapsed < 6) {
- tomato.arcadeDrive(0.2, 0.0);
- }
- else if (timeElapsed>=15){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case midStartAlpha:
- //Put Left Start Code here
- if (timeElapsed <2) {
- tomato.arcadeDrive(-0.6, 0.5);
- }
- else if (timeElapsed <5){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case rightStartAlpha:
- //Put Right Start Code here
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case leftStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case midStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case rightStartBeta:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.5, 0.5);
- }
- else if (timeElapsed<5){
- tomato.arcadeDrive(0.5, 0.5);
- }
- else if (timeElapsed<6){
- tomato.arcadeDrive(0.0, 0.0);
- tomato.setSafetyEnabled(true);
- }
- break;
- case shtf:
- if (timeElapsed<2){
- tomato.arcadeDrive(-0.2, 0);
- }
- else if (timeElapsed<3){
- tomato.arcadeDrive(0.0, 0.0);
- }
- }
- }
- }
- @Override
- public void teleopPeriodic() {
- //Drivetrain
- //double driveSensitivity;
- //driveSensitivity = Math.abs(logitechController.getRawAxis(3)); //Positive is 0 and Negative is 1
- boolean driveReverse;
- driveReverse = false;
- boolean deployToggle1;
- deployToggle1 = false;
- tomato.arcadeDrive(-logitechController.getRawAxis(1) * 0.92, logitechController.getRawAxis(0) * 0.92);
- if (logitechController.getRawButton(2) && driveReverse == false)
- {
- //drive normal
- tomato.arcadeDrive(-logitechController.getRawAxis(1) * 0.92, logitechController.getRawAxis(0) * 0.92);
- deployToggle1 = true;
- }
- else if (!logitechController.getRawButton(2) && driveReverse == false && deployToggle1 == true)
- {
- driveReverse = true;
- } else if (logitechController.getRawButton(2) && driveReverse == true)
- {
- //drive in reverse
- tomato.arcadeDrive(logitechController.getRawAxis(7) * 0.92, -logitechController.getRawAxis(0) * 0.92);
- deployToggle1 = false;
- }
- else if (!logitechController.getRawButton(2) && driveArcade == true && deployToggle1 == false)
- {
- driveReverse = false;
- }
- //Mechanisms
- elevator.set((xboxController.getRawAxis(1) != 0 ? 0.8 : xboxController.getRawAxis(1) != 0 ? -0.5 : xboxController.getRawAxis(1) != 0 ? -0.5: xboxController.getRawAxis(1) != 0 ? 0.8 : 0));
- //elevator.set((xboxController.getRawButton(5) ? 0.8 : xboxController.getRawButton(5) ? -0.5 : xboxController.getRawButton(6) ? -0.5: xboxController.getRawButton(6) ? 0.8 : 0));
- cubeLeft.set((xboxController.getRawButton(5) ? -0.7 : xboxController.getRawButton(6) ? 0.7 : xboxController.getRawButton(5) ? 0.7 : xboxController.getRawButton(5) ? 0.7 : 0));
- cubeRight.set((xboxController.getRawButton(5) ? 0.7 : xboxController.getRawButton(6) ? -0.7 : xboxController.getRawButton(6) ? -0.7 : xboxController.getRawButton(6) ? -0.7 : 0));
- //Limit Switch
- if (climberLimitSwitch.get() == true) {
- climber.set((xboxController.getRawButton(2) ? 0.5 : xboxController.getRawButton(2) ? -0.9 : xboxController.getRawButton(4) ? -0.9 : xboxController.getRawButton(4) ? 0.5 : 0));
- } else {
- climber.set(0.95);
- }
- /*
- *
- * CODE FOR USING ONLY ONE CONTROLLER
- elevator.set((logitechController.getRawButton(7) ? 0.5 : logitechController.getRawButton(7) ? -0.5 : logitechController.getRawButton(8) ? -0.5: logitechController.getRawButton(8) ? 0.5 : 0));
- cubeLeft.set((logitechController.getRawButton(1) ? -0.7 : logitechController.getRawButton(2) ? 0.7 : logitechController.getRawButton(1) ? 0.7 : logitechController.getRawButton(1) ? 0.7 : 0));
- cubeRight.set((logitechController.getRawButton(1) ? 0.7 : logitechController.getRawButton(2) ? -0.7 : logitechController.getRawButton(2) ? -0.7 : logitechController.getRawButton(2) ? -0.7 : 0));
- if (climbLimitSwitch.get() == true) {
- climb.set((logitechController.getRawButton(3) ? 0.9 : logitechController.getRawButton(3) ? -0.9 : logitechController.getRawButton(4) ? -0.9 : logitechController.getRawButton(4) ? 0.9 : 0));
- } else {
- climb.set(-0.95);
- }
- */
- }
- @Override
- public void testPeriodic() {
- }
- }
- /*XBOXCONTROLLER MAPPING:
- * a = button1
- * b = button2
- * x = button3
- * y = button4
- * LB = Button5
- * RB = Button6
- * leftJoystickUp&Down = Axis1
- * rightJoystickUp&Down = Axis5
- * leftJoystickLeft&Right = Axis 0
- * rightJoystickLeft&Right = Axis 4
- * LT = Axis2
- * RT = Axis3
- * back = Button7
- * start Button8
- * leftJoystickPushDown = Button 9
- * rightJoystickPushDown = Button 10
- */
- /* Questions for Davinci
- * How to control elevator and climb with axis, not buttons
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement