Go to Post I'm not certain that I agree with me on this reasoning, either. - Richard Wallace [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 20-01-2012, 23:26
kiushin564 kiushin564 is offline
Registered User
AKA: Marco Duran
FRC #0564 (Digital Impact)
Team Role: Programmer
 
Join Date: Jan 2010
Rookie Year: 2007
Location: Long Island, NY
Posts: 2
kiushin564 is an unknown quantity at this point
Digital Module 1 not found. Please Help?

My name is marco from team 564 Longwood, i recently tried to upload last years code and i have been having a problem where digital module 1 was not present and we checked the robot itself and nothing has changed since last years working code. Here's last years code, im wondering if you can take a look at the code, please and thank you



/*----------------------------------------------------------------------------*/
/* 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.camera.AxisCamera;
import edu.wpi.first.wpilibj.*;

/**
* 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
{
/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/

RobotDrive drive1; // Drive object
RobotDrive drive2; // Drive object
Joystick rightStick; // joystick
Joystick leftStick; // joystick
Joystick other; // joystick
Jaguar arm; // manipulator jaguar
Jaguar jag1; //driving jaguars
Jaguar jag2;
Jaguar jag3;
Jaguar jag4;
Servo twist; // pans camera left-right
Servo tilt; // pans camera up and down
Servo pin1; // servo for minibot release
Servo pin2;
// Solenoid clawfire; // claw 2
//Solenoid clawrelease; // claw 1
// Solenoid slidefire; // minibot slide 3
//Solenoid sliderelease;// minibot slide 4
//Compressor comp; // compressor
DigitalInput right; // lightsensor
DigitalInput middle; // lightsensor
DigitalInput left; // lightsensor
AnalogChannel pot; // potentiometer
//AxisCamera cam; // camera
Gyro gyro; // gyro
Relay relay;
DigitalInput pressureSwitch;
int autoPeriodicLoops;
int disabledPeriodicLoops;
int telePeriodicLoops;
static final int UNINITIALIZED_DRIVE = 0;
static final int ARCADE_DRIVE = 1;
static final int TANK_DRIVE = 2;
int driveMode;
int dsPacketsReceivedInCurrentSecond;
int count;
int count2;
boolean check;

public RobotTemplate()
{
System.out.println("Constructor Started");
drive1 = new RobotDrive(1,2); //left
drive2 = new RobotDrive(3,4); //right
rightStick = new Joystick(1);
leftStick = new Joystick(2);
other = new Joystick(3);
jag1 = new Jaguar(1, 1); //driving jaguars
jag2 = new Jaguar(1, 2);
jag3 = new Jaguar(1, 3);
jag4 = new Jaguar(1, 4);
arm = new Jaguar(1, 5); //to set up for new robot, 5 for winch
twist = new Servo(6); //plugged into 6
tilt = new Servo(7); //plugged into 7
pin1 = new Servo(8); //plugged into 8
pin2 = new Servo(9);
// clawfire = new Solenoid(1); //plugged into 1,2
//clawrelease = new Solenoid(2); //plugged into 1,2
//slidefire = new Solenoid(4); //plugged into 3,4
//sliderelease = new Solenoid(3); //plugged into 3,4
//comp = new Compressor(1,1); //plugged into 1,8

right = new DigitalInput(3);
middle = new DigitalInput(2);
left = new DigitalInput(9);
pot = new AnalogChannel(3); //slot 1 channel 3
gyro = new Gyro(2); //plugged into 2
relay = new Relay(1, Relay.Direction.kForward);
pressureSwitch = new DigitalInput(1);
dsPacketsReceivedInCurrentSecond = 0;
autoPeriodicLoops = 0;
disabledPeriodicLoops = 0;
telePeriodicLoops = 0;
driveMode = UNINITIALIZED_DRIVE;
count = 0;
count2 = 0;
check = true;
System.out.println("Constructor completed.");
}

public void robotInit()
{

relay.set(Relay.Value.kOn);
//comp.start(); //starts compressor
//camera stuff
//cam = AxisCamera.getInstance();
//cam.writeResolution(AxisCamera.ResolutionT.k160x12 0);
//cam.writeColorLevel(1);
//cam.writeBrightness(0);
// drive.setInvertedMotor(RobotDrive.MotorType.kFront Left, false);
// drive.setInvertedMotor(RobotDrive.MotorType.kRearL eft, true);

System.out.println("robotInit() completed.");
}

public void disabledInit()
{
disabledPeriodicLoops = 0; // Reset the loop counter for disabled mode
startSec = (int)(Timer.getUsClock() / 1000000.0);
printSec = startSec + 1;
System.out.println("Robot disabled.");
}

public void autonomousInit()
{
autoPeriodicLoops = 0; // Reset the loop counter for autonomous mode
System.out.println("Autonomous method running.");
}

public void teleopInit()
{
telePeriodicLoops = 0; // Reset the loop counter for teleop mode
dsPacketsReceivedInCurrentSecond = 0; // Reset the number of dsPackets in current second
driveMode = UNINITIALIZED_DRIVE; // Set drive mode to uninitialized
System.out.println("Teleoperated method running.");
}

static int printSec;
static int startSec;

public void disabledPeriodic()
{
// feed the user watchdog at every period when disabled
Watchdog.getInstance().feed();

// increment the number of disabled periodic loops completed
disabledPeriodicLoops++;

// while disabled, printout the duration of current disabled mode in seconds
if ((Timer.getUsClock() / 1000000.0) > printSec)
{
System.out.println("Disabled seconds: " + (printSec - startSec));
printSec++;
}
}
/**
* This function is called periodically during autonomous
*/
public void autonomousPeriodic()
{
// feed the user watchdog at every period when in autonomous
//adressing autonomous - this is what we added

autoPeriodicLoops++;
if(pressureSwitch.get()){
relay.set(Relay.Value.kOff);
}
//printing things for testing
// System.out.println("Gyro Angle" + gyro.getAngle());
System.out.println("left " + left.get() + " middle " + middle.get() + " right " + right.get());


//autonomous code for straight
if(count <= 140)
{
drive1.tankDrive(-0.48, -0.5);
drive2.tankDrive(-0.48, -0.5);
count++;
}
else if(pot.getValue() > 260) // 1 seconds
{
arm.set(-0.65); // raise arm
drive1.tankDrive(-0.48, -0.5);
drive2.tankDrive(-0.48, -0.5);
}
else if(pot.getValue() <= 260 && check){
arm.set(0.0);
check = false;
}

else if(count <= 270)
{
drive1.tankDrive(-0.48, -0.5);
drive2.tankDrive(-0.48, -0.5);
if(count == 270)
{

if(count2 <= 75)
{
drive1.tankDrive(0, 0);
drive2.tankDrive(0, 0);
if(pot.getValue() < 275)
{
arm.set(.1);
}
else
{
arm.set(0.0);
}
}
else
{
// clawrelease.set(true); // open claw
// clawfire.set(false);
}
}
count++;
count2++;
}
else
{
drive1.tankDrive(0.5, 0.5);
drive2.tankDrive(0.5, 0.5);

}

//optical sensors are working correctly
//should work for line following
//! is added to compensate for testing, will be removed for competition
/* if(!left.get() && middle.get()){
//if left is true and middle is not then turn left
drive1.tankDrive(0.5, -0.5);
drive2.tankDrive(0.5, -0.5);
}
else if(!middle.get() && (left.get() && right.get())){
//if middle is true and nothing else is true
drive1.tankDrive(0.5, 0.5);
drive2.tankDrive(0.5, 0.5);
}
else if(!right.get() && middle.get()){
//if right is true and the middle is not true turn right
drive1.tankDrive(-0.5, 0.5);
drive2.tankDrive(-0.5, 0.5);
}
else if(!right.get() && !left.get()){
//if right and left are true, you have reached the fork in the road
//to turn left, uncomment this
if(gyro.getAngle() > -30){//brendon guestimates the angle to be 30
drive1.tankDrive(-0.5, 0.5);
drive2.tankDrive(-0.5, 0.5);
}
//to turn right, uncomment this
if(gyro.getAngle() < 30){
drive1.tankDrive(0.5, -0.5);
drive2.tankDrive(0.5, -0.5);
}
}
else{
//stop
drive1.tankDrive(0.0, 0.0);
drive2.tankDrive(0.0, 0.0);
//here will be something with the arm and claw under the assumtion that there is no line where the peg is, we will need to check this
if(pot.getValue()< 515){//arbitrary number is being used here since we dont know the actual #
arm.set(-0.45);
}
else{
arm.set(0.0);
clawrelease.set(true);//opens claw
clawfire.set(false);
//starts the compressor after shooting off the piston
relay.set(Relay.Value.kOn);
}
//claw.set(false);//not sure how to deal with this because ... i guess that the piston will start out already fired...
}*/

//hypothetically we could use the gyro here, for the fork and turning and even for keeping straight,so heres the scoring written that way
//this is only a test to see if it will go straight
/* if(gyro.getAngle() <= 15 && gyro.getAngle() >= -15){
drive.tankDrive(0.5, 0.5);
}
else if(gyro.getAngle() >= 15){
drive.tankDrive(-0.5, 0.5);
}
else if(gyro.getAngle() <= 15){
drive.tankDrive(0.5, -0.5);
}
else{
drive.tankDrive(0.0, 0.0);
}
*/

//end of added things
Watchdog.getInstance().feed();

autoPeriodicLoops++;

}

/**
* This function is called periodically during operator control
*/
public void teleopPeriodic()
{
// feed the user watchdog at every period when in autonomous
Watchdog.getInstance().feed();

// increment the number of teleop periodic loops completed
telePeriodicLoops++;

/*
* Code placed in here will be called only when a new packet of information
* has been received by the Driver Station. Any code which needs new information
* from the DS should go in here
*/

dsPacketsReceivedInCurrentSecond++; // increment DS packets received


if(pressureSwitch.get()){
relay.set(Relay.Value.kOff);
}
else{
relay.set(Relay.Value.kOn);
}

System.out.println("potentiometer values " + pot.getValue());
//System.out.println("gyro values " + gyro.getAngle());
System.out.println("left " + left.get() + " middle " + middle.get() + " right " + right.get());
// determine if tank or arcade mode, based upon position of "Z" wheel on kit joystick
if (other.getRawButton(2)) // Logitech Attack3 has z-polarity reversed; up is negative
{//changed to use the same button as last year to activiate arcade drive,must be held to keep activiated
// use arcade drive
// drive with arcade style (use other stick)
drive1.arcadeDrive(other.getY(), other.getX());
drive2.arcadeDrive(other.getY(), other.getX());
//should give us control over the camera servos
twist.set(rightStick.getX());
tilt.set(rightStick.getY());
if(other.getRawButton(8)){
arm.set(0.22);//arm down
}
else if(other.getRawButton(9)){
arm.set(-0.65);//arm up
}
else{
arm.set(0.0);//arm stop
}
//if button 6 is pushed, fire the claw
if(other.getRawButton(6))
{
// clawfire.set(true);
// clawrelease.set(false);
}
//if button 7 is pushed release the tube
if(other.getRawButton(7)){
// clawrelease.set(true);
// clawfire.set(false);

}
//button 1 releases the pin holding the minibot in
if(other.getRawButton(1)){
pin1.setAngle(45);
pin2.setAngle(45);
//button 11 fires the slide
}
if(other.getRawButton(11))
{
// sliderelease.set(false);
// slidefire.set(true);
}
if(other.getRawButton(10)){
// slidefire.set(false);
// sliderelease.set(true);

}
if (driveMode != ARCADE_DRIVE)
{
// if newly entered arcade drive, print out a message
System.out.println("Arcade Drive\n");
driveMode = ARCADE_DRIVE;
}
}
else
{
// use tank drive
drive1.tankDrive(rightStick.getY(), leftStick.getY());
drive2.tankDrive(rightStick.getY(), leftStick.getY());
//should give us control over the camera servos
twist.set(other.getX());
tilt.set(other.getY());
//jag drive
/* jag1.set(rightStick.getY());
jag3.set(rightStick.getY());
//leftside motors
jag2.set(-leftStick.getY());
jag4.set(-leftStick.getY());
*/

if(other.getRawButton(8)){
arm.set(0.22);//arm up
}
else if(other.getRawButton(9)){
arm.set(-0.65);//arm down
/* if(pot.getValue() <= 700){
arm.set(-0.75);
}*/
}
else{
arm.set(0.0);//arm stop
}
//button 6 fires claw solenoid
if(other.getRawButton(6))
{
// clawrelease.set(false);
// clawfire.set(true);
}
//button 7 releases claw solenoid
if(other.getRawButton(7))
{
//clawfire.set(false);
//clawrelease.set(true);
}

//button 1 releases the pin holding the minibot in
if(other.getRawButton(1)){
pin1.setAngle(45);
pin2.setAngle(45);
}
if(other.getRawButton(11))
{
// sliderelease.set(false);
// slidefire.set(true);
}
if(other.getRawButton(10)){
// slidefire.set(false);
// sliderelease.set(true);

}


if (driveMode != TANK_DRIVE)
{
// if newly entered tank drive, print out a message
System.out.println("Tank Drive\n");
driveMode = TANK_DRIVE;
}
}
}

}
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 18:00.

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