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)