2023-11-28 09:31:08 -05:00

96 lines
2.4 KiB
C++

/*
globals.cpp
Contains all devices and electronics used for the robot
Holds other mechanicsm classes.
*/
#include "globals.hpp"
using namespace ary;
namespace globals {
// Chassis
pros::Controller master(CONTROLLER_MASTER);
/*
{-2, -6, 12, 5}, -> left
{-16, 1, 4, -3}, -> right
*/
pros::Motor motor_tlf(14, MOTOR_GEARSET_06, false);
pros::Motor motor_blb(9, MOTOR_GEARSET_06, true);
pros::Motor motor_blf(3, MOTOR_GEARSET_06, true);
pros::Motor motor_tlb(7, MOTOR_GEARSET_06, false);
pros::Motor motor_trf(15, MOTOR_GEARSET_06, true);
pros::Motor motor_trb(6, MOTOR_GEARSET_06, true); // cata running
pros::Motor motor_brf(12, MOTOR_GEARSET_06, false);
pros::Motor motor_brb(5, MOTOR_GEARSET_06, false);
pros::Motor_Group left_drive({ motor_tlf, motor_tlb, motor_blf, motor_blb });
pros::Motor_Group right_drive({ motor_trf, motor_trb, motor_brf, motor_brb });
// Electronics / Pneumatics / Sensors
pros::ADIDigitalOut pto_piston('A');
pros::ADIDigitalOut left_wing_piston('E');
pros::ADIDigitalOut right_wing_piston('F');
pros::ADIDigitalOut intake_piston('D');
pros::ADIDigitalOut climb_piston('B');
Wings wings;
Timer timer;
pros::Imu inertial_sensor(11);
lemlib::Drivetrain_t dt_odom {
&left_drive,
&right_drive,
TRACK_WIDTH,
WHEEL_SIZE,
DRIVE_RPM
};
lemlib::OdomSensors_t chassis_sensors {
nullptr,
nullptr,
nullptr,
nullptr,
&inertial_sensor
};
lemlib::ChassisController_t latController {
0.55, // kP
5, // kD
1, // smallErrorRange
100, // smallErrorTimeout
3, // largeErrorRange
500, // largeErrorTimeout
5 // slew rate
};
lemlib::ChassisController_t angController {
6.5, // kP
35, // kD
1, // smallErrorRange
100, // smallErrorTimeout
3, // largeErrorRange
500, // largeErrorTimeout
40 // slew rate
};
Drive chassis(
{-2, -6, 12, 5},
{-16, 1, 4, -3},
18,
WHEEL_SIZE,
600,
DRIVE_RATIO
);
lemlib::Chassis chassis_odom(dt_odom, latController, angController, chassis_sensors);
pros::Motor& intake_mtr = chassis.left_motors[3];
pros::Motor& cata_mtr = chassis.right_motors[3];
}