Program Your Robot

學習目標

1.建立專案(WPI: Create a new project)

2.指定專案存放資料夾

3.開啟Robot.java,引入類別。

import edu.wpi.first.wpilibj.Joystick; //for driving 搖桿操控

import edu.wpi.first.wpilibj.TimedRobot; //base class 基類

import edu.wpi.first.wpilibj.Timer; //use for autonomous 自主模式

import edu.wpi.first.wpilibj.drive.DifferentialDrive; //connecting the Joystick control to the motors 連接搖桿與馬達操控

import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; //for controlling motors 馬達控制


4.定義自訂變數

Robot.java -> public class Robot extends TimedRobot{

private final PWMSparkMax m_leftDrive = new PWMSparkMax(0);

private final PWMSparkMax m_rightDrive = new PWMSparkMax(1);

private final DifferentialDrive m_robotDrive = new DifferentialDrive(m_leftDrive, m_rightDrive);

private final Joystick m_stick = new Joystick(0);

private final Timer m_timer = new Timer();

...

}

※C++每隔0.1秒會重置馬達為自主模式,Java會嗎?


5.撰寫機器人初始化的方法,可以在此方法指定一些指令或動作。

public void robotInit() {}

※只會在機器人啟動時執行一次。


6.撰寫機器人自主模式的方法

autonomousInit(): 每次進入自主模式時會執行一次,會重置timer。

autonomousPeriodic(): 自主期間執行的程式碼,timedRobot固度時間長度為20ms,


7.搖桿操控模式

@Override

public void teleopPeriodic() {

/** 取得搖桿Y軸、X軸位置,控制機器人前進/後退、旋轉 */

m_robotDrive.arcadeDrive(m_stick.getY(), m_stick.getX());

}

8.撰寫測試模式

※留給測試數據時使用。


9.發布專案程式到機器人內

build.gradle(右鍵、Build Robot Code、Deploy Robot Code)

Document: https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-4/creating-benchtop-test-program-cpp-java.html