Robot-Specific Blocks#

Introduction#

The VIQRC 22-23 Slapshot Playground features blocks exclusive to this Playground, including two motor options and the Optical Sensor.

All standard VEXcode VR Blocks are available for use in the VIQRC 22-23 Slapshot Playground.

Below is a list of all available Playground-specific Blocks:

Motion - Move and track the robot’s motors.

Sensing - Utilize the robot’s various sensors.

The examples on this page use the default Playground start position.

Motion#

Actions#

spin motor#

The spin motor block spins a selected motor in a specified direction using the current motor velocity.

spin [IntakeMotor v] [intake v]

Parameters

Description

motor

The motor to spin:

  • IntakeMotor
  • ArmMotor

direction

The direction to spin:

  • IntakeMotor
    • intake
    • outtake
  • ArmMotor
    • up
    • down

Example

当开始
[Spin the Intake Motor before stopping.]
spin [IntakeMotor v] [intake v]
等待 (1) 秒
stop [IntakeMotor v]

spin motor for#

The spin motor for block spins a selected motor for a specific amount of rotation using the current motor velocity, measured in degrees or turns.

spin [IntakeMotor v] [intake v] for [90] [degrees v] ▶

Parameters

Description

motor

The motor to spin:

  • IntakeMotor
  • ArmMotor

direction

The direction to spin:

  • IntakeMotor
    • intake
    • outtake
  • ArmMotor
    • up
    • down

distance

The rotation amount, as an integer or decimal.

unit

The unit of measurement representing the distance:

  • degrees
  • turns

expanding arrow

By default, this is a waiting block, so the motor will finish moving before running the next block. Expand the block to say and don’t wait to make it non-waiting.

Example

当开始
[Collect the preloaded Disc.]
spin [IntakeMotor v] [intake v] for [180] [degrees v] ▶

spin motor to position#

The spin motor to position block spins a motor to a specific absolute position using the current motor velocity and motor position.

spin [ArmMotor v] to position [90] [degrees v] ▶

Parameters

Description

motor

The motor to spin:

  • IntakeMotor
  • ArmMotor

position

The target position to spin the motor to.

unit

The unit of measurement:

  • degrees
  • turns

expanding arrow

By default, this is a waiting block, so the motor will finish moving before running the next block. Expand the block to say and don’t wait to make it non-waiting.

Example

当开始
[Raise the Arm to reach over the barrier.]
spin [ArmMotor v] to position [600] [degrees v] ▶

stop motor#

The stop motor block immediately stops the selected motor.

stop [IntakeMotor v]

Parameters

Description

motor

The motor to stop:

  • IntakeMotor
  • ArmMotor

Example

当开始
[Raise the Arm for 1 second, then stop.]
[ArmMotor v] [向上 v] 转
等待 (1) 秒
[ArmMotor v] 停止

Settings#

set motor velocity#

The set motor velocity block sets the default spinning speed of a motor as a percentage for all subsequent Motor blocks in the project.

set [IntakeMotor v] velocity to [50] [% v]

Parameters

Description

motor

The motor to set the velocity of:

  • IntakeMotor
  • ArmMotor

velocity

Sets the default movement velocity from 0 to 100 as a percent.

unit

The unit that represents the velocity:

  • %

Example

当开始
[Spin the Intake Motor at 75 percent speed.]
set [IntakeMotor v] velocity to [75] [% v]
spin [IntakeMotor v] [intake v] for [180] [degrees v] ▶

set motor timeout#

The set motor timeout block sets a time limit for how long a Motor block will wait to reach its target. If the robot cannot complete the movement within the set time, it will stop automatically and continue with the next block.

设定 [ArmMotor v] 超时为 [1] 秒

Parameters

Description

motor

The motor to set the timeout of:

  • IntakeMotor
  • ArmMotor

time

The maximum number of seconds a Motor block will run before stopping and moving to the next block.

Example

当开始
[Limit how long the Arm Motor will wait to move.]
set [ArmMotor v] timeout to [2] seconds
spin [ArmMotor v] [up v] for [3] [turns v] ▶

Position#

motor position#

The motor position block returns the total distance the selected motor has rotated.

([IntakeMotor v] position in [degrees v])

Parameters

Description

motor

The motor to return the position of:

  • IntakeMotor
  • ArmMotor

unit

The unit of measurement:

  • degrees
  • turns

set motor position#

The set motor position block sets a specific position value to a motor, which updates the encoder reading.

set [IntakeMotor v] position to [0] [degrees v]

Parameters

Description

motor

The motor to set the position of:

  • IntakeMotor
  • ArmMotor

position

The encoder position value to set.

unit

The unit of measurement:

  • degrees
  • turns

Example

当开始
[Set the Intake Motor position, then spin back to 0 degrees.]
set [IntakeMotor v] position to [180] [degrees v]
spin [IntakeMotor v] to position [0] [degrees v] ▶

Values#

motor is done#

The motor is done? block returns a Boolean indicating whether the motor is not spinning.

  • True - The motor is not spinning.

  • False - The motor is spinning.

<[IntakeMotor v] is done?>

Parameters

Description

motor

The motor to check if it is done spinning:

  • IntakeMotor
  • ArmMotor

motor is spinning?#

The motor is spinning? block returns a Boolean indicating whether the motor is spinning.

  • True - The motor is spinning.

  • False - The motor is not spinning.

<[IntakeMotor v] is spinning?>

Parameters

Description

motor

The motor to check if it is currently spinning:

  • IntakeMotor
  • ArmMotor

motor velocity#

The motor velocity block returns the current rotational speed of the motor in a range from -100% to 100%.

([IntakeMotor v] velocity in [% v] :: custom-motion)

Parameters

Description

motor

The motor to return the velocity of:

  • IntakeMotor
  • ArmMotor

unit

The unit that represents the velocity:

  • %

Sensing#

Optical#

Optical found an object?#

The Optical found an object? block returns a Boolean indicating whether the Optical Sensor has detected an object.

  • True - The Optical Sensor has detected an object.

  • False - The Optical Sensor has not detected an object.

<[FrontOptical v] found an object?>

Parameters

Description

This block has no parameters.

Optical detects color#

The Optical detects color? block returns a Boolean indicating whether the Optical Sensor has detected a specific color.

  • True - The Optical Sensor has detected the specified color.

  • False - The Optical Sensor has not detected the specified color.

<[FrontOptical v] detects [red v]?>

Parameters

Description

color

Which color to check for:

  • red
  • green
  • blue
  • white
  • yellow
  • orange
  • purple
  • red violet
  • violet
  • blue violet
  • blue green
  • yellow green
  • yellow orange
  • red orange

Optical brightness#

The Optical brightness block returns the amount of light detected by the Optical Sensor in a range from 0% to 100%.

([FrontOptical v] brightness in %)

Parameters

Description

This block has no parameters.

Optical hue#

The Optical hue block returns the hue value of the color detected by the Optical Sensor.

Hue values range from 0 to 359 degrees, corresponding to positions on the color wheel shown below.

A circular color wheel displaying a full spectrum of hues labeled with degree values around the perimeter, increasing in 30-degree increments from 0 degrees at the top to 360 degrees.

([FrontOptical v] hue in degrees)

Parameters

Description

This block has no parameters.

when Optical#

The when Optical block runs its stack when the Optical Sensor detects or loses an object. You can have multiple when Optical blocks to run multiple stacks of blocks at once.

when [FrontOptical v] [detects v] an object :: hat events

Parameters

Description

action

Which action triggers the hat block:

  • detects
  • loses