Skip to main content

Programming the Robot Arm - C++

The V5 Clawbot is ready to reach!

This exploration will give you the tools to be able to start creating some cool projects that use the V5 Clawbot's arm.

  • VEXcode V5 instructions that will be used in this exploration:
    • ArmMotor.spinFor(forward, 90,degrees);
    • ArmMotor.setPosition(0, degrees);
    • wait(2, seconds);
  • To find out more information about the instruction, select Help and then select the question mark icon next to a command to see more information.

    VEXcode V5 shows a Drive for command typed in the workspace and the Help open to the right for that command. The help defines Drive for as moves the Drivetrain for a given distance, and explains how to use the command in a project.

  • Make sure you have the hardware required, your engineering notebook, and VEXcode V5 downloaded and ready.
Materials Required:
Quantity Materials Needed
1

VEX V5 Classroom Starter Kit  (with up-to-date firmware)

1

VEXcode V5

1

Engineering Notebook

1

Clawbot and Advanced TrainingBot (Drivetrain 2-motor, No Gyro) example project

Step 1: Preparing for the Exploration

Before you begin the activity, do you have each of these items ready? Check each of the following:

  • Are the motors plugged into the correct ports?

  • Are the smart cables fully inserted into all of the motors?

  • Is the Brain turned on?

  • Is the battery charged?

Step 2:  Start a New Project

Before you begin your project, select the correct template project. The Clawbot and Advanced TrainingBot (Drivetrain 2-motor, No Gyro) example project contains the Clawbot's motors configuration. If the template is not used, your robot will not run the project correctly.

VEXcode V5 Toolbar with the File menu open and Open Examples highlighted in a red box. Open Examples is the fourth menu item beneath New Blocks Project, New Text Project, and Open.

Complete the following steps:

  • Open the File menu.
  • Select Open Examples.

Icon reading Clawbot and Advanced TrainingBot with a gray robot above the text.

  • Select and open the Clawbot and Advanced TrainingBot (Drivetrain 2-motor, No Gyro) example project.
  • Since we will be programming to control the arm, rename your project ArmControl.
  • Save your project.
  • Check to make sure the project name ArmControl is now in the window in the center of the toolbar.

The project name dialog box in the VEXcode V5 Toolbar reads Arm Control and shows that Slot 1 is selected.

Step 3:  Move the Arm Up

We are now going to begin by programming the arm to raise!

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  ArmMotor.setPosition(0, degrees);

}
  • Write the ArmMotor.setPosition(); instruction as shown above in the programming area to set the starting position for the arm.
  ArmMotor.setPosition(0, degrees);
  ArmMotor.spinFor(forward, 90, degrees);
  • Add the ArmMotor.spinFor(); instruction below the ArmMotor.setPosition() command as shown above to move the arm up. Be sure the Spin For is indented to match the Set Position command, and that all commands are within the curly braces.

VEXcode V5 Toolbar with the slot selection open beside the project name. Slot 1 is selected and highlighted with a red box and the project name reads Arm Control.

  • Click on the Slot icon. You can download your project to one of the available slots in the Robot Brain. Click on Slot 1.

Toolbar in VEXcode V5 with a red box around the green Brain icon. The Brain icon is to the right of the Controller icon and to the left of the Download button.

  • Connect the robot to your computer or tablet. The Brain icon in the toolbar turns green after a successful connection has been made.

Toolbar in VEXcode V5 with a red box around the download button. The icons shown from left to right are Controller, Brain, Download, Run, and Stop.

  • Click the Download button on the toolbar to download the Drive project to the Robot Brain.

V5 Brain Home Screen shows the Arm Control project in slot 1 in the bottom left corner. In the row above, the icons read Drive, Devices, Settings, and VEX.

  • Check that the ArmControl project has downloaded to the brain in the slot you chose.
  • Run the project on the Clawbot by making sure the project is selected and then press the Run button. Congratulations on creating your first Claw Arm project!

Step 4:  Try This: Program the Arm Down

Now that you have programmed the arm to move up, you will now program the arm to lower or move down.

Image of the VEXcode V5 Clawbot with its arm down

  • Add a second ArmMotor.spinFor(); instruction to your ArmControl project so that the arm raises to 90 degrees, waits 2 seconds, and then back down.
    • Hint: You will need to change the direction within the instruction.
  • Notice that the arm holds its position while the wait command is running. The motor draws power from the battery to hold the arm up against the force of gravity. That's because the default setting for having the motor stop is the hold setting. There are two other settings for stopping - brake and coast. You will learn about those in another lab.

Step 5:  Complete the Flight Traffic Controller Challenge

Image of the VEXcode V5 Clawbot with its arm raised, and red arrows pointing up and downIn the Flight Traffic Controller Challenge, the Clawbot must move its arm up and down once for 90 degrees, wait 3 seconds, move the arm up and down two times for 45 degrees, wait 5 seconds, and then move the arm up and down three times for 90 degrees.

Here is a list of the Clawbot's behaviors:

  • Move arm up and then down for 90 degrees.
  • Wait 3 seconds.
  • Move arm up and then down for 45 degrees.
  • Move arm up and then down for 45 degrees.
  • Wait 5 seconds.
  • Move arm up and then down for 90 degrees.
  • Move arm up and then down for 90 degrees.
  • Move arm up and then down for 90 degrees.