Added shooter Talons to the program. Controlled by opperator throttle.
This commit is contained in:
parent
6d903af729
commit
d4ae350953
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
|||||||
.metadata
|
.metadata
|
||||||
|
DriveBase/.settings
|
||||||
|
DriveBase/sysProps.xml
|
||||||
|
@ -12,10 +12,12 @@ class Robot : public IterativeRobot {
|
|||||||
CANTalon r2_drive;
|
CANTalon r2_drive;
|
||||||
CANTalon l1_drive;
|
CANTalon l1_drive;
|
||||||
CANTalon l2_drive;
|
CANTalon l2_drive;
|
||||||
|
CANTalon shooter1;
|
||||||
|
CANTalon shooter2;
|
||||||
RobotDrive drivetrain1;
|
RobotDrive drivetrain1;
|
||||||
RobotDrive drivetrain2;
|
RobotDrive drivetrain2;
|
||||||
|
|
||||||
Joystick lstick;
|
Joystick rstick, lstick;
|
||||||
|
|
||||||
// update every 0.01 seconds/10 milliseconds.
|
// update every 0.01 seconds/10 milliseconds.
|
||||||
// The talon only receives control packets every 10ms.
|
// The talon only receives control packets every 10ms.
|
||||||
@ -27,9 +29,12 @@ public:
|
|||||||
r2_drive(2), // interface to change the device number on the talons.
|
r2_drive(2), // interface to change the device number on the talons.
|
||||||
l1_drive(3),
|
l1_drive(3),
|
||||||
l2_drive(4),
|
l2_drive(4),
|
||||||
|
shooter1(10),
|
||||||
|
shooter2(11),
|
||||||
drivetrain1(l1_drive, r1_drive),
|
drivetrain1(l1_drive, r1_drive),
|
||||||
drivetrain2(l2_drive, r2_drive),
|
drivetrain2(l2_drive, r2_drive),
|
||||||
lstick(0)
|
rstick(0),
|
||||||
|
lstick(1)
|
||||||
{
|
{
|
||||||
printf("Initializing Robot...");
|
printf("Initializing Robot...");
|
||||||
printf("Initializing TankDrive");
|
printf("Initializing TankDrive");
|
||||||
@ -49,6 +54,8 @@ public:
|
|||||||
r2_drive.SetSafetyEnabled(false);
|
r2_drive.SetSafetyEnabled(false);
|
||||||
l1_drive.SetSafetyEnabled(false);
|
l1_drive.SetSafetyEnabled(false);
|
||||||
l2_drive.SetSafetyEnabled(false);
|
l2_drive.SetSafetyEnabled(false);
|
||||||
|
shooter1.SetSafetyEnabled(false);
|
||||||
|
shooter2.SetSafetyEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeleopInit()
|
void TeleopInit()
|
||||||
@ -66,12 +73,19 @@ public:
|
|||||||
void TeleopPeriodic()
|
void TeleopPeriodic()
|
||||||
{
|
{
|
||||||
printf("Teleop Periodic Start.");
|
printf("Teleop Periodic Start.");
|
||||||
float speed = lstick.GetY() * (lstick.GetThrottle());
|
float speed = lstick.GetY() * ((1.0 - (lstick.GetThrottle()))/2.0);
|
||||||
float rot = (-1) * lstick.GetTwist();
|
float rot = lstick.GetX();
|
||||||
|
|
||||||
drivetrain1.ArcadeDrive(speed, rot, false);
|
drivetrain1.ArcadeDrive(speed, rot, false);
|
||||||
drivetrain2.ArcadeDrive(speed, rot, false);
|
drivetrain2.ArcadeDrive(speed, rot, false);
|
||||||
|
|
||||||
|
float power = (1.0 - rstick.GetThrottle()) / 2.0;
|
||||||
|
shooter1.Set(power);
|
||||||
|
shooter2.Set(power);
|
||||||
|
|
||||||
printf("~Teleop Periodic End.");
|
printf("~Teleop Periodic End.");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Runs the motor from the output of a Joystick.
|
* Runs the motor from the output of a Joystick.
|
||||||
|
BIN
FRCUserProgram
Executable file
BIN
FRCUserProgram
Executable file
Binary file not shown.
41
robot.cpp
Normal file
41
robot.cpp
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include "WPILib.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a demo program showing the use of the RobotDrive class.
|
||||||
|
* The SampleRobot class is the base of a robot application that will automatically call your
|
||||||
|
* Autonomous and OperatorControl methods at the right time as controlled by the switches on
|
||||||
|
* the driver station or the field controls.
|
||||||
|
*
|
||||||
|
* WARNING: While it may look like a good choice to use for your code if you're inexperienced,
|
||||||
|
* don't. Unless you know what you are doing, complex code will be much more difficult under
|
||||||
|
* this system. Use IterativeRobot or Command-Based instead if you're new.
|
||||||
|
*/
|
||||||
|
class Robot: public SampleRobot
|
||||||
|
{
|
||||||
|
RobotDrive myRobot; // robot drive system
|
||||||
|
Joystick stick; // only joystick
|
||||||
|
|
||||||
|
public:
|
||||||
|
Robot() :
|
||||||
|
myRobot(0, 1), // initialize the RobotDrive to use motor controllers on ports 0 and 1
|
||||||
|
stick(0)
|
||||||
|
{
|
||||||
|
myRobot.SetExpiration(0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs the motors with arcade steering.
|
||||||
|
*/
|
||||||
|
void OperatorControl()
|
||||||
|
{
|
||||||
|
while (IsOperatorControl() && IsEnabled())
|
||||||
|
{
|
||||||
|
myRobot.ArcadeDrive(stick); // drive with arcade style (use right stick)
|
||||||
|
Wait(0.005); // wait for a motor update time
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
START_ROBOT_CLASS(Robot)
|
||||||
|
|
Reference in New Issue
Block a user