コード例 #1
0
  // Fade the robot LED between three colors in a loop
  private void runColorMacro() {
    if (mRobot == null) return;

    setRobotToDefaultState();

    MacroObject macro = new MacroObject();

    // Loop as many times as the loop seekbar value
    macro.addCommand(new LoopStart(mLoopsSeekBar.getProgress()));

    // Fade to cyan. Duration of the fade is set to the value of the delay seekbar
    macro.addCommand(new Fade(0, 255, 255, mDelaySeekBar.getProgress()));
    // Set a delay so that the next command isn't processed until the previous one is done
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));

    // Fade to magenta. Duration of the fade is set to the value of the delay seekbar
    macro.addCommand(new Fade(255, 0, 255, mDelaySeekBar.getProgress()));
    // Set a delay so that the next command isn't processed until the previous one is done
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));

    // Fade to yellow. Duration of the fade is set to the value of the delay seekbar
    macro.addCommand(new Fade(255, 255, 0, mDelaySeekBar.getProgress()));
    // Set a delay so that the next command isn't processed until the previous one is done
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));

    // End the current loop and go back to LoopStart if more iterations expected
    macro.addCommand(new LoopEnd());

    // Send the macro to the robot and play
    macro.setMode(MacroObject.MacroObjectMode.Normal);
    mRobot.playMacro(macro);
  }
コード例 #2
0
  // Move the robot in a pattern based on the speed and loop seekbar values
  private void runShapeMacro() {
    // If the looping value is set to null or the robot isn't connected, return
    if (mRobot == null || mLoopsSeekBar.getProgress() == 0) return;

    setRobotToDefaultState();

    MacroObject macro = new MacroObject();
    float speed = mSpeedSeekBar.getProgress() * 0.01f;

    // Set the robot LED color to blue
    macro.addCommand(new RGB(0, 0, 255, 255));

    // Loop through driving in various directions
    for (int i = 0; i < mLoopsSeekBar.getProgress(); i++) {
      macro.addCommand(new Roll(speed, i * (360 / mLoopsSeekBar.getProgress()), 0));
      macro.addCommand(new Delay(mDelaySeekBar.getProgress()));
      macro.addCommand(new Roll(0.0f, i * (260 / mLoopsSeekBar.getProgress()), 255));
    }

    // Stop the robot
    macro.addCommand(new Roll(0.0f, 0, 255));

    // Send the macro to the robot and play
    macro.setMode(MacroObject.MacroObjectMode.Normal);
    macro.setRobot(mRobot.getRobot());
    macro.playMacro();
  }
コード例 #3
0
  // Spin the robot in circles
  private void runSpinMacro() {
    setRobotToDefaultState();
    float speed = mSpeedSeekBar.getProgress() * 0.01f;

    MacroObject macro = new MacroObject();

    // Set the back LED to full brightness
    macro.addCommand(new BackLED(255, 0));

    // Loop through rotating the robot
    macro.addCommand(new LoopStart(mLoopsSeekBar.getProgress()));
    macro.addCommand(new RotateOverTime(360, (int) (500 * speed)));
    macro.addCommand(new Delay((int) (500 * speed)));
    macro.addCommand(new LoopEnd());

    // Dim the back LED
    macro.addCommand(new BackLED(0, 0));

    // Send the macro to the robot and play
    macro.setMode(MacroObject.MacroObjectMode.Normal);
    macro.setRobot(mRobot.getRobot());
    macro.playMacro();
  }
コード例 #4
0
  // Flip the robot forward and backwards while changing the LED color
  private void runVibrateMacro() {
    if (mRobot == null) return;

    setRobotToDefaultState();

    MacroObject macro = new MacroObject();

    // Stabilization must be turned off before you can issue motor commands
    macro.addCommand(new Stabilization(false, 0));

    macro.addCommand(new LoopStart(mLoopsSeekBar.getProgress()));
    // Change the LED to red
    macro.addCommand(new RGB(255, 0, 0, 0));
    // Run the robot's motors backwards
    macro.addCommand(
        new RawMotor(RawMotor.DriveMode.REVERSE, 255, RawMotor.DriveMode.REVERSE, 255, 100));
    macro.addCommand(new Delay(100));
    // Change the LED to green
    macro.addCommand(new RGB(0, 255, 0, 0));
    // Run the robot's motors forward
    macro.addCommand(
        new RawMotor(RawMotor.DriveMode.FORWARD, 255, RawMotor.DriveMode.FORWARD, 255, 100));
    macro.addCommand(new Delay(100));
    macro.addCommand(new LoopEnd());

    // Turn stabilization back on
    macro.addCommand(new Stabilization(true, 0));

    // Send the macro to the robot and play
    macro.setMode(MacroObject.MacroObjectMode.Normal);
    macro.setRobot(mRobot.getRobot());
    macro.playMacro();
  }
コード例 #5
0
  // Drive the robot in a figure 8 formation
  private void runFigureEightMacro() {
    if (mRobot == null) return;

    setRobotToDefaultState();

    float speed = mSpeedSeekBar.getProgress() * 0.01f;

    MacroObject macro = new MacroObject();

    macro.addCommand(new Roll(speed, 0, 1000));
    macro.addCommand(new LoopStart(mLoopsSeekBar.getProgress()));
    // Pivot
    macro.addCommand(new RotateOverTime(360, mDelaySeekBar.getProgress()));
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));
    // Pivot
    macro.addCommand(new RotateOverTime(-360, mDelaySeekBar.getProgress()));
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));
    macro.addCommand(new LoopEnd());
    // Stop
    macro.addCommand(new Roll(0.0f, 0, 255));

    // Send the macro to the robot and play
    macro.setMode(MacroObject.MacroObjectMode.Normal);
    macro.setRobot(mRobot.getRobot());
    macro.playMacro();
  }
コード例 #6
0
  // Move the robot in the shape of a square with each edge being a new color
  private void runSquareMacro() {
    if (mRobot == null) return;

    setRobotToDefaultState();
    float speed = mSpeedSeekBar.getProgress() * 0.01f;

    MacroObject macro = new MacroObject();

    // Set the robot LED to green
    macro.addCommand(new RGB(0, 255, 0, 255));
    // Move the robot forward
    macro.addCommand(new Roll(speed, 0, 0));
    // Wait until the robot should stop moving
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));
    // Stop
    macro.addCommand(new Roll(0.0f, 0, 255));

    // Set the robot LED to blue
    macro.addCommand(new RGB(0, 0, 255, 255));
    // Move the robot to the right
    macro.addCommand(new Roll(speed, 90, 0));
    // Wait until the robot should stop moving
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));
    // Stop
    macro.addCommand(new Roll(0.0f, 90, 255));

    // Set the robot LED to yellow
    macro.addCommand(new RGB(255, 255, 0, 255));
    // Move the robot backwards
    macro.addCommand(new Roll(speed, 180, 0));
    // Wait until the robot should stop moving
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));
    // Stop
    macro.addCommand(new Roll(0.0f, 180, 255));

    // Set the robot LED to red
    macro.addCommand(new RGB(255, 0, 0, 255));
    // Move the robot to the left
    macro.addCommand(new Roll(255, 270, 0));
    // Wait until the robot should stop moving
    macro.addCommand(new Delay(mDelaySeekBar.getProgress()));
    // Stop
    macro.addCommand(new Roll(0.0f, 270, 255));

    // Send the macro to the robot and play
    macro.setMode(MacroObject.MacroObjectMode.Normal);
    macro.setRobot(mRobot.getRobot());
    macro.playMacro();
  }