From 10f3862bb6e882ef16651cccaccb4a517d37b484 Mon Sep 17 00:00:00 2001 From: Bradley Bickford Date: Thu, 15 Dec 2022 21:31:50 -0500 Subject: [PATCH] Add README Content and last code set for awhile --- 19 - AddressableLED/robot.py | 71 ++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 19 - AddressableLED/robot.py diff --git a/19 - AddressableLED/robot.py b/19 - AddressableLED/robot.py new file mode 100644 index 0000000..a26229e --- /dev/null +++ b/19 - AddressableLED/robot.py @@ -0,0 +1,71 @@ +import wpilib +import wpilib.drive +import ctre + +class MyRobot(wpilib.TimedRobot): + def robotInit(self): + self.leftFront = ctre.WPI_VictorSPX(0) + self.leftRear = ctre.WPI_VictorSPX(1) + self.rightFront = ctre.WPI_VictorSPX(2) + self.rightRear = ctre.WPI_VictorSPX(3) + + self.left = wpilib.MotorControllerGroup(self.leftFront, self.leftRear) + self.right = wpilib.MotorControllerGroup(self.rightFront, self.rightRear) + self.right.setInverted(True) + + self.drivetrain = wpilib.drive.DifferentialDrive(self.left, self.right) + + self.primary = wpilib.XboxController(0) + + self.leds = wpilib.AddressableLED(0) + self.leds.setLength(20) + + self.buffer = wpilib.AddressableLED.LEDData(20) + + self.leds.setData(self.buffer) + self.leds.start() + + self.rainbowTimer = wpilib.Timer() + self.rainbowTimer.start() + + self.rainbowColorSelection = 0 + self.hsvColorSelection = 0 + + self.RAINBOW = [ + wpilib.Color.kRed, + wpilib.Color.kOrange, + wpilib.Color.kYellow, + wpilib.Color.kGreen, + wpilib.Color.kBlue, + wpilib.Color.kPurple] + + def robotPeriodic(self): + if self.rainbowTimer.get() > 1: + for i in range(10): + self.buffer.setLED(i, self.RAINBOW[self.rainbowColorSelection % len(self.rainbowColorSelection)]) + + self.rainbowColorSelection += 1 + + self.rainbowTimer.reset() + + for i in range(10, 20): + self.buffer.setHSV(i, self.hsvColorSelection % 180, 255, 255) + + self.hsvColorSelection += 1 + + self.leds.setData(self.buffer) + + def autonomousInit(self): + pass + + def autonomousPeriodic(self): + pass + + def teleopInit(self): + pass + + def teleopPeriodic(self): + self.drivetrain.arcadeDrive(self.primary.getLeftY(), self.primary.getLeftX()) + +if __name__ == "__main__": + wpilib.run(MyRobot) \ No newline at end of file