Skip to main content

モーターを回してみよう

それでは、実際にモーターを回してみましょう。

モーターを回すプログラム

モーターを回すプログラムをステップバイステップで解説していきます。

モーターの定義

まずは、モーターを定義します。
モーターを定義する場所は、以下の場所です。

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");
    }
}