机器人专用 Python#
介绍#
VIQRC 25-26 混合搭配游乐场采用专为此游乐场设计的构造方法,包括两个电机选项、光学传感器和触摸 LED。
所有标准 VEXcode VR 方法均可用于 VIQRC 25-26 Mix & Match 游乐场。
以下是所有可用的 Playground 特定方法的列表:
运动——移动并跟踪机器人的马达。
行动
spin– Spins the selected motor or motor group indefinitely.spin_for– Spins a motor or group for a specific distance in degrees or turns.spin_to_position– Spins a motor or motor group to a set position.stop– Stops a specific motor or motor group from spinning.
修改器
set_position– Sets the encoder value of a motor or motor group.set_velocity– Sets the speed of a motor or motor group as a percentage.set_timeout– Limits how long a motor block waits before giving up if movement is blocked.
吸气剂
is_done– Returns a Boolean indicating whether the motor is no longer spinning.is_spinning– Returns a Boolean indicating whether the motor is currently spinning.position– Returns the motor’s current rotational position in degrees or turns.velocity– Returns the motor’s current velocity in % or rpm.
感知——利用机器人的各种传感器。
触摸LED
set_color– Sets the TouchLED to a selected color.
光学的
is_near_object– Returns whether a detected object is near the Optical Sensor.color– Returns the color detected from the Optical Sensor.brightness– Returns the brightness percentage detected by the sensor.hue– Returns the hue value of the detected color.object_detected– Registers a callback function for when the Optical Sensor detects an object.object_lost– Registers a callback function for when the Optical Sensor loses an object.
运动#
Actions#
旋转#
spin spins a motor indefinitely.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
The direction for the motor to spin:
|
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
spin_for#
spin_for spins a motor for a given amount of degrees or turns.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
The direction for the motor to spin:
|
|
电机旋转的距离,为整数。 |
|
The unit that represents the distance to rotate:
|
|
Optional.
|
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
旋转到位置#
spin_to spins a motor to a given position.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
电机旋转的特定角度或圈数。 |
|
The unit that represents the angle to rotate to:
|
|
Optional.
|
def main():
# Place a Pin atop another Pin
lift_motor.spin_to_position(-2, TURNS)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
停止#
stop stops a motor from spinning.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
该方法没有参数。 |
def main():
# Place a Pin atop another Pin
lift_motor.spin(REVERSE)
wait(2, SECONDS)
lift_motor.stop()
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
Mutators#
设置位置#
set_position sets a motor’s encoder position to the given position value.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
要设置的电机编码器的具体整数。 |
|
The unit that represents the angle to rotate to:
|
def main():
# Place a Pin atop another Pin
lift_motor.set_position(100, DEGREES)
lift_motor.spin_to_position(-500, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
设置速度#
set_velocity sets the speed of a motor.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
IQ 电机旋转的速度,范围从 0 到 100。 |
|
The unit that represents the new velocity:
|
def main():
# Place a Pin atop another Pin
lift_motor.set_velocity(100, PERCENT)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
设置超时#
set_timeout sets a time limit for a motor’s movement commands. This prevents motion commands that do not reach their intended position from preventing subsequent commands from running.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
电机停止前等待的时间。 |
|
The unit to represent the timeout:
|
def main():
# Place a Pin atop another Pin
lift_motor.set_timeout(2, SECONDS)
lift_motor.spin_for(REVERSE, 5, TURNS)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
Getters#
完成#
is_done returns a Boolean indicating whether the specified motor is not spinning.
True– The specified motor is not spinning.False– The specified motor is spinning.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
该方法没有参数。 |
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES, wait=False)
wait(0.1, SECONDS)
while not lift_motor.is_done():
touchled.set_color(RED)
wait(0.5, SECONDS)
touchled.set_color(NONE)
wait(0.5, SECONDS)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
正在旋转#
is_spinning returns a Boolean indicating whether the specified motor is spinning.
True– The specified motor is spinning.False– The specified motor is not spinning.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
该方法没有参数。 |
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES, wait=False)
wait(0.1, SECONDS)
while lift_motor.is_spinning():
touchled.set_color(RED)
wait(0.5, SECONDS)
touchled.set_color(NONE)
wait(0.5, SECONDS)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
位置#
position returns the total distance the specified motor has rotated.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
The units that represent the motor’s position:
|
def main():
# Place a Pin atop another Pin
lift_motor.spin(REVERSE)
while not -600 > claw_motor.position(DEGREES):
wait(2, MSEC)
lift_motor.stop()
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
速度#
velocity returns the current rotational speed of the motor.
用法:
两个可用电机对象之一可与此方法一起使用,如下所示:
发动机 |
命令 |
|---|---|
|
|
|
|
参数 |
描述 |
|---|---|
|
The unit that represent the motor’s position:
|
def main():
# Place a Pin atop another Pin
lift_motor.set_velocity(100, PERCENT)
lift_motor.spin_for(REVERSE, 600, DEGREES, wait=False)
wait(0.5, SECONDS)
brain.screen.print(lift_motor.velocity(PERCENT))
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
传感#
Touch LED#
设置颜色#
set_color sets the color of the Touch LED.
Usage:
touchled.set_color(color)
参数 |
描述 |
|---|---|
|
The color to set the Touch LED to:
|
def main():
# Place a Pin atop another Pin
touchled.set_color(RED)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
touchled.set_color(NONE)
Optical#
靠近物体#
is_near_object returns a Boolean indicating whether or not the Optical Sensor detects an object close to the sensor.
True– The object is close to the Optical Sensor.False– The object is not close to the Optical Sensor.
Usage:
optical.is_near_object()
参数 |
描述 |
|---|---|
该方法没有参数。 |
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while not not optical.is_near_object():
wait(2, MSEC)
lift_motor.spin_to_position(0, DEGREES)
颜色#
color returns the color detected by the Optical Sensor:
返回的颜色: |
|---|
|
Usage:
optical.color()
参数 |
描述 |
|---|---|
该方法没有参数。 |
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while not optical.color() == RED:
wait(5, MSEC)
lift_motor.spin_to_position(0, DEGREES)
亮度#
brightness returns the brightness value detected by the Optical Sensor as a percent from 0% to 100%.
Usage:
optical.brightness()
参数 |
描述 |
|---|---|
该方法没有参数。 |
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while not 30 > optical.brightness():
wait(5, MSEC)
lift_motor.spin_to_position(0, DEGREES)
色调#
hue returns the hue detected by the Optical Sensor.
色调值范围从 0 到 359 度,对应于下面显示的色轮上的位置。

Usage:
optical.hue()
参数 |
描述 |
|---|---|
该方法没有参数。 |
def main():
# Place a Pin atop another Pin
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while not optical.hue() > 0:
wait(5, MSEC)
lift_motor.spin_to_position(0, DEGREES)
检测到物体#
object_detected registers a callback function for when the Optical Sensor detects an object.
Usage:
optical.object_detected(callback, arg)
参数 |
描述 |
|---|---|
|
当检测到物体时调用的函数。 |
|
可选。用于将参数传递给回调函数的元组。 |
def pin_in_open_claw():
# Change color when claw isn't holding anything
touchled.set_color(RED)
def main():
# Place a Pin atop another Pin
optical.object_detected(pin_in_open_claw)
touchled.set_color(GREEN)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
object_lost#
object_lost registers a callback function for when the Optical Sensor loses an object.
Usage:
optical.object_lost(callback, arg)
参数 |
描述 |
|---|---|
|
当对象丢失时调用的函数。 |
|
可选。用于将参数传递给回调函数的元组。 |
def lower_lift():
# Lower lift when Pin not in claw
lift_motor.spin_to_position(0, DEGREES)
def main():
# Place a Pin atop another Pin
optical.object_lost(lower_lift)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)