mirror of
https://github.com/TimeCrafters/CenterStage
synced 2025-12-15 16:52:35 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package dev.cyberarm.minibots.black;
|
||||
|
||||
import com.arcrobotics.ftclib.hardware.motors.MotorEx;
|
||||
import com.qualcomm.robotcore.hardware.HardwareMap;
|
||||
|
||||
import dev.cyberarm.engine.V2.CyberarmEngine;
|
||||
|
||||
public class BlackMinibot {
|
||||
final public MotorEx leftDrive, RightDrive;
|
||||
final private HardwareMap hardwareMap;
|
||||
|
||||
public BlackMinibot() {
|
||||
hardwareMap = CyberarmEngine.instance.hardwareMap;
|
||||
|
||||
leftDrive = new MotorEx(hardwareMap, "leftDrive");
|
||||
RightDrive = new MotorEx(hardwareMap, "rightDrive");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package dev.cyberarm.minibots.black.engines;
|
||||
|
||||
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
|
||||
|
||||
import dev.cyberarm.minibots.black.BlackMinibot;
|
||||
import dev.cyberarm.minibots.black.states.BlackMinibotTeleOpState;
|
||||
|
||||
import dev.cyberarm.engine.V2.CyberarmEngine;
|
||||
|
||||
@TeleOp(name = "Cyberarm Black Minibot", group = "MINIBOT")
|
||||
public class BlackMinibotTeleOpEngine extends CyberarmEngine {
|
||||
private BlackMinibot minibot;
|
||||
@Override
|
||||
public void setup() {
|
||||
minibot = new BlackMinibot();
|
||||
|
||||
addState(new BlackMinibotTeleOpState(minibot));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package dev.cyberarm.minibots.black.states;
|
||||
|
||||
import dev.cyberarm.engine.V2.CyberarmState;
|
||||
import dev.cyberarm.minibots.black.BlackMinibot;
|
||||
|
||||
public class BlackMinibotTeleOpState extends CyberarmState {
|
||||
final private BlackMinibot minibot;
|
||||
|
||||
double maxPower = 0.2;
|
||||
double forward = 0;
|
||||
double right = 0;
|
||||
|
||||
double leftPower = 0.0;
|
||||
double rightPower = 0.0;
|
||||
|
||||
public BlackMinibotTeleOpState(BlackMinibot minibot) {
|
||||
this.minibot = minibot;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exec() {
|
||||
forward = -engine.gamepad1.left_stick_y;
|
||||
right = engine.gamepad1.right_stick_x;
|
||||
|
||||
leftPower = forward * maxPower;
|
||||
rightPower = forward * maxPower;
|
||||
|
||||
// Simple TANK DRIVE
|
||||
if (forward > -0.01 && forward < 0.01) {
|
||||
if (right > 0) {
|
||||
leftPower = right * maxPower;
|
||||
rightPower = -right * maxPower;
|
||||
} else if (right < 0) {
|
||||
leftPower = -right * maxPower;
|
||||
rightPower = right * maxPower;
|
||||
}
|
||||
} else {
|
||||
if (right > 0) {
|
||||
leftPower += right * maxPower;
|
||||
rightPower -= right * maxPower;
|
||||
} else if (right < 0) {
|
||||
leftPower -= right * maxPower;
|
||||
rightPower += right * maxPower;
|
||||
}
|
||||
}
|
||||
|
||||
minibot.leftDrive.motorEx.setPower(leftPower);
|
||||
minibot.RightDrive.motorEx.setPower(rightPower);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void telemetry() {
|
||||
engine.telemetry.addLine("Cyberarm BLACK MINIBOT");
|
||||
engine.telemetry.addData("Forward", forward);
|
||||
engine.telemetry.addData("Right", right);
|
||||
engine.telemetry.addLine();
|
||||
engine.telemetry.addData("Max Power", maxPower);
|
||||
engine.telemetry.addData("Left Power", leftPower);
|
||||
engine.telemetry.addData("Right Power", rightPower);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package org.timecrafters.CenterStage.Common;
|
||||
|
||||
import com.arcrobotics.ftclib.hardware.motors.MotorEx;
|
||||
import com.qualcomm.hardware.rev.RevHubOrientationOnRobot;
|
||||
import com.qualcomm.robotcore.hardware.DcMotor;
|
||||
import com.qualcomm.robotcore.hardware.HardwareMap;
|
||||
import com.qualcomm.robotcore.hardware.IMU;
|
||||
import com.qualcomm.robotcore.hardware.Servo;
|
||||
import com.qualcomm.robotcore.hardware.ServoImpl;
|
||||
|
||||
import org.timecrafters.Library.Robot;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersConfiguration;
|
||||
|
||||
import dev.cyberarm.engine.V2.CyberarmEngine;
|
||||
|
||||
public class MiniBTeleOPBot extends Robot {
|
||||
|
||||
public HardwareMap hardwareMap;
|
||||
public MotorEx leftDrive, rightDrive;
|
||||
public Servo servLowLeft, servLowRight, servTop;
|
||||
public IMU imu;
|
||||
|
||||
public TimeCraftersConfiguration configuration;
|
||||
|
||||
public MiniBTeleOPBot() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setup() {
|
||||
this.hardwareMap = CyberarmEngine.instance.hardwareMap;
|
||||
CyberarmEngine engine = CyberarmEngine.instance;
|
||||
|
||||
imu = engine.hardwareMap.get(IMU.class, "imu");
|
||||
|
||||
IMU.Parameters parameters = new IMU.Parameters(
|
||||
new RevHubOrientationOnRobot(
|
||||
RevHubOrientationOnRobot.LogoFacingDirection.LEFT,
|
||||
RevHubOrientationOnRobot.UsbFacingDirection.UP));
|
||||
|
||||
imu.initialize(parameters);
|
||||
|
||||
//Motors
|
||||
leftDrive = new MotorEx(hardwareMap, "LeftDrive");
|
||||
rightDrive = new MotorEx(hardwareMap, "RightDrive");
|
||||
|
||||
leftDrive.motor.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
|
||||
rightDrive.motor.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
|
||||
|
||||
leftDrive.motor.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
|
||||
rightDrive.motor.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
|
||||
|
||||
//Servos
|
||||
servLowLeft = hardwareMap.servo.get("ServoLowLeft");
|
||||
servLowRight = hardwareMap.servo.get("ServoLowRight");
|
||||
servTop = hardwareMap.servo.get("ServoTop");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.timecrafters.CenterStage.TeleOp.Engines;
|
||||
|
||||
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
|
||||
|
||||
import org.timecrafters.CenterStage.Common.MiniBTeleOPBot;
|
||||
import org.timecrafters.CenterStage.TeleOp.States.BlackMiniTeleOP;
|
||||
|
||||
import dev.cyberarm.engine.V2.CyberarmEngine;
|
||||
|
||||
@TeleOp(name = "Black Minibot")
|
||||
|
||||
public class MiniBTeleOPEngine extends CyberarmEngine {
|
||||
private MiniBTeleOPBot robot;
|
||||
|
||||
@Override
|
||||
public void setup() {
|
||||
this.robot = new MiniBTeleOPBot();
|
||||
this.robot.setup();
|
||||
|
||||
addState(new BlackMiniTeleOP());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package org.timecrafters.CenterStage.TeleOp.States;
|
||||
|
||||
import org.timecrafters.CenterStage.Common.MiniBTeleOPBot;
|
||||
|
||||
import dev.cyberarm.engine.V2.CyberarmState;
|
||||
|
||||
public class BlackMiniTeleOP extends CyberarmState {
|
||||
private MiniBTeleOPBot robot;
|
||||
public BlackMiniTeleOP(MiniBTeleOPBot robot) {this.robot = robot;}
|
||||
|
||||
|
||||
private double rPower, lPower;
|
||||
|
||||
public BlackMiniTeleOP() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
rPower = 0;
|
||||
lPower = 0;
|
||||
robot.rightDrive.motor.setPower(rPower);
|
||||
robot.leftDrive.motor.setPower(lPower);
|
||||
|
||||
}
|
||||
@Override
|
||||
public void exec() {
|
||||
|
||||
if (engine.gamepad1.right_trigger > 0.1) {
|
||||
rPower = engine.gamepad1.right_trigger;
|
||||
robot.rightDrive.motor.setPower(rPower);
|
||||
}
|
||||
|
||||
if (engine.gamepad1.left_trigger > 0.1) {
|
||||
lPower = engine.gamepad1.left_trigger;
|
||||
robot.leftDrive.motor.setPower(lPower);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,7 @@ public class YellowMinibotTeleOP extends CyberarmState {
|
||||
@Override
|
||||
public void exec() {
|
||||
|
||||
if (Math.abs(engine.gamepad1.right_stick_y) < 0.1 && Math.abs(engine.gamepad1.right_stick_x) < 0.1 && Math.abs(engine.gamepad1.left_stick_x) < 0.1) {
|
||||
if (Math.abs(engine.gamepad1.left_stick_y) < 0.1 && Math.abs(engine.gamepad1.left_stick_x) < 0.1 && Math.abs(engine.gamepad1.right_stick_x) < 0.1) {
|
||||
drivePower = 0;
|
||||
robot.flDrive.motor.setPower(0);
|
||||
robot.frDrive.motor.setPower(0);
|
||||
@@ -76,24 +76,24 @@ public class YellowMinibotTeleOP extends CyberarmState {
|
||||
robot.imu.resetYaw();
|
||||
}
|
||||
|
||||
if (Math.abs(engine.gamepad1.right_stick_y) > 0.1 && Math.abs(engine.gamepad1.right_stick_x) < 0.1) {
|
||||
drivePower = engine.gamepad1.right_stick_y;
|
||||
if (Math.abs(engine.gamepad1.left_stick_y) > 0.1 && Math.abs(engine.gamepad1.left_stick_x) < 0.1) {
|
||||
drivePower = engine.gamepad1.left_stick_y;
|
||||
robot.flDrive.motor.setPower(drivePower);
|
||||
robot.frDrive.motor.setPower(drivePower);
|
||||
robot.blDrive.motor.setPower(drivePower);
|
||||
robot.brDrive.motor.setPower(drivePower);
|
||||
}
|
||||
|
||||
if (Math.abs(engine.gamepad1.right_stick_x) > 0.1) {
|
||||
drivePower = engine.gamepad1.right_stick_x;
|
||||
if (Math.abs(engine.gamepad1.left_stick_x) > 0.1) {
|
||||
drivePower = engine.gamepad1.left_stick_x;
|
||||
robot.flDrive.motor.setPower(-drivePower);
|
||||
robot.frDrive.motor.setPower(drivePower);
|
||||
robot.blDrive.motor.setPower(drivePower);
|
||||
robot.brDrive.motor.setPower(-drivePower);
|
||||
}
|
||||
|
||||
if (Math.abs(engine.gamepad1.left_stick_x) > 0.1){
|
||||
drivePower = engine.gamepad1.left_stick_x;
|
||||
if (Math.abs(engine.gamepad1.right_stick_x) > 0.1){
|
||||
drivePower = engine.gamepad1.right_stick_x;
|
||||
robot.flDrive.motor.setPower(-drivePower);
|
||||
robot.frDrive.motor.setPower(drivePower);
|
||||
robot.blDrive.motor.setPower(-drivePower);
|
||||
|
||||
Reference in New Issue
Block a user