Go to Post Robot: Aww, the FMS doesn't want to chat with me anymore. Was it something I said? - EricVanWyk [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
  #1   Spotlight this post!  
Unread 17-02-2011, 16:07
RoboElite640 RoboElite640 is offline
Registered User
FRC #0640
 
Join Date: Nov 2010
Location: NY
Posts: 36
RoboElite640 is an unknown quantity at this point
help needed with code for pneumatics

can someone check this over with us? we're not sure exactly where we need to place the piston, pressure switch, compressor, and solenoids in the digital sidecar.



package org.team640;

import edu.wpi.first.wpilibj.Compressor;
import edu.wpi.first.wpilibj.Jaguar;
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.Relay;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.SimpleRobot;
import edu.wpi.first.wpilibj.Solenoid;
import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj.Servo;
import edu.wpi.first.wpilibj.camera.AxisCamera;
import edu.wpi.first.wpilibj.camera.AxisCameraException;
import edu.wpi.first.wpilibj.image.ColorImage;
import edu.wpi.first.wpilibj.image.NIVisionException;


public class armtest extends SimpleRobot {
private final double TARGET_SCORE_THRESHOLD = .01;
public static final double ELBOW_EXTEND_SPEED = 0.2;
public static final double ELBOW_EXTEND_TIME = 5.0;
public static final double WRIST_EXTEND_SPEED = 0.1;
public static final double WRIST_EXTEND_TIME = 2.0;

private RobotDrive robotDrive = new RobotDrive(1,2);
private Jaguar wrist = new Jaguar (3);
private Jaguar elbow = new Jaguar (4);
private Joystick stickLeft = new Joystick(1);
private Joystick stickRight = new Joystick(2);
private Servo cameraTilt = new Servo(3);
private Relay arm = new Relay(3);
private Compressor compressor = new Compressor(1,2);
private Solenoid pistonUp = new Solenoid(5);
private Solenoid pistonDown = new Solenoid(6);
private AxisCamera cam;
private TrackerDashboard trackerDashboard = new TrackerDashboard();

//In this, X represents the relay output number and Y is the joystick port.


public armtest() {
getWatchdog().setExpiration(0.5);
initializeTargetting();
compressor.start();
}

private void processTarget() {
try {
System.out.println("Trying to obtain image");
if (cam.freshImage()) {// && turnController.onTarget()) {
System.out.println("Have fresh image");
ColorImage image = cam.getImage();
Thread.yield();
Target[] targets = Target.findCircularTargets(image);
Thread.yield();
image.free();
if (targets.length <= 100 || targets[10].m_score
< TARGET_SCORE_THRESHOLD) //length == 0 (original)
{
System.out.println("No target found");
Target[] newTargets = new Target[targets.length + 1];
newTargets[0] = new Target();
newTargets[0].m_majorRadius = 10;
// radius = 0 (original)
newTargets[0].m_minorRadius = 1;
newTargets[0].m_score = 2;
for (int i = 1; i < targets.length; i++) {
newTargets[i + 1] = targets[i];
}
trackerDashboard.updateVisionDashboard(0.0, 0.0,
0.0, 0.0, newTargets);
} else {
System.out.println("HAVE TARGET!!!!!");
System.out.println(targets[0]);
System.out.println("Target Angle: "
+ targets[0].getHorizontalAngle());
trackerDashboard.updateVisionDashboard(0.0, 0.0,
0.0, targets[0].m_xPos / targets[0].m_xMax, targets);
}
} else {
System.out.println("No image");
}
} catch (NIVisionException ex) {
ex.printStackTrace();
} catch (AxisCameraException ex) {
ex.printStackTrace();
}
}

private void initializeTargetting() {
Timer.delay(10.0);
cam = AxisCamera.getInstance();
cam.writeResolution(AxisCamera.ResolutionT.k320x24 0);
cam.writeBrightness(0);
}

public void operatorControl() {
getWatchdog().setEnabled(true);
while (isEnabled() && isOperatorControl()) {
getWatchdog().feed();
{ robotDrive.tankDrive(stickLeft, stickRight);
if (stickLeft.getTrigger()) {
arm.set(Relay.Value.kForward);
} else if (stickRight.getTrigger()) {
arm.set(Relay.Value.kReverse);
} else {
arm.set(Relay.Value.kOff);

}
//In this, X represents the relay output number and Y is the joystick port.

if (stickLeft.getTrigger()) {
elbow.set(ELBOW_EXTEND_SPEED);
Timer.delay(ELBOW_EXTEND_TIME);
elbow.set(0);

wrist.set(WRIST_EXTEND_SPEED);
Timer.delay(WRIST_EXTEND_TIME);
wrist.set(0);
}
if (stickLeft.getTrigger()) {
pistonUp.set(true);
} else if (stickLeft.getRawButton(3)) {
pistonDown.set(true);
} else {
pistonUp.set(false);
pistonDown.set(false);
}
if (stickLeft.getTrigger()) {
cameraTilt.set(1.0);
} else {
cameraTilt.set(0.5);
}
}
}
}
}
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:01.

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