mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
57 lines
2.0 KiB
Python
Executable File
57 lines
2.0 KiB
Python
Executable File
#!/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
|
|
|
|
|
|
class MyRobot(wpilib.TimedRobot):
|
|
def __init__(self):
|
|
"""
|
|
This function is called upon program startup and
|
|
should be used for any initialization code.
|
|
"""
|
|
super().__init__()
|
|
self.leftDrive = wpilib.PWMSparkMax(0)
|
|
self.rightDrive = wpilib.PWMSparkMax(1)
|
|
self.robotDrive = wpilib.DifferentialDrive(self.leftDrive, self.rightDrive)
|
|
self.controller = wpilib.Gamepad(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 velocity, 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 utilityInit(self):
|
|
"""This function is called once each time the robot enters utility mode."""
|
|
|
|
def utilityPeriodic(self):
|
|
"""This function is called periodically during utility mode."""
|