From 878e91d9929b2a542f75141e41dedc7bf6278a4c Mon Sep 17 00:00:00 2001 From: G_Zod01 Date: Sat, 6 Apr 2024 14:47:49 +0200 Subject: [PATCH 1/9] hello --- .lastmatch.java.un~ | Bin 0 -> 4836 bytes ftc2024_autonome_api.java | 10 +-- lastmatch.java | 129 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+), 5 deletions(-) create mode 100644 .lastmatch.java.un~ create mode 100644 lastmatch.java diff --git a/.lastmatch.java.un~ b/.lastmatch.java.un~ new file mode 100644 index 0000000000000000000000000000000000000000..0d55324ea41bb83aadd42f4a959f553536d11165 GIT binary patch literal 4836 zcmeHK&2Jk;6i-VjY+Fz(3Wa`1Qv<>2$0iMFp&t=-Y6k*M9628qAY{h7V|&!yo$bu5 zV~Toc{{#+Pxq-yL!3ER{2Tt4(H#i}2gZE~3owZ}9hFmx>QsSMN_j}*(&CDhbzuJh( z;+Kj2UoL#IvU&8+@00c9hvP>c&mTPf`tJ`ue)RRvKh>ZA?X|~WOiWBXgundQ2NV3m zk$sza^H`Z4uq*W+?S9|?jMyyx1*6BNkL>@+SRODgPbnYf5S!UIgyYjR9Dlr=E*U9uWC7LPCB=M*uF;zq*lH5xe`R*G^nj-Qv7g5AghBs1no(SE02@T*kbS1L% zgk&!3ut*0&#IA@#(8ImWBSvL4UQU&|v^%~{rN2diQQ2D-TF6Q_v*i4kz@_C4gsi0G z!`+lqxC^F7G;kx@;Vp``x*yW5Rj$2uO$0$HY6VOo$N6y;2$QPh;0D928X12hgKNVW z^bD4)~&&++AC*uGUK{<$A5MR#~rCR&G_xm6~zbtw9DK zF)3EX7LyCC4b5K29=9Dk?n15fLB+5EGq#g!EHh-@jLUgAno)+c+8n7p>Ae-VR@to7 z)~sBxe_QUqw7;Lh4l8>a?AXcKk9llz@1H1N+RhtOadl}Z{iIPw*4z3P~Oo1>0iB!eojV-%5lTeQR?^?20U z4(7({1;D=ZMC^uY3_=&HwL7I+d1}gJU}_ay@tB6INzp7$I?m2(3N$RZhz*?d&&V;N(LcBE8Jh)hX=2G7;Q%#G7Ey^`qB_&as zN?m}qX5;l@o;rzrs+qM895(@GBW_X1HALABh}aPRhAs2QV0;A=v)@Nx2_z6U-x}`h z^y;=sr$MDQ4;U#5bD>>QB`D<%C~bTG83;CSl41*TET;Y?my*dzau!`@365emq(_04 zi8%@2WQAiwGI|%CcmO7NwmxNlUa<^^i+dVqr_TZL`|v@|nKQ;-L(IubeBLy7E3HT@ zl;RDz$&wBY68M2^ilGk?-DZ#gT}_nNhOk`&ZZ|A9d`i?k5eQjVZFoW8vx1zrA*=^* zt*`UQXI)tGO-ri-VI%;LY7tcHtz8(+!_ihSIne-p$RsI9JC)1_Xw^bZVDrM}$sD|V z$ShHe5x8K*Ohc`Uh=eqP*9f6;3|AZ8B@1L70~H9*T*HAS`Wc)Q2Q-4&vYq8sheRm& z1p?=^T_r7nlbCl|KztTJpe4C4B7A$1LS!h@6BZawrR2 literal 0 HcmV?d00001 diff --git a/ftc2024_autonome_api.java b/ftc2024_autonome_api.java index 7355321..0aa970d 100644 --- a/ftc2024_autonome_api.java +++ b/ftc2024_autonome_api.java @@ -100,25 +100,25 @@ public class Ftc2024_autonome_api extends LinearOpMode { robot.boxElv(); robot.harvest(1); robot.forward(2); - robot.harvest(0); + /*robot.harvest(0); robot.rotate((-90)); robot.posBasse(); robot.forward(3.5); robot.harvest(-1); robot.backward(0.5); robot.harvest(0); - robot.forward(0.5); + robot.forward(0.5);*/ break; case B2D: robot.posBasse(); robot.harvest(1); - robot.forward(0.5); - robot.harvest(0); robot.forward(1); + robot.harvest(0); + /* robot.forward(1); robot.harvest(-1); robot.backward(0.5); robot.harvest(0); - robot.forward(0.5); + robot.forward(0.5);*/ break; case R4D: robot.boxElv(); diff --git a/lastmatch.java b/lastmatch.java new file mode 100644 index 0000000..8d8f27b --- /dev/null +++ b/lastmatch.java @@ -0,0 +1,129 @@ +package org.firstinspires.ftc.teamcode; + +//import FTC2024WeRobotControl; //a tester car pas sur que ça fonctionne + +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.hardware.DcMotorEx; + +import com.qualcomm.robotcore.hardware.IMU; +import org.firstinspires.ftc.robotcore.external.navigation.YawPitchRollAngles; +import com.qualcomm.robotcore.hardware.ImuOrientationOnRobot; +import com.qualcomm.hardware.rev.RevHubOrientationOnRobot; + +import org.firstinspires.ftc.robotcore.external.navigation.Orientation; +import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder; +import org.firstinspires.ftc.robotcore.external.navigation.AxesReference; +import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit; + +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import com.qualcomm.robotcore.eventloop.opmode.Autonomous; +import com.qualcomm.robotcore.hardware.DcMotor; +import com.qualcomm.robotcore.util.ElapsedTime; + +@Autonomous + +public class Ftc2024_autonome_last extends LinearOpMode { + public enum AutoMode { + B2D, B4D + } + + public AutoMode autonomous_mode; + public DcMotor lm; + public DcMotor rm; + public DcMotorEx lmelevator; + public DcMotorEx rmelevator; + public DcMotor harvestmotor; + public IMU imu; + public DcMotorEx rotation; + + @Override + public void runOpMode() { + + boolean auto = false; + lm = hardwareMap.get(DcMotor.class, "blm"); + rm = hardwareMap.get(DcMotor.class, "brm"); + harvestmotor = hardwareMap.get(DcMotor.class, "moissonneuse"); + rotation = hardwareMap.get(DcMotorEx.class, "elvRot"); + lmelevator = hardwareMap.get(DcMotorEx.class, "ltrselv"); + lmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + lmelevator.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + rmelevator = hardwareMap.get(DcMotorEx.class, "rtrselv"); + rmelevator.setDirection(DcMotor.Direction.REVERSE); + rmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + rmelevator.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + + rm.setDirection(DcMotor.Direction.REVERSE); + rotation.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + + imu = hardwareMap.get(IMU.class, "imu"); + imu.initialize( + new IMU.Parameters( + new RevHubOrientationOnRobot( + RevHubOrientationOnRobot.LogoFacingDirection.UP, + RevHubOrientationOnRobot.UsbFacingDirection.FORWARD))); + imu.resetYaw(); + YawPitchRollAngles robotOrientation; + FTC2024WeRobotControl robot = new FTC2024WeRobotControl(this); + autonomous_mode = AutoMode.B4D; + + telemetry.addData("wait for start", ""); + telemetry.update(); + + waitForStart(); + telemetry.addData("started", ""); + telemetry.update(); + robotOrientation = imu.getRobotYawPitchRollAngles(); + + while (opModeIsActive()) { + if (gamepad1.a && !auto) { + auto = true; + break; + } + } + if (opModeIsActive()) { + /* + * autonomous_mode differents possibles values respect the next scheme: + * team_color_shortcode + start_line_index + direct_or_no + * + * team_color_shortcode = "b" for blue & "r" for red + * start_line_index = 4 or 2 see competition manual appendix B Tile location + * plan + * direct_or_no = "d" to direct go to pixel deliver zone or "n" to harvest + * pixels before to go in deliver zone + * + * default is "b4d" + */ + + switch (autonomous_mode) { + default: + robot.boxElv(); + robot.harvest(1); + robot.forward(2); + /* + * robot.harvest(0); + * robot.rotate((-90)); + * robot.posBasse(); + * robot.forward(3.5); + * robot.harvest(-1); + * robot.backward(0.5); + * robot.harvest(0); + * robot.forward(0.5); + */ + break; + case B2D: + robot.posBasse(); + robot.harvest(1); + robot.forward(1); + robot.harvest(0); + /* + * robot.forward(1); + * robot.harvest(-1); + * robot.backward(0.5); + * robot.harvest(0); + * robot.forward(0.5); + */ + break; + } + } + } +} From fb4690d606db24e286fdff2e20c320644576b264 Mon Sep 17 00:00:00 2001 From: G_Zod01 Date: Sat, 6 Apr 2024 14:48:25 +0200 Subject: [PATCH 2/9] h --- .lastmatch.java.un~ | Bin 4836 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .lastmatch.java.un~ diff --git a/.lastmatch.java.un~ b/.lastmatch.java.un~ deleted file mode 100644 index 0d55324ea41bb83aadd42f4a959f553536d11165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4836 zcmeHK&2Jk;6i-VjY+Fz(3Wa`1Qv<>2$0iMFp&t=-Y6k*M9628qAY{h7V|&!yo$bu5 zV~Toc{{#+Pxq-yL!3ER{2Tt4(H#i}2gZE~3owZ}9hFmx>QsSMN_j}*(&CDhbzuJh( z;+Kj2UoL#IvU&8+@00c9hvP>c&mTPf`tJ`ue)RRvKh>ZA?X|~WOiWBXgundQ2NV3m zk$sza^H`Z4uq*W+?S9|?jMyyx1*6BNkL>@+SRODgPbnYf5S!UIgyYjR9Dlr=E*U9uWC7LPCB=M*uF;zq*lH5xe`R*G^nj-Qv7g5AghBs1no(SE02@T*kbS1L% zgk&!3ut*0&#IA@#(8ImWBSvL4UQU&|v^%~{rN2diQQ2D-TF6Q_v*i4kz@_C4gsi0G z!`+lqxC^F7G;kx@;Vp``x*yW5Rj$2uO$0$HY6VOo$N6y;2$QPh;0D928X12hgKNVW z^bD4)~&&++AC*uGUK{<$A5MR#~rCR&G_xm6~zbtw9DK zF)3EX7LyCC4b5K29=9Dk?n15fLB+5EGq#g!EHh-@jLUgAno)+c+8n7p>Ae-VR@to7 z)~sBxe_QUqw7;Lh4l8>a?AXcKk9llz@1H1N+RhtOadl}Z{iIPw*4z3P~Oo1>0iB!eojV-%5lTeQR?^?20U z4(7({1;D=ZMC^uY3_=&HwL7I+d1}gJU}_ay@tB6INzp7$I?m2(3N$RZhz*?d&&V;N(LcBE8Jh)hX=2G7;Q%#G7Ey^`qB_&as zN?m}qX5;l@o;rzrs+qM895(@GBW_X1HALABh}aPRhAs2QV0;A=v)@Nx2_z6U-x}`h z^y;=sr$MDQ4;U#5bD>>QB`D<%C~bTG83;CSl41*TET;Y?my*dzau!`@365emq(_04 zi8%@2WQAiwGI|%CcmO7NwmxNlUa<^^i+dVqr_TZL`|v@|nKQ;-L(IubeBLy7E3HT@ zl;RDz$&wBY68M2^ilGk?-DZ#gT}_nNhOk`&ZZ|A9d`i?k5eQjVZFoW8vx1zrA*=^* zt*`UQXI)tGO-ri-VI%;LY7tcHtz8(+!_ihSIne-p$RsI9JC)1_Xw^bZVDrM}$sD|V z$ShHe5x8K*Ohc`Uh=eqP*9f6;3|AZ8B@1L70~H9*T*HAS`Wc)Q2Q-4&vYq8sheRm& z1p?=^T_r7nlbCl|KztTJpe4C4B7A$1LS!h@6BZawrR2 From 590722149760dc7db1705b79555cb0feeda253e8 Mon Sep 17 00:00:00 2001 From: G_Zod01 Date: Sat, 6 Apr 2024 14:50:54 +0200 Subject: [PATCH 3/9] h --- lastmatch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lastmatch.java b/lastmatch.java index 8d8f27b..965642f 100644 --- a/lastmatch.java +++ b/lastmatch.java @@ -27,7 +27,7 @@ public class Ftc2024_autonome_last extends LinearOpMode { B2D, B4D } - public AutoMode autonomous_mode; + public AutoMode autonomous_mode = B2D; public DcMotor lm; public DcMotor rm; public DcMotorEx lmelevator; From ee1a339a2a71fa9a6ad4628b0cfeb39bbed327b8 Mon Sep 17 00:00:00 2001 From: G_Zod01 Date: Sat, 6 Apr 2024 14:54:11 +0200 Subject: [PATCH 4/9] add hello.99.java, a cool file to demonstrate that java can be inline... Let's go: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras malesuada nulla nec lorem auctor placerat. Aliquam justo turpis, laoreet et eleifend id, pretium et justo. Sed leo enim, euismod non efficitur et, consectetur ac purus. Maecenas ac lorem vulputate, aliquam dui consectetur, iaculis lacus. Quisque consectetur faucibus egestas. Morbi erat arcu, sagittis nec mi nec, faucibus tristique sem. Donec eu nulla nec enim volutpat faucibus. Praesent sed mattis tellus. Proin volutpat viverra magna, sed auctor nisi fermentum quis. Donec gravida neque non metus venenatis, id posuere ante malesuada. Suspendisse ultricies pellentesque urna, non blandit urna faucibus sit amet. Vestibulum et felis et ipsum ullamcorper facilisis sit amet id diam. Phasellus tempus augue nec vehicula vehicula. Ut ut eleifend diam, at accumsan nibh. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. --- hello.99.java | 1 + 1 file changed, 1 insertion(+) create mode 100644 hello.99.java diff --git a/hello.99.java b/hello.99.java new file mode 100644 index 0000000..5eb81b5 --- /dev/null +++ b/hello.99.java @@ -0,0 +1 @@ +package tld.domain.truc;import tld.domain.autre_truc;public class hello_999{public void main(){System.out.println("helloworld");}} From 66925dc7e03ed777619addf0919c68222e40fc3b Mon Sep 17 00:00:00 2001 From: GZod01 Date: Sun, 12 May 2024 14:49:07 +0200 Subject: [PATCH 5/9] Add AutonomeTest.java --- AutonomeTest.java | 74 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 AutonomeTest.java diff --git a/AutonomeTest.java b/AutonomeTest.java new file mode 100644 index 0000000..5f0db9b --- /dev/null +++ b/AutonomeTest.java @@ -0,0 +1,74 @@ +package org.firstinspires.ftc.teamcode; + +import com.qualcomm.robotcore.eventloop.opmode.Autonomous; +import com.qualcomm.robotcore.hardware.DcMotorEx; +import com.qualcomm.robotcore.hardware.DcMotorSimple; +import com.qualcomm.robotcore.hardware.DcMotor; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import org.firstinspires.ftc.robotcore.external.navigation.Position; +import org.firstinspires.ftc.robotcore.external.navigation.Velocity; +import com.qualcomm.robotcore.util.ElapsedTime; + +@Autonomous + +public class AutonomeTest extends LinearOpMode { + private DcMotorEx droit; + private DcMotorEx gauche; + private DcMotorEx boiteG; + private DcMotorEx boiteD; + private ElapsedTime runtime = new ElapsedTime(); + + @Override + public void runOpMode(){ + boiteD = hardwareMap.get(DcMotorEx.class, "rtrselv"); + boiteD.setDirection(DcMotorSimple.Direction.REVERSE); + boiteD.setMode(DcMotorEx.RunMode.STOP_AND_RESET_ENCODER); + boiteD.setZeroPowerBehavior(DcMotorEx.ZeroPowerBehavior.FLOAT); + boiteG = hardwareMap.get(DcMotorEx.class, "ltrselv"); + boiteG.setMode(DcMotorEx.RunMode.STOP_AND_RESET_ENCODER); + boiteG.setZeroPowerBehavior(DcMotorEx.ZeroPowerBehavior.FLOAT); + gauche = hardwareMap.get(DcMotorEx.class, "blm"); + gauche.setMode(DcMotorEx.RunMode.STOP_AND_RESET_ENCODER); + gauche.setZeroPowerBehavior(DcMotorEx.ZeroPowerBehavior.FLOAT); + droit = hardwareMap.get(DcMotorEx.class, "brm"); + droit.setDirection(DcMotorSimple.Direction.REVERSE); + droit.setMode(DcMotorEx.RunMode.STOP_AND_RESET_ENCODER); + droit.setZeroPowerBehavior(DcMotorEx.ZeroPowerBehavior.FLOAT); + + + waitForStart(); + + boiteG.setTargetPosition(90); + boiteD.setTargetPosition(90); + while (boiteG.getCurrentPosition()gauche.getTargetPosition()){ + gauche.setVelocity(250); + gauche.setMode(DcMotor.RunMode.RUN_TO_POSITION); + droit.setVelocity(250); + droit.setMode(DcMotor.RunMode.RUN_TO_POSITION); + } + + } +} \ No newline at end of file From eed163266ba98242448ddd85a4e59f5a85e80734 Mon Sep 17 00:00:00 2001 From: GZod01 Date: Sun, 12 May 2024 15:54:51 +0200 Subject: [PATCH 6/9] autonometest --- AutonomeTest.java | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/AutonomeTest.java b/AutonomeTest.java index 5f0db9b..581cd96 100644 --- a/AutonomeTest.java +++ b/AutonomeTest.java @@ -34,13 +34,14 @@ public class AutonomeTest extends LinearOpMode { droit.setDirection(DcMotorSimple.Direction.REVERSE); droit.setMode(DcMotorEx.RunMode.STOP_AND_RESET_ENCODER); droit.setZeroPowerBehavior(DcMotorEx.ZeroPowerBehavior.FLOAT); + moissonneuse = hardwareMap.get(DcMotor.class,"msn"); waitForStart(); boiteG.setTargetPosition(90); boiteD.setTargetPosition(90); - while (boiteG.getCurrentPosition()gauche.getTargetPosition()){ + while (opModeIsActive() && gauche.getCurrentPosition()>gauche.getTargetPosition()){ gauche.setVelocity(250); gauche.setMode(DcMotor.RunMode.RUN_TO_POSITION); droit.setVelocity(250); droit.setMode(DcMotor.RunMode.RUN_TO_POSITION); } + gauche.setTargetPosition(700*3); + droit.setTargetPosition(700*3); + + while (opModeIsActive() && gauche.getCurrentPosition() Date: Mon, 20 May 2024 17:08:50 +0200 Subject: [PATCH 7/9] update --- fgc2024Pilotage.java | 42 ++++++++++ lastmatch.java | 193 ++++++++++++++++++++++++------------------- 2 files changed, 148 insertions(+), 87 deletions(-) create mode 100644 fgc2024Pilotage.java diff --git a/fgc2024Pilotage.java b/fgc2024Pilotage.java new file mode 100644 index 0000000..8e8683f --- /dev/null +++ b/fgc2024Pilotage.java @@ -0,0 +1,42 @@ +package org.firstinspires.ftc.teamcode; + +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import org.firstinspires.ftc.robotcore.external.navigation.YawPitchRollAngles; +import com.qualcomm.robotcore.robot.Robot; +import org.firstinspires.ftc.robotcore.external.Telemetry; +import com.qualcomm.robotcore.hardware.Gamepad; +import com.qualcomm.robotcore.hardware.DcMotorEx; +import com.qualcomm.robotcore.robot.Robot; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import com.qualcomm.robotcore.hardware.DcMotor; +import com.qualcomm.robotcore.hardware.DcMotorSimple; +import com.qualcomm.robotcore.hardware.Servo; + +import com.qualcomm.robotcore.hardware.IMU; +import com.qualcomm.robotcore.hardware.ImuOrientationOnRobot; +import com.qualcomm.hardware.rev.RevHubOrientationOnRobot; +import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit; +import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder; +import org.firstinspires.ftc.robotcore.external.navigation.AxesReference; +import org.firstinspires.ftc.robotcore.external.navigation.Orientation; +import org.firstinspires.ftc.robotcore.external.navigation.Position; +import org.firstinspires.ftc.robotcore.external.navigation.Velocity; + +@TeleOp(name = "WeRobot: FTC2024 NEW! Carlike", group = "WeRobot") +public class WEROBOT_FTC2024_New_carlike extends LinearOpMode { + + private DcMotorEx rm; + private DcMotorEx lm; + + + @Override + public void runOpMode() throws InterruptedException { + + float x; // abscisse joystick gauche + double y; // ordonnées joystick gauche + + telemetry.addData("Status"," Initialized"); + + + } +} \ No newline at end of file diff --git a/lastmatch.java b/lastmatch.java index 965642f..1f7e171 100644 --- a/lastmatch.java +++ b/lastmatch.java @@ -3,6 +3,7 @@ package org.firstinspires.ftc.teamcode; //import FTC2024WeRobotControl; //a tester car pas sur que ça fonctionne import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; +import com.qualcomm.robotcore.eventloop.opmode.OpMode; import com.qualcomm.robotcore.hardware.DcMotorEx; import com.qualcomm.robotcore.hardware.IMU; @@ -22,108 +23,126 @@ import com.qualcomm.robotcore.util.ElapsedTime; @Autonomous -public class Ftc2024_autonome_last extends LinearOpMode { - public enum AutoMode { - B2D, B4D - } +public class lastmatch extends LinearOpMode { - public AutoMode autonomous_mode = B2D; - public DcMotor lm; - public DcMotor rm; + public DcMotorEx lm; + public DcMotorEx rm; public DcMotorEx lmelevator; public DcMotorEx rmelevator; public DcMotor harvestmotor; public IMU imu; public DcMotorEx rotation; + private ElapsedTime timer; + @Override public void runOpMode() { + timer = new ElapsedTime(); + boolean auto = false; + lm = hardwareMap.get(DcMotorEx.class, "blm"); + rm = hardwareMap.get(DcMotorEx.class, "brm"); + harvestmotor = hardwareMap.get(DcMotor.class, "moissonneuse"); + rotation = hardwareMap.get(DcMotorEx.class, "elvRot"); + rotation.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + lmelevator = hardwareMap.get(DcMotorEx.class, "ltrselv"); + lmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + lmelevator.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + rmelevator = hardwareMap.get(DcMotorEx.class, "rtrselv"); + rmelevator.setDirection(DcMotor.Direction.REVERSE); + rmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + rmelevator.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); - boolean auto = false; - lm = hardwareMap.get(DcMotor.class, "blm"); - rm = hardwareMap.get(DcMotor.class, "brm"); - harvestmotor = hardwareMap.get(DcMotor.class, "moissonneuse"); - rotation = hardwareMap.get(DcMotorEx.class, "elvRot"); - lmelevator = hardwareMap.get(DcMotorEx.class, "ltrselv"); - lmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); - lmelevator.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); - rmelevator = hardwareMap.get(DcMotorEx.class, "rtrselv"); - rmelevator.setDirection(DcMotor.Direction.REVERSE); - rmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); - rmelevator.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + rm.setDirection(DcMotor.Direction.REVERSE); + rotation.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); - rm.setDirection(DcMotor.Direction.REVERSE); - rotation.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + imu = hardwareMap.get(IMU.class, "imu"); + imu.initialize( + new IMU.Parameters( + new RevHubOrientationOnRobot( + RevHubOrientationOnRobot.LogoFacingDirection.UP, + RevHubOrientationOnRobot.UsbFacingDirection.FORWARD))); + imu.resetYaw(); + YawPitchRollAngles robotOrientation; + FTC2024WeRobotControl robot = new FTC2024WeRobotControl(this); - imu = hardwareMap.get(IMU.class, "imu"); - imu.initialize( - new IMU.Parameters( - new RevHubOrientationOnRobot( - RevHubOrientationOnRobot.LogoFacingDirection.UP, - RevHubOrientationOnRobot.UsbFacingDirection.FORWARD))); - imu.resetYaw(); - YawPitchRollAngles robotOrientation; - FTC2024WeRobotControl robot = new FTC2024WeRobotControl(this); - autonomous_mode = AutoMode.B4D; + telemetry.addData("wait for start", ""); + telemetry.update(); - telemetry.addData("wait for start", ""); - telemetry.update(); + waitForStart(); + telemetry.addData("started", ""); + telemetry.update(); + robotOrientation = imu.getRobotYawPitchRollAngles(); - waitForStart(); - telemetry.addData("started", ""); - telemetry.update(); - robotOrientation = imu.getRobotYawPitchRollAngles(); + while (opModeIsActive()) { + if (gamepad1.a && !auto) { + auto = true; + break; + } + } + if (opModeIsActive()) { + double motor_speed = 1.0; + lmelevator.setVelocity(600); + rmelevator.setVelocity(600); + lmelevator.setTargetPosition(200); + rmelevator.setTargetPosition(200); + rotation.setVelocity(600); + rotation.setTargetPosition(40); + lmelevator.setMode(DcMotor.RunMode.RUN_TO_POSITION); + rmelevator.setMode(DcMotor.RunMode.RUN_TO_POSITION); + rotation.setMode(DcMotor.RunMode.RUN_TO_POSITION); + sleep(2000); + + lm.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); + rm.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); + double total_time = robot.time_for_dist(1 * robot.ground_tiles_width, Math.abs(motor_speed)); + timer.reset(); + while (opModeIsActive() && timer.seconds() < total_time) { + lm.setPower(motor_speed); + rm.setPower(motor_speed); + } + lm.setPower(0); + rm.setPower(0); + + harvestmotor.setPower(-0.6); + + lm.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); + rm.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); + total_time = robot.time_for_dist(0.7 * robot.ground_tiles_width, Math.abs(motor_speed)); + timer.reset(); + while (opModeIsActive() && timer.seconds() < total_time) { + lm.setPower(-motor_speed); + rm.setPower(-motor_speed); + } + lm.setPower(0); + rm.setPower(0); + + double angle = 90.0; + lm.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + rm.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + double perimeter = Math.toRadians(angle)* 37.0/2.0; + int targetPos = (int) Math.floor(perimeter/(9e-2*Math.PI)); + targetPos = targetPos * 20; + rm.setTargetPosition(targetPos); + lm.setTargetPosition(-targetPos); + lm.setVelocity(600); + rm.setVelocity(600); + lm.setMode(DcMotor.RunMode.RUN_TO_POSITION); + rm.setMode(DcMotor.RunMode.RUN_TO_POSITION); + // while (Math.abs(lm.getCurrentPosition() - targetPos)>=2){} + + motor_speed= 1; + lm.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); + rm.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); + total_time = robot.time_for_dist(1.5 * robot.ground_tiles_width, Math.abs(motor_speed)); + timer.reset(); + while (opModeIsActive() && timer.seconds() < total_time) { + lm.setPower(motor_speed); + rm.setPower(motor_speed); + } + lm.setPower(0); + rm.setPower(0); - while (opModeIsActive()) { - if (gamepad1.a && !auto) { - auto = true; - break; - } - } - if (opModeIsActive()) { - /* - * autonomous_mode differents possibles values respect the next scheme: - * team_color_shortcode + start_line_index + direct_or_no - * - * team_color_shortcode = "b" for blue & "r" for red - * start_line_index = 4 or 2 see competition manual appendix B Tile location - * plan - * direct_or_no = "d" to direct go to pixel deliver zone or "n" to harvest - * pixels before to go in deliver zone - * - * default is "b4d" - */ - switch (autonomous_mode) { - default: - robot.boxElv(); - robot.harvest(1); - robot.forward(2); - /* - * robot.harvest(0); - * robot.rotate((-90)); - * robot.posBasse(); - * robot.forward(3.5); - * robot.harvest(-1); - * robot.backward(0.5); - * robot.harvest(0); - * robot.forward(0.5); - */ - break; - case B2D: - robot.posBasse(); - robot.harvest(1); - robot.forward(1); - robot.harvest(0); - /* - * robot.forward(1); - * robot.harvest(-1); - * robot.backward(0.5); - * robot.harvest(0); - * robot.forward(0.5); - */ - break; - } - } + } } } From 8e3b2196a10b8cf0ae4b94c616613020fe95f561 Mon Sep 17 00:00:00 2001 From: Zelina974 Date: Mon, 20 May 2024 18:05:40 +0200 Subject: [PATCH 8/9] update --- fgc2024Pilotage.java | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/fgc2024Pilotage.java b/fgc2024Pilotage.java index 8e8683f..d36100a 100644 --- a/fgc2024Pilotage.java +++ b/fgc2024Pilotage.java @@ -32,11 +32,32 @@ public class WEROBOT_FTC2024_New_carlike extends LinearOpMode { @Override public void runOpMode() throws InterruptedException { - float x; // abscisse joystick gauche - double y; // ordonnées joystick gauche + float x = gamepad1.left_stick_x; // abscisse joystick gauche + double y = gamepad1.left_stick_y; // ordonnées joystick gauche + double lpower = 0.0; //puissance moteur gauche + double rpower = 0.0; //puissance moteur droit telemetry.addData("Status"," Initialized"); - + lm = hardwareMap.get(DcMotorEx.class, "lm"); + rm = hardwareMap.get(DcMotorEx.class, "rm"); + lm.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + rm.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); + lm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); + rm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); + + lpower = ((1+x)*Math.signum(y))/2; + rpower = ((1-x)*Math.signum(y))/2; + + if ( x=1 || x=-1 ){ + lpower = 1*Math.signum(x); + rpower = - lpower; + } + + lpower = lpower*gamepad1.left_trigger; + rpower = lpower*gamepad1.left_trigger; + + rm.setPower(rpower); + lm.setPower(lpower); } } \ No newline at end of file From 5da5ebbe1e63c48f751904a50ed202cf833f7cb8 Mon Sep 17 00:00:00 2001 From: GZod01 Date: Sun, 2 Jun 2024 16:57:59 +0200 Subject: [PATCH 9/9] helloworld, we added some features and we hope that the robot will work but we know that hope is often lies, so we have to hope even if we know that it's false, 'Measuring programming progree by lines of code is like measuring aircraft building progree by weight.' - Bill Gates --- AutonomeTest.java | 7 ++++-- fgc2024Pilotage.java | 57 ++++++++++++++++++++++++-------------------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/AutonomeTest.java b/AutonomeTest.java index 581cd96..49687ba 100644 --- a/AutonomeTest.java +++ b/AutonomeTest.java @@ -17,6 +17,7 @@ public class AutonomeTest extends LinearOpMode { private DcMotorEx boiteG; private DcMotorEx boiteD; private ElapsedTime runtime = new ElapsedTime(); + private DcMotor moissonneuse; @Override public void runOpMode(){ @@ -34,7 +35,7 @@ public class AutonomeTest extends LinearOpMode { droit.setDirection(DcMotorSimple.Direction.REVERSE); droit.setMode(DcMotorEx.RunMode.STOP_AND_RESET_ENCODER); droit.setZeroPowerBehavior(DcMotorEx.ZeroPowerBehavior.FLOAT); - moissonneuse = hardwareMap.get(DcMotor.class,"msn"); + moissonneuse = hardwareMap.get(DcMotor.class,"moissonneuse"); waitForStart(); @@ -64,12 +65,14 @@ public class AutonomeTest extends LinearOpMode { gauche.setTargetPosition(165); droit.setTargetPosition(1235); - while (opModeIsActive() && gauche.getCurrentPosition()>gauche.getTargetPosition()){ + while (opModeIsActive() && droit.getCurrentPosition()>droit.getTargetPosition()){ gauche.setVelocity(250); gauche.setMode(DcMotor.RunMode.RUN_TO_POSITION); droit.setVelocity(250); droit.setMode(DcMotor.RunMode.RUN_TO_POSITION); } + gauche.setVelocity(0); + droit.setVelocity(0); gauche.setTargetPosition(700*3); droit.setTargetPosition(700*3); diff --git a/fgc2024Pilotage.java b/fgc2024Pilotage.java index d36100a..f8b1d47 100644 --- a/fgc2024Pilotage.java +++ b/fgc2024Pilotage.java @@ -22,42 +22,47 @@ import org.firstinspires.ftc.robotcore.external.navigation.Orientation; import org.firstinspires.ftc.robotcore.external.navigation.Position; import org.firstinspires.ftc.robotcore.external.navigation.Velocity; -@TeleOp(name = "WeRobot: FTC2024 NEW! Carlike", group = "WeRobot") -public class WEROBOT_FTC2024_New_carlike extends LinearOpMode { - +@TeleOp(name = "FGC2024", group = "WeRobot") +public class FGC_2024 extends LinearOpMode { + private DcMotorEx rm; private DcMotorEx lm; @Override public void runOpMode() throws InterruptedException { - - float x = gamepad1.left_stick_x; // abscisse joystick gauche - double y = gamepad1.left_stick_y; // ordonnées joystick gauche - double lpower = 0.0; //puissance moteur gauche - double rpower = 0.0; //puissance moteur droit - telemetry.addData("Status"," Initialized"); - lm = hardwareMap.get(DcMotorEx.class, "lm"); - rm = hardwareMap.get(DcMotorEx.class, "rm"); - lm.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); - rm.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); - lm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); - rm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); + telemetry.addData("Status"," Initialized"); + telemetry.update(); - lpower = ((1+x)*Math.signum(y))/2; - rpower = ((1-x)*Math.signum(y))/2; + lm = hardwareMap.get(DcMotorEx.class, "lm"); + lm.setDirection(DcMotor.Direction.REVERSE); + rm = hardwareMap.get(DcMotorEx.class, "rm"); + //lm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); + //rm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); - if ( x=1 || x=-1 ){ - lpower = 1*Math.signum(x); - rpower = - lpower; - } + waitForStart(); + while(opModeIsActive()){ + float x = gamepad1.left_stick_x; // abscisse joystick gauche + double y = gamepad1.left_stick_y; // ordonnées joystick gauche + double lpower = 0.0; //puissance moteur gauche + double rpower = 0.0; //puissance moteur droit - lpower = lpower*gamepad1.left_trigger; - rpower = lpower*gamepad1.left_trigger; + lpower = ((1+x)*Math.signum(y))/2; + rpower = ((1-x)*Math.signum(y))/2; - rm.setPower(rpower); - lm.setPower(lpower); + if (Math.abs(x)>0.8){ + lpower = 1*Math.signum(x); + rpower = -lpower; + } + + lpower = lpower*gamepad1.left_trigger; + rpower = lpower*gamepad1.left_trigger; + + rm.setPower(rpower); + lm.setPower(lpower); + telemetry.update(); + } } -} \ No newline at end of file +}