Add waiting for initialization of IMU before reading heading. Improve method naming...
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / Robot.java
1 package org.usfirst.frc.team3501.robot;
2
3 import org.usfirst.frc.team3501.robot.subsystems.DriveTrain;
4 import org.usfirst.frc.team3501.robot.utils.BNO055;
5
6 import edu.wpi.first.wpilibj.I2C.Port;
7 import edu.wpi.first.wpilibj.IterativeRobot;
8 import edu.wpi.first.wpilibj.command.Scheduler;
9
10 public class Robot extends IterativeRobot {
11 private static DriveTrain driveTrain;
12 private static OI oi;
13 private static BNO055 imu;
14
15 @Override
16 public void robotInit() {
17 driveTrain = DriveTrain.getDriveTrain();
18 oi = OI.getOI();
19 // declares IMU object to the connected port
20 imu = BNO055.getInstance(BNO055.opmode_t.OPERATION_MODE_IMUPLUS,
21 BNO055.vector_type_t.VECTOR_EULER, Port.kOnboard, (byte) 0x28);
22
23 // check if the robot is at the reference angle
24 if (imu.getHeading() == 0) {
25 System.out.println("At zero reference");
26 }
27 }
28
29 public static DriveTrain getDriveTrain() {
30 return DriveTrain.getDriveTrain();
31 }
32
33 public static OI getOI() {
34 return OI.getOI();
35 }
36
37 @Override
38 public void autonomousInit() {
39
40 }
41
42 @Override
43 public void autonomousPeriodic() {
44 Scheduler.getInstance().run();
45
46 }
47
48 // @Override
49 @Override
50 public void teleopInit() {
51
52 }
53
54 @Override
55 public void teleopPeriodic() {
56 Scheduler.getInstance().run();
57 if (imu.isInitialized()) {
58 System.out.println(imu.getHeading());
59 }
60 // System.out.println("Heading: "
61 // + imu.getHeading() + " Init: "
62 // + imu.isInitialized() + " Calib: " + imu.isCalibrated());
63 }
64 }