: 30- , 30 , .
, . :
() , - , . , , .
:
● ...........5
● ...........10
● ............ 5
● ........... 10
● ........... 15 /
● ........... 5 /
● - ........... 5
● () ......... 30 /
( , )
, . , . . , . :
● .......... 5 /
● ..........1 /
30 . , - . :
● ꅅ. 10 /
● - , 76 셅. 10
● - 76 셅. 20
● - 充. 40
; |
. Velocity Vortex.
, . ( ), , , , . - , , , - , .
|
|
, FTC.
- , . , , . , . Make pink goose great again!
, . . . , , . . , - . . .. , . .
.
, - , , . 3- , . , , , . , , .
, , . JAVA, . , .
, . : , .
- . : , .
https://vk.com/ftc_ru?z=video51298751_456239024%2Fdb67bb9eec6161da4a%2Fpl_post_-84781876_813
, , , .
|
|
. , . . , . - , . , .
.
, , (4 , 2 ), . , , , . , , , . FIRST. , .
3D , . 1, 22 2,44 .
, . :
● 18 - 1/2
● 9 - 1
● 32 - 3
● 20 - 9
● 32 90* - 2.
● 32
● 20 - 28 .
● 3220
: , , , . , , , 20 . 32 , , , , 18 2 "" 14 20 . 18 - .
FTC.ru , . https://vk.com/wall-84781876_754
.
, : . , , . . .
.
, .
|
|
- . , .
https://vk.com/ftc_ru?z=video162992858_456239021%2F3fc8d4128634d0b1c1%2Fpl_post_-84781876_800
, .
, . . , , .
, : , , . , , .
, .
, : . 3 , 45 . - , .
.
, , 5 . : , , , , . , , , .
, , . . , 95 .
, .
. , , , . , . , , .
https://vk.com/im?sel=145537964&z=video132959757_456239043%2Fae2b80bc869716888e
, , - . 3D-. . . . . https://vk.com/ftc_ru?z=video51298751_456239028%2F1415f8eb6543ce6bd9%2Fpl_wall_-84781876
|
|
. , , . , . , .
, . , , , .
3 , .
, . 3D- . 5 . -, . , , . .
- end-game. , , , .
. : , , , - .
, , . , , : , . , , , . : , , . .
, .
, . .
, .
. 5 5 .
https://vk.com/ftc_ru?z=video51298751_456239026%2Fc3986aa98bb7fe49a7%2Fpl_wall_-84781876
, - end-game .
. .
, , . , ( ), . , , , .
, .
, - . , . , . , , .
|
|
.
. .
. , , . , .
.
, . . , , , . , .
. . . , .
( ) . , . Lego .
- . : , , , .
, , - . , .
, , , .
4 , 2 , 2 2 . , .
, , .
, , (, ) , - .
, . , , . .
.
https://vk.com/im?sel=51298751&z=video51298751_456239031%2F561c36a73224fbd932
, , .
( , , , , , ).
: , , .
, - . .
, , , , .
Masquerade .
:
package com.qualcomm.ftcrobotcontroller.opmodes;
import com.qualcomm.robotcore.eventloop.opmode.OpMode;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.DcMotorController;
import com.qualcomm.robotcore.hardware.Servo;
import com.qualcomm.robotcore.util.Range;
public class GooseTeleOp extends OpMode {
public DcMotorController c1;
public DcMotor leftMotor;
public DcMotor rightMotor;
public DcMotor shooter; //
public DcMotor collector; //
public DcMotor up;
public Servo arm; //
public static final double SHOOTER_POWER = 1;
public static final double COLLECTOR_POWER = 1;
double armPosition = 0;
long time;
public GooseTeleOp() {
}
@Override
public void init() {
c1 = hardwareMap.dcMotorController.get("c1");
leftMotor = hardwareMap.dcMotor.get("m2");
rightMotor = hardwareMap.dcMotor.get("m1");
shooter = hardwareMap.dcMotor.get("shooter");
collector = hardwareMap.dcMotor.get("collector");
arm = hardwareMap.servo.get("hand");
up = hardwareMap.dcMotor.get("up");
leftMotor.setDirection(DcMotor.Direction.REVERSE);
up.setDirection(DcMotor.Direction.REVERSE);
}
@Override
public void loop() {
//
float left = -gamepad1.left_stick_y;
float right = -gamepad1.right_stick_y;
left = Range.clip(left, -1, 1);
right = Range.clip(right, -1, 1);
//if(gamepad1.left_stick_y)
//time = System.currentTimeMillis();
if(gamepad1.left_trigger > 0.25 || gamepad1.right_trigger > 0.25) {
left = left / 3;
right = right / 3;
}
leftMotor.setPower(left);
rightMotor.setPower(right);
//
if (gamepad2.a)
collector.setPower(-COLLECTOR_POWER);
else
collector.setPower(0.0);
//
if (gamepad2.y)
shooter.setPower(-SHOOTER_POWER);
else
shooter.setPower(0.0);
float upper = -gamepad2.left_stick_y;
upper = Range.clip(upper, -1, 1);
if(gamepad2.left_trigger > 0.25 || gamepad2.right_trigger > 0.25) {
upper = upper / 3;
}
up.setPower(upper);
//
if (gamepad1.b && (armPosition <= 0.9)) { armPosition = armPosition + 0.05; arm.setPosition(armPosition); }
if (gamepad1.x && (armPosition >= 0.1)) { armPosition = armPosition - 0.05; arm.setPosition(armPosition); }
}
@Override
public void stop() {
}
}
:
package com.qualcomm.ftcrobotcontroller.opmodes;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.DcMotorController;
import com.qualcomm.robotcore.hardware.LightSensor;
import com.qualcomm.robotcore.hardware.UltrasonicSensor;
import com.qualcomm.robotcore.hardware.ColorSensor;
import com.qualcomm.robotcore.hardware.Servo;
public class GooseAutonomous extends LinearOpMode {
DcMotorController c1;
DcMotor leftMotor;
DcMotor rightMotor;
DcMotor shooter;
LightSensor lightSensor;
UltrasonicSensor ultrasonicSensor;
ColorSensor sensorRGB;
Servo hand;
final static long TURN_RIGHT = 650;
long now;
@Override
public void runOpMode() throws InterruptedException {
lightSensor = hardwareMap.lightSensor.get("sensor_light");
lightSensor.enableLed(true);
ultrasonicSensor = hardwareMap.ultrasonicSensor.get("distance");
sensorRGB = hardwareMap.colorSensor.get("color");
c1 = hardwareMap.dcMotorController.get("c1");
leftMotor = hardwareMap.dcMotor.get("m2");
rightMotor = hardwareMap.dcMotor.get("m1");
leftMotor.setDirection(DcMotor.Direction.REVERSE);
shooter = hardwareMap.dcMotor.get("shooter");
hand = hardwareMap.servo.get("hand");
stopDriving();
shooter.setPower(0);
waitForStart();
//
drive(-0.70, -0.70, 1100);
sleep(50);
//
shooter.setPower(-1);
sleep(5000);
shooter.setPower(0);
sleep(100);
// -
drive(0.7, -0.7, TURN_RIGHT);
sleep(50);
drive(0.7, 0.7, 1100);
sleep(50);
drive(0.7, -0.7, TURN_RIGHT+100);
sleep(50);
while(opModeIsActive() && (lightSensor.getLightDetected() < 0.70) && (lightSensor.getLightDetected() > 0.60)) { drive2(0.5, 0.5); }
sleep(1);
stopDriving();
sleep(50);
mayak();
sleep(1);
drive(0.7, -0.7, TURN_RIGHT);
sleep(1);
while(opModeIsActive() && (lightSensor.getLightDetected() < 0.70) && (lightSensor.getLightDetected() > 0.60)) { drive2(0.5, 0.5); }
sleep(1);
stopDriving();
sleep(50);
mayak();
sleep(1);
}
public void stopDriving() {
leftMotor.setPower(0);
rightMotor.setPower(0);
}
public void drive(double lpower, double rpower, long waiting) {
now = System.currentTimeMillis();
while(opModeIsActive() && (System.currentTimeMillis() - now < waiting)) {
leftMotor.setPower(lpower);
rightMotor.setPower(rpower);
}
stopDriving();
}
public void drive2(double lpower, double rpower) {
leftMotor.setPower(lpower);
rightMotor.setPower(rpower);
}
public void mayak() {
while(opModeIsActive() && (ultrasonicSensor.getUltrasonicLevel() > 20)) {
if (lightSensor.getLightDetected() > 0.70) {
drive(0.25, 0, 1);
} else if(lightSensor.getLightDetected() < 0.50) {
drive(0, 0.25, 1);
} else {
drive(0.25, 0.25, 1);
}
}
stopDriving();
if(sensorRGB.red() >= 100) {
hand.setPosition(0.2);
drive(0.3, 0.3, 100);
} else {
hand.setPosition(0.8);
drive(0.3, 0.3, 100);
}
}
}
, .