-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathrobot.py
63 lines (50 loc) · 2.19 KB
/
robot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env python3
#
# Copyright (c) FIRST and other WPILib contributors.
# Open Source Software; you can modify and/or share it under the terms of
# the WPILib BSD license file in the root directory of this project.
#
import wpilib
import wpilib.drive
import rev
class MyRobot(wpilib.TimedRobot):
def robotInit(self):
"""
This function is called upon program startup and
should be used for any initialization code.
"""
self.leftDrive = rev.CANSparkMax(1, rev.CANSparkMax.MotorType.kBrushless)
self.rightDrive = rev.CANSparkMax(2, rev.CANSparkMax.MotorType.kBrushless)
self.robotDrive = wpilib.drive.DifferentialDrive(
self.leftDrive, self.rightDrive
)
self.controller = wpilib.XboxController(0)
self.timer = wpilib.Timer()
# We need to invert one side of the drivetrain so that positive voltages
# result in both sides moving forward. Depending on how your robot's
# gearbox is constructed, you might have to invert the left side instead.
self.rightDrive.setInverted(True)
def autonomousInit(self):
"""This function is run once each time the robot enters autonomous mode."""
self.timer.restart()
def autonomousPeriodic(self):
"""This function is called periodically during autonomous."""
# Drive for two seconds
if self.timer.get() < 2.0:
# Drive forwards half speed, make sure to turn input squaring off
self.robotDrive.arcadeDrive(0.5, 0, squareInputs=False)
else:
self.robotDrive.stopMotor() # Stop robot
def teleopInit(self):
"""This function is called once each time the robot enters teleoperated mode."""
def teleopPeriodic(self):
"""This function is called periodically during teleoperated mode."""
self.robotDrive.arcadeDrive(
-self.controller.getLeftY(), -self.controller.getRightX()
)
def testInit(self):
"""This function is called once each time the robot enters test mode."""
def testPeriodic(self):
"""This function is called periodically during test mode."""
if __name__ == "__main__":
wpilib.run(MyRobot)