Go to Post FIRST inspired me to become a pain in the patootie or something. :) - Madison [more]
Home
Go Back   Chief Delphi > Technical > Programming > Java
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #4   Spotlight this post!  
Unread 11-02-2014, 21:42
wolfspell12 wolfspell12 is offline
Registered User
FRC #3244
 
Join Date: Jan 2014
Location: Minnesota
Posts: 16
wolfspell12 is an unknown quantity at this point
Re: How in the world do I code and wire this wacky sensor(a.k.a. Photoswitch)

It is actually 24 volts according to the manufacture's manual that we printed- don't mean to be a know-it-all.

Anyways, we can't even get the part to move without the sensor. The Jag code all looks normal to me.

We tested and the jag will operate with BDC-Comm.

Anyone have a clue what's wrong with our code?
Code:
/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2008. All Rights Reserved.                             */
/* Open Source Software - may be modified and shared by FRC teams. The code   */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project.                                                               */
/*----------------------------------------------------------------------------*/
package edu.wpi.first.wpilibj.templates;

import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.Jaguar;
import edu.wpi.first.wpilibj.Compressor;
import edu.wpi.first.wpilibj.DigitalInput;
import edu.wpi.first.wpilibj.DriverStationLCD;
import edu.wpi.first.wpilibj.Gyro;
import edu.wpi.first.wpilibj.Solenoid;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.IterativeRobot;

/**
 * The VM is configured to automatically run this class, and to call the
 * functions corresponding to each mode, as described in the IterativeRobot
 * documentation. If you change the name of this class or the package after
 * creating this project, you must also update the manifest file in the resource
 * directory.
 */
public class RobotTemplate extends IterativeRobot {

    Joystick driver = new Joystick(1);
    Joystick operator = new Joystick(2);
    Jaguar claw = new Jaguar(6);
    Jaguar frontLeft = new Jaguar(2);
    Jaguar rearLeft = new Jaguar(3);
    Jaguar frontRight = new Jaguar(4);
    Jaguar rearRight = new Jaguar(5);
    Jaguar defender = new Jaguar(10);
    Compressor comp = new Compressor(1, 1);//Constructor Order: Digitial I/O, Relay
    Solenoid boomup = new Solenoid(7);
    Solenoid boomdown = new Solenoid(1);
    RobotDrive drive = new RobotDrive(frontLeft, rearLeft, frontRight, rearRight);
    Gyro gyro = new Gyro(1);
    //Timer time = new Timer();
    DigitalInput photoswitch = new DigitalInput(2);
    DriverStationLCD dataPrinter = DriverStationLCD.getInstance();
    boolean didAuto = false;

    /**
     * This function is run when the robot is first started up and should be
     * used for any initialization code.
     */
    public void robotInit() {
        gyro.reset();
        comp.start();
        drive.setSafetyEnabled(false);
        /* drive.setInvertedMotor(RobotDrive.MotorType.kFrontLeft, false);
        drive.setInvertedMotor(RobotDrive.MotorType.kRearLeft, false);
        drive.setInvertedMotor(RobotDrive.MotorType.kFrontRight, false);
        drive.setInvertedMotor(RobotDrive.MotorType.kRearRight, false);*/
        
    }

    /**
     * This function is called periodically during autonomous
     */
    public void autonomousPeriodic() {
        log("didAuto= " + didAuto);

        if (didAuto) {
            return;//after value is set to true, the code will stop executing.
        }
        final double autoSpeed = 1.0;
        final long autoTime = 5000; //mili seconds

        long start = System.currentTimeMillis();
        while (true) {
            drive.tankDrive(autoSpeed, autoSpeed);
            //frontLeft.set(autoSpeed);//invert these if it drives backwards
            //rearLeft.set(autoSpeed);
            //frontRight.set(-autoSpeed);//Experimental
            //rearRight.set(-autoSpeed);//inversion of input will drive forward (we hope!)
            if ((System.currentTimeMillis() - start) > autoTime) {
                break;
            }
        }//moves robot straight forward for five seconds
//       log("Time start " + System.currentTimeMillis());
//       Timer.delay(autoTime);
//       log("Timer stop " + System.currentTimeMillis());
        claw.set(-.7);//drops claw
        didAuto = true;//prevents autonomous from running again.
    }

    /**
     * This function is called periodically during operator control
     */
    public void teleopPeriodic() {
        //final double axisOutput = driver.getRawAxis(4);
        drive.mecanumDrive_Cartesian(driver.getRawAxis(1), driver.getRawAxis(3), -driver.getRawAxis(2), gyro.getAngle());
        /*if (driver.getRawAxis(4) < -0.1) {
            //to strafe left
            log("I'm going left " + axisOutput);
            frontLeft.set(-driver.getRawAxis(4));
            rearLeft.set(driver.getRawAxis(4));
            frontRight.set(driver.getRawAxis(4));
            rearRight.set(-driver.getRawAxis(4));
        } else if (driver.getRawAxis(4) > 0.1) {
            //to strafe right
            log("I'm going right " + axisOutput);
            frontLeft.set(driver.getRawAxis(4));
            rearLeft.set(-driver.getRawAxis(4));
            frontRight.set(-driver.getRawAxis(4));
            rearRight.set(driver.getRawAxis(4));
        }  else if(driver.getRawAxis(5) > 0){
         frontLeft.set(driver.getRawAxis(5));
         rearLeft.set(driver.getRawAxis(5));
         frontRight.set(driver.getRawAxis(5));
         rearRight.set(driver.getRawAxis(5));
         }
         else if(driver.getRawAxis(5) < 0){
         frontLeft.set(driver.getRawAxis(5));
         rearLeft.set(driver.getRawAxis(5));
         frontRight.set(driver.getRawAxis(5));
         rearRight.set(driver.getRawAxis(5));
         } else {
            drive.mecanumDrive_Cartesian(driver.getRawAxis(1), driver.getRawAxis(2), -driver.getRawAxis(3), gyro.getAngle());
            log("I'm reaching the else. Yay!");
        }*/

        if (operator.getRawButton(4)) {
            //Y button
            claw.set(1);
        } else if (operator.getRawButton(1)) {
            claw.set(-0.7);
        } else {
            claw.set(0);
        }

        if (operator.getRawButton(8)) {
            //Start button
            comp.start();
        } else if (operator.getRawButton(7)) {
            //Back 
            comp.stop();
        }

        if (driver.getRawButton(8)) {
            comp.start();
        } else if (driver.getRawButton(7)) {
            comp.stop();
        }

        if (operator.getRawButton(5)) {
            boomup.set(true);
            boomdown.set(false);
        } else if (operator.getRawButton(6)) {
            boomdown.set(true);
            boomup.set(false);
        }
        /* if (photoswitch.get() == true) {
        if (operator.getRawButton(2)) {
        defender.set(1.0);
        }
        }
        else if (photoswitch.get() == false) {
        if (operator.getRawButton(3)) {
        defender.set(-1.0);
        }
        }*/
        if (operator.getRawButton(2)) {
            defender.set(1.0);
        } else if (operator.getRawButton(3)) {
            defender.set(-1.0);
        }
    }
        
    

    /**
     * This function is called periodically during test mode
     */
    public void testPeriodic() {
        didAuto = false;
    }

    public double centerXbox(double axisOutput) {
        double reducedSensitivity = axisOutput;
        if (axisOutput > -0.2 || axisOutput < 0.2) {
            reducedSensitivity = 0;
        }
        return reducedSensitivity;
    }

    private void log(String msg) {
        dataPrinter.clear();
        dataPrinter.println(DriverStationLCD.Line.kUser1, 1, msg);
        dataPrinter.updateLCD();
    }

}
Reply With Quote
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 11:28.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi