2022PythonExamples/11 - Timer Based Autonomous/Challenge/robot.py

48 lines
1.6 KiB
Python

import wpilib
import wpilib.drive
import ctre
class MyRobot(wpilib.TimedRobot):
def robotInit(self):
self.leftFront = ctre.WPI_VictorSPX(0)
self.leftRear = ctre.WPI_VictorSPX(1)
self.rightFront = ctre.WPI_VictorSPX(2)
self.rightRear = ctre.WPI_VictorSPX(3)
self.left = wpilib.MotorControllerGroup(self.leftFront, self.leftRear)
self.right = wpilib.MotorControllerGroup(self.rightFront, self.rightRear)
self.right.setInverted(True)
self.drivetrain = wpilib.drive.DifferentialDrive(self.left, self.right)
self.primary = wpilib.XboxController(0)
self.autoTimer = wpilib.Timer()
def autonomousInit(self):
self.autoTimer.reset()
self.autoTimer.start()
def autonomousPeriodic(self):
if self.autoTimer.get() < 2:
self.drivetrain.tankDrive(.5, .5)
elif self.autoTimer.get() >= 2 and self.autoTimer.get() < 2.5:
self.drivetrain.tankDrive(.5, -.5)
elif self.autoTimer.get() >= 2.5 and self.autoTimer.get() < 3.5:
self.drivetrain.tankDrive(.5, .5)
elif self.autoTimer.get() >= 3.5 and self.autoTimer.get() < 4.25:
self.drivetrain.tankDrive(-.5, .5)
elif self.autoTimer.get() >= 4.25 and self.autoTimer.get() < 6.25:
self.drivetrain.tankDrive(-.5, -.5)
else:
self.drivetrain.tankDrive(0, 0)
def teleopInit(self):
self.autoTimer.stop()
def teleopPeriodic(self):
self.drivetrain.arcadeDrive(self.primary.getLeftY(), self.primary.getLeftX())
if __name__ == "__main__":
wpilib.run(MyRobot)