Skip to content

Commit

Permalink
Merge pull request #178 from martinrioux/frc-doc-getting-started
Browse files Browse the repository at this point in the history
Getting Started example added (basic Drivetrain)
  • Loading branch information
virtuald authored Sep 9, 2023
2 parents f469977 + 5b8d33f commit d516cab
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions examples/getting-started/robot.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,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 ctre


class MyRobot(wpilib.TimedRobot):
def robotInit(self):
"""
This function is called upon program startup and
should be used for any initialization code.
"""
self.leftDrive = ctre.WPI_TalonFX(1)
self.rightDrive = ctre.WPI_TalonFX(2)
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)

0 comments on commit d516cab

Please sign in to comment.