Files
allwpilib/robotpyExamples/examples/GettingStarted/robot.py

57 lines
2.1 KiB
Python
Raw Normal View History

#!/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.NiDsXboxController(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."""