Documente Academic
Documente Profesional
Documente Cultură
POLITEHNICĂ TIMIȘOARA,
FACULTATEA DE INGINERIE
DIN HUNEDOARA,
CONCURSUL ,,Anton
Saimac” 2023
Robotul Kick-Start
(MIȘA 30)
ELEVI PROFESOR
COORDONATOR:
SOCOTEANU PAUL DANIEL NISTOR MIRCEA
IACOB IANIS CRISTIAN ALEXANDRU
MADARAS LEVENTE
Definirea problemei: Noile tehnologii, inclusiv robotica, sunt
ignorate de publicul larg.
Interfețe de expansiune:
-2 porturi RS485
Limbaje de programare acceptate:
-Blocks
-OnBot Java
-Java
Interfețe de expansiune:
-2 porturi RS485
● REV Smart Robot Servo
-Stall torque: 1.3 N*m
-Stall current: 2 A
-Unghi maxim: 270°
-Voltaj: 4.8V-7.4V (6V bază)
● Roțile Traction
-Raza: 5 cm
-Grosimea: 1.3 cm
● Roțile mari:
-Raza: 5 cm
-Grosimea: 2.5 cm
if (gamepad1.y) {
servo.setPosition(0.45);
}
if (gamepad1.b) {
stare = 0;
}
if (stare == 0) {
servo.setPosition(-0.3);
brat.setTargetPosition(900);
brat.setMode(DcMotor.RunMode.RUN_TO_POSITION);
brat.setPower(1);
while (brat.isBusy()) {
}
MotorAdidas.setTargetPosition(220);
MotorAdidas.setMode(DcMotor.RunMode.RUN_TO_POSITION);
MotorAdidas.setPower(-0.1);
while (MotorAdidas.isBusy());
stare = 1;
}
if (stare == 1) {
MotorAdidas.setTargetPosition(-150);
MotorAdidas.setMode(DcMotor.RunMode.RUN_TO_POSITION);
MotorAdidas.setPower(1);
while (MotorAdidas.isBusy()) {
if (gamepad1.x) {
MotorAdidas.setPower(0);
stare = 10;
}
}
stare = 2;
}
if (stare == 2) {
MotorAdidas.setTargetPosition(0);
MotorAdidas.setMode(DcMotor.RunMode.RUN_TO_POSITION);
MotorAdidas.setPower(0.2);
while (MotorAdidas.isBusy()) {
if (gamepad1.x) {
MotorAdidas.setPower(0);
stare = 10;
}
}
MotorAdidas.setPower(0);
brat.setTargetPosition(0);
brat.setMode(DcMotor.RunMode.RUN_TO_POSITION);
brat.setPower(0.5);
while (brat.isBusy());
brat.setPower(0);
stare = 3;
}
Partea de program cu care am controlat roțile:
rf.setPower(-yr);
lf.setPower(-yl);
rb.setPower(-yr);
lb.setPower(yl);
[rf - right forward
lf - left forward
rb - right back
lb - left back
yr - valoarea gamepad1.right_stick_y
yl - valoarea gamepad1.left_stick_y]
Tot programul:
package org.firstinspires.ftc.teamcode;
import com.qualcomm.robotcore.eventloop.opmode.OpMode;
import com.qualcomm.robotcore.hardware.DcMotorEx;
import com.qualcomm.robotcore.hardware.Servo;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import
org.firstinspires.ftc.robotcore.external.navigation.Position;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.DcMotorSimple;
import com.qualcomm.robotcore.hardware.Gamepad;
@TeleOp()
public class Misa extends OpMode {
int start=1;
double yl;
double yr;
private DcMotorEx MotorAdidas;
private DcMotor rf;
private DcMotor lf;
private DcMotor rb;
private DcMotor lb;
private DcMotor brat;
private Servo servo;
private double maxSpeed = 1;
int stare=7;
int pos=-220;
Gamepad gamepad = gamepad1;
double viteza=0;
@Override
MotorAdidas.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
MotorAdidas.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
MotorAdidas.setDirection(DcMotorSimple.Direction.FORWARD);
MotorAdidas.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRA
KE);
brat.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
brat.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
brat.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
servo.setDirection(Servo.Direction.REVERSE);
servo.setPosition(-1);
@Override
if (gamepad1.y) {
servo.setPosition(0.45);
}
if (gamepad1.b) {
stare = 0;
}
if (stare == 0) {
servo.setPosition(-0.3);
brat.setTargetPosition(900);
brat.setMode(DcMotor.RunMode.RUN_TO_POSITION);
brat.setPower(1);
while (brat.isBusy()) {
}
MotorAdidas.setTargetPosition(220);
MotorAdidas.setMode(DcMotor.RunMode.RUN_TO_POSITION);
MotorAdidas.setPower(-0.1);
while (MotorAdidas.isBusy()) {
stare = 1;
}
if (stare == 1) {
MotorAdidas.setTargetPosition(-150);
MotorAdidas.setMode(DcMotor.RunMode.RUN_TO_POSITION);
MotorAdidas.setPower(1);
while (MotorAdidas.isBusy()) {
stare = 2;
}
if (stare == 2) {
MotorAdidas.setTargetPosition(0);
MotorAdidas.setMode(DcMotor.RunMode.RUN_TO_POSITION);
MotorAdidas.setPower(0.2);
while (MotorAdidas.isBusy()) {
MotorAdidas.setPower(0);
brat.setTargetPosition(0);
brat.setMode(DcMotor.RunMode.RUN_TO_POSITION);
brat.setPower(0.5);
while (brat.isBusy());
brat.setPower(0);
stare = 3;
}
rf.setPower(-yr);
lf.setPower(-yl);
rb.setPower(-yr);
lb.setPower(yl);
telemetry.addData("Pozitie Encoder",
MotorAdidas.getCurrentPosition());
telemetry.update();
}
}
Pentru a înfrumuseța
programul, ne-am folosit de
inteligența artificială, adică de
ChatGPT [6].
Bibliografie
1. Critical Role of Science, Technology, Innovation Cannot Be Ignored, Economic and Social
Council President Tells Multi-Stakeholder Forum -
https://press.un.org/en/2018/ecosoc6925.doc.htm
3. GoBILDA - https://www.gobilda.com/
6. ChatGPT - https://openai.com/blog/chat
7. Imagine de dinaintea loviturii -
https://www.facebook.com/photo/?fbid=512928967711459&set=a.363418419329182