Hello we are team number 4591 we are a rookie team. Our programming team consists of 2 people and we have just started programming a few months ago.
We have sucessfully made our robot move forward and backwards using two joysticks.
We need to move two motors at the same time while holding one button to go clockwise and holding another button to go counter clockwise.
We have tried everything we know, but nothing seemed to work. It would be very helpful if someone could give us an example of a code we can use to run the motors.
Here’s what we have so far:
package edu.wpi.first.wpilibj.templates;
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.SimpleRobot;
import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj.buttons.Button;
public class RobotTemplate extends SimpleRobot{
RobotDrive chassis= new RobotDrive(1, 2);
Joystick leftStick= new Joystick(1);
Joystick rightStick= new Joystick(2);
public void autonomus() {
chassis.setSafetyEnabled(false);
chassis.drive(-0.05, 0.0);
Timer.delay(30.0);
chassis.drive(0.0, 0.0);
}
public void operatorControl() {
chassis.setSafetyEnabled(true); {
chassis.tankDrive(leftStick, rightStick);
Timer.delay(0.01);
}
}
}
There is a function called getButton() that allows you to use the trigger and top button, and one called getRawButton() that works for the rest of the buttons by number. This page should help you get a complete understanding of the joystick, the buttons, and the rest of the code for the robot.
We tried to use getRawButton in our code but every time we use it there is a problem.
if you could show us an example of a code using getRawButton that would be very helpful.
A quick aside:
Because you are using SimpleRobot you need to put the teleop code in a loop, e.g.:
public void operatorControl() {
chassis.setSafetyEnabled(true);
while (isOperatorControl && isEnabled() ){
chassis.tankDrive(leftStick, rightStick);
Timer.delay(0.01);
}
}
The above suggestions for button use are all good, so if they aren’t working this might be part of the problem. If you just typed from memory and forgot, ignore this. You also had a superfluous set of braces after you SafetyEnabled, did you accidentally delete something?
Just noticed you have a 30s delay in autonomous. Autonomous mode is only 15s. Unless something changed this year operatorControl() won’t be called until autonomous() exits. So you’ll be waiting 15s after teleop starts to get control of the 'bot.