This repository has been archived on 2020-09-21. You can view files and clone it, but cannot push or open issues or pull requests.
FRC2016-old/DriveBase/src/Robot.cpp

106 lines
2.1 KiB
C++
Raw Normal View History

2016-01-28 11:33:19 -05:00
#include "WPILib.h"
2016-02-09 19:32:27 -05:00
//#include "TankDrive.h"
#include "Shooter.h"
2016-01-28 11:33:19 -05:00
2016-02-09 19:32:27 -05:00
2016-01-28 11:33:19 -05:00
/**
* This sample shows how to use the new CANTalon to just run a motor in a basic
* throttle mode, in the same manner as you might control a traditional PWM
* controlled motor.
*/
#ifndef BUTTON_LAYOUT
#define BUTTON_LAYOUT
2016-02-09 19:32:27 -05:00
#define TRIGGER 1
#define THUMB 2
#endif // BUTTON_LAYOUT
class Robot: public IterativeRobot {
2016-01-28 15:47:56 -05:00
CANTalon r1_drive;
CANTalon r2_drive;
CANTalon l1_drive;
CANTalon l2_drive;
CANTalon shooter1;
CANTalon shooter2;
CANTalon ramp;
2016-02-09 19:32:27 -05:00
// Counter ramp_lift;
RobotDrive drive;
2016-02-02 10:18:19 -05:00
Shooter shooter;
Joystick rstick, lstick;
2016-01-28 11:33:19 -05:00
// update every 0.01 seconds/10 milliseconds.
// The talon only receives control packets every 10ms.
2016-01-28 15:47:56 -05:00
//double kUpdatePeriod = 0.010;
2016-01-28 11:33:19 -05:00
public:
Robot() :
2016-02-02 10:18:19 -05:00
r1_drive(1), // right wheel 1
r2_drive(2), // right wheel 2
l1_drive(3), // left wheel 1
l2_drive(4), // left wheel 2
shooter1(10), // shooter drive 1
shooter2(11), // shooter drive 2
ramp(12),
2016-02-09 19:32:27 -05:00
drive( // initialize RobotDrive object.
&l1_drive, &r1_drive),
2016-02-02 10:18:19 -05:00
shooter( // initialize Shooter object.
&shooter1, &shooter2, &ramp),
2016-02-02 10:18:19 -05:00
rstick(0), // right stick (operator)
2016-02-09 19:32:27 -05:00
lstick(1)//, // left stick (driver)
//ramp_lift(1) // counter for the hall sensor on the
2016-02-02 10:18:19 -05:00
{
}
void DisabledInit() {
r1_drive.SetSafetyEnabled(false);
r2_drive.SetSafetyEnabled(false);
l1_drive.SetSafetyEnabled(false);
l2_drive.SetSafetyEnabled(false);
shooter1.SetSafetyEnabled(false);
shooter2.SetSafetyEnabled(false);
}
void TeleopInit() {
r1_drive.Enable();
r2_drive.Enable();
l1_drive.Enable();
l2_drive.Enable();
}
void TeleopPeriodic() {
2016-02-09 19:32:27 -05:00
drive.ArcadeDrive(&lstick);
l2_drive.Set(l1_drive.Get());
r2_drive.Set(r1_drive.Get());
float power = (1.0 - rstick.GetThrottle()) / 2.0;
2016-02-09 19:32:27 -05:00
shooter.SetPower(power);
if(rstick.GetRawButton(TRIGGER))
{
// SHOOT THE BALL
2016-02-09 19:32:27 -05:00
ramp.Set(-1);
}
if(rstick.GetRawButton(THUMB))
{
// lower the ramp
2016-02-09 19:32:27 -05:00
ramp.Set(1);
}
else
{
// raise the ramp to HALF (so it isn't down all the time!)
2016-02-08 19:26:44 -05:00
ramp.Set(0);
}
// How to pickup?
}
2016-01-28 11:33:19 -05:00
};
START_ROBOT_CLASS(Robot)