Moving the Arm#

To use the arm on your VEX IQ Clawbot, first you need to configure the Clawbot in VEXcode. The easiest way to do this is to open a Clawbot template.

Configure the Clawbot#

Select a Build#

Go to the Devices tab, then select Select a build.

Screenshot of the Devices tab, showing the Select a build button.

Select the Clawbot Build#

Scroll down and select the Clawbot build.

Screenshot of the Select a build screen, with the Clawbot build highlighted among other robot builds.

Choose the Clawbot Variant#

The build used for this tutorial is the Drivetrain, Claw + Arm Motors version of the Clawbot.

Screenshot of the Choose a variant for Clawbot screen, with the Drivetrain, Claw + Arm Motors variant highlighted.

Confirm the Configuration#

Select Done to add this build to your project.

Screenshot of the Current Configuration screen for the Clawbot, Drivetrain, Claw + Arm Motors build, showing the Drivetrain, ClawMotor, and ArmMotor devices, with the Done button highlighted.

Code the Arm#

Open the Motion Category#

Select the Motion category in the toolbox to find the spin blocks.

Screenshot of the toolbox with the Motion category open, showing the spin ClawMotor blocks.

Attach the Spin Block#

Attach the spin motor for block to the when started block.

The spin motor for block, spinning the ClawMotor by default.#
    spin [ClawMotor v] [close v] for (90) [degrees v] ▶

Select the ArmMotor#

By default, the block’s motor parameter is set to ClawMotor. Select the dropdown and choose ArmMotor instead, so the block controls the arm.

The spin motor for block, now spinning the ArmMotor.#
    spin [ArmMotor v] [up v] for (90) [degrees v] ▶

Move the Arm#

Change the direction parameter to up or down, and change the distance parameter to how far you want the arm to move. This will move the arm that many degrees from its current position.

When started, raises the arm 90 degrees from its current position.#
    when started
        spin [ArmMotor v] [up v] for (90) [degrees v] ▶

You can also change the units parameter to turns instead of degrees. One turn is equal to 360 degrees.

The spin motor for block, using turns instead of degrees.#
    spin [ArmMotor v] [up v] for (1) [turns v] ▶

Using Motor Timeouts#

One tip is to use the set motor timeout block before using the spin motor for block.

The set motor timeout block.#
    set [ArmMotor v] timeout to (1) seconds

If you accidentally set the spin motor for block to too great of a distance, the set motor timeout block will force it to end, and the project to move on, even if the motor hasn’t reached the position it wanted to.

When started, sets a 1 second timeout before raising the arm, so the project moves on even if the arm doesn’t reach its target position.#
    when started
        set [ArmMotor v] timeout to (1) seconds
        spin [ArmMotor v] [up v] for (600) [degrees v] ▶