相机#

介绍#

The VEX AIR Drone includes two Vision Sensors that serve as its onboard cameras—one on the front and one on the bottom. These can capture both images and video during flight. In VEXcode AIR, the word “camera” always refers to one of these Vision Sensors. For example, in a command like drone.camera.start_recording(FORWARD_CAMERA), camera refers to the Vision Sensors, and FORWARD_CAMERA selects the front-facing one.

要从 VEX AIR 无人机控制器传输视频记录和图像,请将控制器连接到计算机。它将显示为大容量存储设备(类似于 USB 驱动器),允许您直接复制文件。结束项目后,请等待大约一分钟,让控制器完成从无人机下载所有图像或记录,然后再尝试复制它们。

以下是所有可用方法的列表:

行动

修改器

吸气剂

行动#

start_recording#

start_recording starts a recording with the specified Vision Sensor.

有关查看和检索录音的信息,请[转到此处](…/vexcode_tutorials/capturing-images-and-videos.md#viewing-files)。

用法:

drone.camera.start_recording(camera)

参数

描述

camera

The Vision Sensor to record with:

  • DOWNWARD_CAMERA
  • FORWARD_CAMERA
# Press button 7 to end recording
def end_recording():
    drone.camera.stop_recording(FORWARD_CAMERA)
    drone.land()

controller.button7.pressed(end_recording)

# Record a video as you fly around
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
drone.camera.start_recording(FORWARD_CAMERA)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

stop_recording#

stop_recording stops the recording of the specified Vision Sensor.

有关查看和检索录音的信息,请[转到此处](…/vexcode_tutorials/capturing-images-and-videos.md#viewing-files)。

用法:

drone.camera.stop_recording(camera)

参数

描述

camera

The Vision Sensor to stop recording with:

  • DOWNWARD_CAMERA
  • FORWARD_CAMERA
# Press button 7 to end recording
def end_recording():
    drone.camera.stop_recording(FORWARD_CAMERA)
    drone.land()

controller.button7.pressed(end_recording)

# Record a video as you fly around
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
drone.camera.start_recording(FORWARD_CAMERA)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

capture_image#

capture_image takes a picture with the specified Vision Sensor.

有关查看和检索捕获图像的信息,转至此处

用法:

drone.camera.capture_image(camera)

参数

描述

camera

The Vision Sensor to take a picture with:

  • DOWNWARD_CAMERA
  • FORWARD_CAMERA
# Press button 7 to take pictures
def take_picture():
    drone.camera.capture_image(FORWARD_CAMERA)

controller.button7.pressed(take_picture)

# Take pictures while you control the drone
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

修改器#

show_camera#

show_camera sets the current screen mode to the specified Vision Sensor feed.

用法:

controller.screen.show_camera(camera)

参数

描述

camera

The Vision Sensor feed to display:

  • DOWNWARD_CAMERA
  • FORWARD_CAMERA
# Switch camera feeds after 3 seconds
controller.screen.show_camera(DOWNWARD_CAMERA)
wait(3, SECONDS)
controller.screen.show_camera(FORWARD_CAMERA)

hide_camera#

hide_camera hides the specified Vision Sensor’s feed.

用法:

controller.screen.hide_camera()

参数

描述

该方法没有参数。

# Hide camera feed after 3 seconds
controller.screen.show_camera(FORWARD_CAMERA)
wait(3, SECONDS)
controller.screen.hide_camera()

set_overlay_reticle#

set_overlay_reticle enables or disables the overlay reticle.

Usage:
controller.screen.set_overlay_reticle(state)

参数

描述

state

The state of the overlay reticle:

  • True – Enables the overlay reticle.
  • False – Disables the overlay reticle.
# Hide the reticle when not aligning to a landing area
controller.screen.show_camera(DOWNWARD_CAMERA)
drone.take_off(climb_to=500)
controller.screen.set_overlay_reticle(False)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

set_overlay_telemetry#

set_overlay_telemetry enables or disables the visibility of the drone’s telemetry data on the controller’s screen.

Usage:
controller.screen.set_overlay_telemetry(state)

参数

描述

state

The state of the telemetry data:

  • True – Enables viewing telemetry data on the screen.
  • False – Disables viewing telemetry data on the screen.
# Clear the camera video for better visibility
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
controller.screen.set_overlay_telemetry(False)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

吸气剂#

is_recording#

is_recording returns a Boolean indicating whether a specified Vision Sensor is currently recording.

  • True – The specified Vision Sensor is recording.

  • False – The specified Vision Sensor is not recording.

用法:

drone.camera.is_recording(camera)

参数

描述

camera

The Vision Sensor to check recording status of:

  • DOWNWARD_CAMERA
  • FORWARD_CAMERA
# Use button 7 to start and stop recording
def toggle_recording():
    if drone.camera.is_recording(FORWARD_CAMERA):
        drone.camera.stop_recording(FORWARD_CAMERA)
    else:
        drone.camera.start_recording(FORWARD_CAMERA)

controller.button7.pressed(toggle_recording)

# Make video recordings while you control the drone
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

get_recording_time#

get_recording_time returns the amount of time a specific Vision Sensor has been recording for as a float in seconds.

用法:

drone.camera.get_recording_time(camera)

参数

描述

camera

The Vision Sensor to check recording time of:

  • DOWNWARD_CAMERA
  • FORWARD_CAMERA
# Record a video for 10 seconds
controller.screen.show_camera(FORWARD_CAMERA)
drone.camera.start_recording(FORWARD_CAMERA)
drone.take_off(climb_to=500)
while not (drone.camera.get_recording_time(FORWARD_CAMERA)) >= 10:
    wait(5, MSEC)
drone.camera.stop_recording(FORWARD_CAMERA)