Robot-Specific Blocks#

Introduction#

The 123 Playspace Playground features blocks exclusive to the virtual 123 Robot, including blocks for the robot’s Drivetrain, LED, speaker, actions, Eye Sensor, and Gyro Sensor.

All standard VEXcode VR Blocks are available for use in the 123 Playspace Playground.

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

Drivetrain - Move and turn the robot.

  • Actions

    • drive - Drive the robot forward or in reverse continuously.

    • drive until - Drive the robot until a specified condition is met.

    • drive for - Drive the robot forward or in reverse for a specific distance.

    • turn - Turn the robot right or left continuously.

    • turn for - Turn the robot right or left for a specified amount of degrees.

    • turn to heading - Turn the robot to a specific heading.

    • stop driving - Stops all robot movement.

  • Settings

  • Values

    • drive is done? - Returns a Boolean indicating whether or not the robot is done driving.

    • drive heading - Returns the drivetrain’s heading in degrees.

Sound - Play built-in sounds through the 123 Robot’s speaker.

  • play sound - Plays one of the robot’s built-in sound effects.

LED - Control the 123 Robot’s center LED.

  • glow - Sets the color of the LED light.

Actions - Make the 123 Robot perform preset behaviors.

  • act - Acts out different emotions.

Sensing - Read values from the 123 Robot’s sensors.

Drivetrain#

Actions#

drive#

The drive block moves the robot in the specified direction. This is a non-waiting block, meaning it runs continuously until another Drivetrain block interrupts it or the project stops.

  drive [forward v]

Parameters

Description

direction

Drives the robot in one of the following directions:

  • forward
  • reverse

Example

  when started
  [Drive for 2 seconds.]
  drive [forward v]
  wait (2) seconds
  stop driving

drive until#

The drive until block is used to move the robot until a specified condition is met.

  drive [forward v] until [object v]

Parameters

Description

direction

Drives the robot in one of the following directions:

  • forward
  • reverse

condition

The condition that stops the robot:

  • object - The Eye Sensor detects an object.
  • crash - The robot crashes into another object.
  • line - The Line Detector detects a line underneath the robot.

Example

  when started
  [Reverse after a crash.]
  drive [forward v] until [crash v]
  drive [reverse v] for (1) [steps v]

drive for#

The drive for block is used to move the robot for a specified distance.

  drive [forward v] for (1) [steps v]

Parameters

Description

direction

Drives the robot in one of the following directions:

  • forward
  • reverse

distance

The distance, as an integer or decimal, that the robot will move, measured in units.

unit

The unit of measurement, which can be one of the following:

  • steps - One square on a 123 field.
  • mm - millimeters

Example

  when started
  [Drive back and forth.]
  drive [forward v] for (3) [steps v]
  drive [reverse v] for (3) [steps v]

turn#

The turn block turns the drivetrain continuously left or right. This is a non-waiting block, meaning the drivetrain will keep turning until another Drivetrain block runs or the project stops.

  turn [right v]

Parameters

Description

direction

The direction the robot will turn:

  • left
  • right

Example

  when started
  [Turn for 2 seconds.]
  turn [right v]
  wait (2) seconds
  stop driving

turn for#

The turn for block turns the drivetrain left or right for a specific number of degrees.

  turn [right v] for (90) degrees

Parameters

Description

direction

The direction the robot will turn:

  • left
  • right

angle

The angle, as an integer or decimal, at which the robot turns, ranging from -360 to 360 degrees.

Example

  when started
  [Turn left, then turn around to the right.]
  turn [left v] for (90) degrees
  turn [right v] for (180) degrees

turn to heading#

The turn to heading block turns the drivetrain to face a specific heading.

  turn to heading (90) degrees

Parameters

Description

heading

The absolute heading the drivetrain will turn to, from -360 to 360 degrees.

Example

  when started
  [Turn to face the cardinal directions.]
  turn to heading (90) degrees
  wait (2) seconds
  turn to heading (180) degrees
  wait (2) seconds
  turn to heading (270) degrees
  wait (2) seconds
  turn to heading (0) degrees
  wait (2) seconds

stop driving#

The stop driving block immediately stops all movement of the drivetrain.

  stop driving

Parameters

Description

This block has no parameters.

Example

  when started
  [Stop driving after 4 seconds.]
  drive [forward v]
  wait [4] seconds
  stop driving

Settings#

set drive timeout#

The set drive timeout block sets a time limit for how long a Drivetrain 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.

Note: The Drivetrain’s time limit is used to prevent Drivetrain blocks that do not reach their target position from stopping the execution of other blocks in the stack.

  set drive timeout to (1) seconds

Parameters

Description

time

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

Example

When started, limits drive time to 1 second and then turns 90 degrees.#
  when started
  [Turn right after driving for 1 second.]
  set drive timeout to (1) seconds
  drive [forward v] for (1000) [mm v]
  turn [right v] for (90) degrees

set drive heading#

The set drive heading block sets the robot’s current heading to a specified value.

  set drive heading to (0) degrees

Parameters

Description

heading

The heading value to assign, in degrees.

Example

  when started
  [Face the new 0 degree heading.]
  set drive heading to (90) degrees
  turn to heading (0) degrees

Values#

drive is done?#

The drive is done? block returns a Boolean indicating whether the drivetrain is not moving.

  • True - The drivetrain is not moving.

  • False - The drivetrain is moving.

Note: This block detects movement only when it is caused by the drive for, drive until, turn for, or turn to heading blocks.

    <drive is done?>

Parameters

Description

This block has no parameters.

Example

    when started
    [Glow blue after a crash.]
    drive [forward v] until [crash v]
    forever
      if <drive is done?> then
        glow [blue v]
      else
        glow [green v]

drive heading#

The drive heading block returns the drivetrain’s heading angle as a decimal number, in the range 0 to 359.99 degrees.

    (drive heading in degrees)

Parameters

Description

This block has no parameters.

Example

    when started
    [Display the heading after turning.]
    turn [right v] for (450) degrees
    print (drive heading in degrees) ▶

Sound#

play sound#

The play sound block plays one of the robot’s built-in sounds.

    play sound [honk v]

Parameters

Description

sound

One of the built-in sounds shown below.

Sound Name

Play Sound

honk

doorbell

crash

random

Plays a random sound from the 3 sounds above.

Example

when started, play sound act happy.#
  when started :: hat events
  [Play the doorbell sound.]
  play sound [doorbell v]

LED#

glow#

The glow block sets the color of the LED light.

    glow [green v]

Parameters

Description

color

The color to set the LED to:

  • green
  • blue
  • purple
  • off

Example

  when started :: hat events
  [Blink the LED light forever.]
  forever
  glow [green v]
  wait [0.5] seconds
  glow [off v]
  wait [0.5] seconds

Actions#

act#

The act block is used to act sad, happy, or crazy by having the 123 Robot perform a sequence of drive, turn, and sound behaviors.

  act [sad v]

Parameters

Description

emotion

The emotion to act out.

  • sad - Drive in reverse, turn left, then right, play an ‘uh oh’ sound, and then will drive forward to act sad.
  • happy - Turn right 360 degrees and play a laughing sound to act happy.
  • crazy - Turn left in a circle, and then turn right in a circle, all while playing a ‘loopy’ sound to act crazy.
  when started :: hat events
  [Act out a happy behavior.]
  act [happy v]

Sensing#

The virtual 123 Robot also has access to the standard Brain and Drivetrain Sensing blocks.

Gyro#

detected crash?#

The detected crash? block returns a Boolean indicating if the robot has come in contact with a wall or other object.

  • True - A crash was detected.

  • False - A crash was not detected.

  <detected crash?>

Parameters

Description

This block has no parameters.

Example

  when started
  [Back up after a crash.]
  drive [forward v]
  wait until <detected crash?>
  drive [reverse v] for (200) [mm v]

Eye#

eye found an object?#

The eye found an object? block returns a Boolean indicating whether or not the Eye Sensor detects an object within range.

  • True - The sensor has detected an object.

  • False - The sensor has not detected an object.

  <eye found an object?>

Parameters

Description

This block has no parameters.

Example

  when started
  [Stop driving after detecting an object.]
  set eye light [on v]
  drive [forward v]
  wait (0.1) seconds
  wait until <eye found an object?>
  stop driving

eye detects color?#

The eye detects color? block returns a Boolean indicating whether the Eye Sensor detects a specified color, based on the detected hue value.

  • True - The sensor detects the specified color.

  • False - The sensor does not detect the specified color.

  <eye detects [red v]?>

Parameters

Description

color

The color to detect:

  • red - A detected hue value between 340°-20°.
  • green - A detected hue value between 80°-145°.
  • blue - A detected hue value between 160°-250°.

Example

  when started
  [Stop driving after detecting a green object.]
  set eye light [on v]
  drive [forward v]
  wait (0.1) seconds
  wait until <eye detects [green v]?>
  stop driving

eye hue#

The eye hue block returns the hue value detected by the Eye Sensor in degrees from 0 to 359.

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

  (eye hue in degrees)

Parameters

Description

This block has no parameters.

Example

  when started
  [Display if an object is pink.]
  forever
  clear all rows
  if <[290] [math_less_than v] (eye hue in degrees) [math_less_than v] [350]> then
    print [Pink!] ▶
    wait (0.1) seconds
  else
    print [Not pink!] ▶
    wait (0.1) seconds

eye bright object?#

The eye bright object? block returns a Boolean indicating whether or not a detected object has a brightness value greater than 70%.

  • True - The detected object has a brightness value over 70%.

  • False - The detected object has a brightness value less than or equal to 70%.

  <eye bright object?>

Parameters

Description

This block has no parameters.

Example

  when started
  [Display whether a detected object is bright.]
  set eye light power to (100)%
  drive [forward v]
  wait until <eye found an object?>
  wait (0.1) seconds
  if <eye bright object?> then
    print [Bright object!] ▶
  else
    print [Object not bright.] ▶

eye brightness#

The eye brightness block returns the brightness detected by the Eye Sensor from 0% to 100%.

  (eye brightness in %)

Parameters

Description

This block has no parameters.

Example

  when started
  [Display whether a detected object is bright.]
  set eye light power to (100)%
  drive [forward v]
  wait until <eye found an object?>
  wait (0.1) seconds
  if <(eye brightness in %) [math_less_than v] [70]> then
    print [Object not bright.] ▶
  else
    print [Bright object!] ▶