mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[copybara] Import robotpy examples (#8608)
GitOrigin-RevId: 9ba4bc3040fa7e772f5a594039e78fc6c43d114e
This commit is contained in:
56
robotpyExamples/GettingStarted/robot.py
Executable file
56
robotpyExamples/GettingStarted/robot.py
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/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 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."""
|
||||
Reference in New Issue
Block a user