Compare commits

...

20 Commits

Author SHA1 Message Date
ee263139c1 vitesse 2024-10-28 19:07:29 -04:00
938198d4e2 oli me corrige 2024-10-28 19:04:46 -04:00
b460501b95 2024-10-28 18:52:56 -04:00
5e39e6fc4d Merge branch 'main' of https://git.demerso.net/PLS5618/pratique-2025 2024-10-28 18:52:39 -04:00
6bec6011ca encodeur 2024-10-28 18:52:38 -04:00
e1111511b7 enlever la stupidité de Sam 2024-10-28 18:52:16 -04:00
c3d4b8c43c Merge branch 'main' of https://git.demerso.net/PLS5618/pratique-2025 2024-10-28 18:50:46 -04:00
4944f4662b - encodeurs 2024-10-28 18:49:53 -04:00
4f6552202c Merge branch 'main' of https://git.demerso.net/PLS5618/pratique-2025 2024-10-28 18:45:38 -04:00
adb6d5554f encodeur 2024-10-28 18:45:10 -04:00
eca7bb1891 Merge branch 'main' of https://git.demerso.net/PLS5618/pratique-2025 2024-10-23 19:47:53 -04:00
6687dc73ea accumulateur 2024-10-23 19:47:51 -04:00
ea96a16864 swerve 2024-10-23 19:34:20 -04:00
dfa05d79a7 YAGLS 2024-10-23 19:31:48 -04:00
650e8341ec Merge branch 'main' of https://git.demerso.net/PLS5618/pratique-2025 2024-10-23 19:22:39 -04:00
025d9e47f0 2024-10-23 19:22:23 -04:00
f0cdb9a241 Merge branch 'main' of https://git.demerso.net/PLS5618/pratique-2025 2024-10-23 19:22:12 -04:00
ae9e9577c2 2024-10-23 19:22:09 -04:00
89d155ae5e encodeur 2024-10-23 19:17:48 -04:00
787251658c lanceur encodeur 2024-10-23 18:59:06 -04:00
14 changed files with 348 additions and 3 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
{
"angleJoystickRadiusDeadband": 0.5,
"heading": {
"p": 0.4,
"i": 0,
"d": 0.01
}
}

View File

@ -0,0 +1,30 @@
{
"location": {
"front": -12.375,
"left": 12.375
},
"absoluteEncoderOffset":209.443,
"drive": {
"type": "talonFX",
"id": 8,
"canbus": null
},
"angle": {
"type": "talonFX",
"id": 9,
"canbus": null
},
"inverted": {
"angle": true,
"drive": false
},
"conversionFactor": {
"angle": 0,
"drive": 0
},
"encoder": {
"type": "cancoder",
"id": 6,
"canbus": null
}
}

View File

@ -0,0 +1,30 @@
{
"location": {
"front": -12.375,
"left": -12.375
},
"absoluteEncoderOffset": 5.537,
"drive": {
"type": "sparkmax",
"id": 11,
"canbus": null
},
"angle": {
"type": "sparkmax",
"id": 12,
"canbus": null
},
"inverted": {
"angle": true,
"drive": false
},
"conversionFactor": {
"angle": 0,
"drive": 0
},
"encoder": {
"type": "cancoder",
"id": 7,
"canbus": null
}
}

View File

@ -0,0 +1,30 @@
{
"location": {
"front": 12.375,
"left": 12.375
},
"absoluteEncoderOffset":258.223 ,
"drive": {
"type": "talonFX",
"id": 2,
"canbus": null
},
"angle": {
"type": "talonFX",
"id": 3,
"canbus": null
},
"inverted": {
"angle": true,
"drive": false
},
"conversionFactor": {
"angle": 0,
"drive": 0
},
"encoder": {
"type": "cancoder",
"id": 4,
"canbus": null
}
}

View File

@ -0,0 +1,30 @@
{
"location": {
"front": 12.375,
"left": -12.375
},
"absoluteEncoderOffset": 110.215,
"drive": {
"type": "talonFX",
"id": 18,
"canbus": null
},
"angle": {
"type": "talonFX",
"id": 17,
"canbus": null
},
"inverted": {
"angle": true,
"drive": false
},
"conversionFactor": {
"angle": 0,
"drive": 0
},
"encoder": {
"type": "cancoder",
"id": 5,
"canbus": null
}
}

View File

@ -0,0 +1,16 @@
{
"optimalVoltage": 12,
"wheelGripCoefficientOfFriction": 1.19,
"currentLimit": {
"drive": 40,
"angle": 20
},
"conversionFactor": {
"angle": 16.8,
"drive": 0.04
},
"rampRate": {
"drive": 0.25,
"angle": 0.25
}
}

View File

@ -0,0 +1,16 @@
{
"drive": {
"p": 0.0020645,
"i": 0,
"d": 0,
"f": 0,
"iz": 0
},
"angle": {
"p": 0.01,
"i": 0,
"d": 0,
"f": 0,
"iz": 0
}
}

View File

@ -0,0 +1,14 @@
{
"imu": {
"type": "pigeon",
"id": 0,
"canbus": null
},
"invertedIMU": false,
"modules": [
"frontleft.json",
"frontright.json",
"backleft.json",
"backright.json"
]
}

View File

@ -0,0 +1,42 @@
// 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.
package frc.robot.Commands;
import edu.wpi.first.wpilibj2.command.Command;
import frc.robot.Subsystems.Accumulateur;
public class Desaccumuler extends Command {
private Accumulateur accumulateur;
/** Creates a new Desaccumuler. */
public Desaccumuler(Accumulateur accumulateur){
this.accumulateur = accumulateur;
addRequirements(accumulateur);
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
accumulateur.desaccumule(0.1);
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {
accumulateur.desaccumule(0);
}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return false;
}
}

View File

@ -0,0 +1,28 @@
// 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.
package frc.robot.Subsystems;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX;
public class Accumulateur extends SubsystemBase {
/** Creates a new Accumulateur. */
public Accumulateur() {}
final WPI_TalonSRX accumulateur1 = new WPI_TalonSRX(0);
final WPI_TalonSRX accumulateur2 = new WPI_TalonSRX(10);
public void encodeur(){
}
public void desaccumule(double vitesse){
accumulateur1.set(vitesse);
accumulateur2.set(-vitesse);
}
@Override
public void periodic() {
// This method will be called once per scheduler run
}
}

View File

@ -0,0 +1,52 @@
// 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.
package frc.robot.Subsystems;
import java.io.File;
import java.io.IOException;
import com.ctre.phoenix6.hardware.Pigeon2;
import edu.wpi.first.math.geometry.Translation2d;
import edu.wpi.first.math.kinematics.SwerveModulePosition;
import edu.wpi.first.wpilibj.Filesystem;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import swervelib.SwerveDrive;
import swervelib.parser.SwerveParser;
public class Drive extends SubsystemBase {
SwerveDrive swerveDrive;
File swerveJsonDirectory = new File(Filesystem.getDeployDirectory(),"swerve");
Pigeon2 Gyro = new Pigeon2(0);
public void drive(double x, double y, double zRotation){
swerveDrive.drive(new Translation2d(x*5, y*5), zRotation*4, true, false);
}
public Drive() {
try {
this.swerveDrive = new SwerveParser(swerveJsonDirectory).createSwerveDrive(5);
swerveDrive.setHeadingCorrection(true);
} catch (IOException e) {
e.printStackTrace();
}
}
public void restgyroscope(){
Gyro.reset();
}
public SwerveModulePosition[] distance(){
return swerveDrive.getModulePositions();
}
@Override
public void periodic() {
// This method will be called once per scheduler run
}
}

View File

@ -6,11 +6,14 @@ package frc.robot.Subsystems;
import com.ctre.phoenix.motorcontrol.FeedbackDevice;
import com.ctre.phoenix.motorcontrol.StatusFrameEnhanced;
import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX;
import com.revrobotics.CANSparkMax;
import com.revrobotics.CANSparkLowLevel.MotorType;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
public class Lanceur extends SubsystemBase {
@ -19,13 +22,20 @@ public class Lanceur extends SubsystemBase {
final WPI_TalonSRX lanceur1 = new WPI_TalonSRX(0);
final WPI_TalonSRX lanceur2 = new WPI_TalonSRX(1);
final CANSparkMax tourel = new CANSparkMax(2, MotorType.kBrushed);
final CANSparkMax tourelle = new CANSparkMax(2, MotorType.kBrushed);
public void encodeur(double distance){
lanceur1.configSelectedFeedbackSensor(FeedbackDevice.CTRE_MagEncoder_Relative);
lanceur2.configSelectedFeedbackSensor(FeedbackDevice.CTRE_MagEncoder_Relative);
lanceur1.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, 1);
lanceur2.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, 1);
lanceur1.configFactoryDefault();
}
public void lance(double vitesse){
lanceur1.set(vitesse);
lanceur2.set(-vitesse);
}
public void tourelRotation(double vitesse){
tourel.set(vitesse);
tourelle.set(vitesse);
}
public void setPID(double p, double i, int d) {
}

View File

@ -0,0 +1,38 @@
{
"fileName": "PathplannerLib.json",
"name": "PathplannerLib",
"version": "2024.2.8",
"uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786",
"frcYear": "2024",
"mavenUrls": [
"https://3015rangerrobotics.github.io/pathplannerlib/repo"
],
"jsonUrl": "https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib.json",
"javaDependencies": [
{
"groupId": "com.pathplanner.lib",
"artifactId": "PathplannerLib-java",
"version": "2024.2.8"
}
],
"jniDependencies": [],
"cppDependencies": [
{
"groupId": "com.pathplanner.lib",
"artifactId": "PathplannerLib-cpp",
"version": "2024.2.8",
"libName": "PathplannerLib",
"headerClassifier": "headers",
"sharedLibrary": false,
"skipInvalidPlatforms": true,
"binaryPlatforms": [
"windowsx86-64",
"linuxx86-64",
"osxuniversal",
"linuxathena",
"linuxarm32",
"linuxarm64"
]
}
]
}