モーターを回してみよう
それでは、実際にモーターを回してみましょう。
モーターを回すプログラム
モーターを回すプログラムをステップバイステップで解説していきます。
モーターの定義
まずは、モーターを定義します。
モーターを定義する場所は、以下の場所です。
public class Main extends OpMode {
//ここにモーターの定義を行う
@Override
public void init() {
} ...
}
モーターを定義するには、以下のプログラムを書きます。
// 変数の型 変数の名前
DcMotor motor;
今回使用するモーターはDcMotorなので、DcMotorの型の変数を定義しましたが、Servoなども同様に定義できます。
モーターの初期化
モータの初期化を行います。
初期化は、原則として、initメソッドの中で行います。
//定義した変数名 モーターの型 モーターの名前
motor = hardwareMap.get(DcMotor.class, "motor");
モーターの回転
モーターを回転させるプログラムは、loopメソッドの中に書きます。
モーターに指示を出すPowerは-1から1の範囲で指定します。
//モーターのパワーを0.1(1割)に設定する
motor.setPower(0.1);
書けたらプログラムを実行し、モーターが回転することを確認します。
今回完成したプログラムは以下です。
package org.firstinspires.ftc.teamcode;
import com.qualcomm.robotcore.eventloop.opmode.OpMode;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.hardware.DcMotor;
@TeleOp(name = "Main OpMode", group = "Main")
public class Main extends OpMode {
//ここにモーターの定義を行う
DcMotor motor;
/*
* ドライバーがINITを押した際に、1度だけ実行されます。
*/
@Override
public void init() {
motor = hardwareMap.get(DcMotor.class, "motor");
telemetry.addData("Status", "Initialized");
}
/*
* ドライバーがINITを押した後、PLAYを押す前に繰り返し実行するコード
*/
@Override
public void init_loop() {
}
/*
* プログラム開始時に一度だけ実行される
*/
@Override
public void start() {
telemetry.addData("Status", "Started");
}
/*
* Enableの間ずっと実行される
* while (opModeIsActive()) と同じ
*/
@Override
public void loop() {
motor.setPower(0.1);
}
/*
* コードが停止されるときに一度だけ実行される
*/
@Override
public void stop() {
telemetry.addData("Status", "Stopped");
}
}
No Comments