Камера#

Введение#

Дрон VEX AIR оснащен двумя датчиками изображения, которые служат бортовыми камерами — одна спереди, другая снизу. Они могут снимать как изображения, так и видео во время полета. В VEXcode AIR слово «камера» всегда относится к одному из этих датчиков изображения. Например, в команде типа drone.camera.start_recording(FORWARD_CAMERA), camera относится к датчикам изображения, а FORWARD_CAMERA выбирает передний датчик.

Для передачи видеозаписей и изображений с контроллера дрона VEX AIR подключите контроллер к компьютеру. Он отобразится как устройство хранения данных (аналогично USB-накопителю), что позволит вам напрямую копировать файлы. После завершения проекта подождите около минуты, пока контроллер завершит загрузку изображений или видеозаписей с дрона, прежде чем пытаться их скопировать.

Ниже приведён список всех доступных методов:

Действия

  • start_recording – Записывает видео с датчика зрения.

  • stop_recording – Останавливает запись с датчика зрения.

  • capture_image – Захватывает изображение с датчика зрения.

Мутаторы

  • show_camera – Отображает выбранный датчик зрения на контроллере дрона VEX AIR.

  • hide_camera – Скрывает изображение с датчика зрения на контроллере.

  • set_overlay_reticle – Отображает или скрывает наложенную прицельную сетку.

  • set_overlay_telemetry – Отображает или скрывает данные телеметрии.

Геттеры

  • is_recording – Возвращает, ведет ли видеозапись датчик.

  • get_recording_time – Возвращает время, затраченное на запись.

Действия#

start_recording#

start_recording запускает запись с помощью указанного датчика зрения.

Для получения информации о просмотре и извлечении записей перейдите сюда.

Применение:

drone.camera.start_recording(camera)

Параметры

Описание

camera

Датчик изображения для записи: 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 останавливает запись с указанного датчика зрения.

Для получения информации о просмотре и извлечении записей перейдите сюда.

Применение:

drone.camera.stop_recording(camera)

Параметры

Описание

camera

Датчик изображения для остановки записи: 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 делает снимок с помощью указанного датчика зрения.

Для получения информации о просмотре и извлечении захваченных изображений перейдите сюда.

Применение:

drone.camera.capture_image(camera)

Параметры

Описание

camera

Датчик изображения для съемки: 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 устанавливает текущий режим экрана на указанный видеопоток с датчика изображения.

Применение:

controller.screen.show_camera(camera)

Параметры

Описание

camera

Отображаемый видеопоток с датчика зрения: 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 скрывает видеопоток с указанного датчика зрения.

Применение:

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 включает или отключает наложенную прицельную сетку. Прицельная сетка — это визуальный маркер, например, перекрестие, который появляется в поле зрения камеры, чтобы помочь при прицеливании или выравнивании объектов.

По умолчанию в начале проекта значение наложения сетки установлено на True , и это только для нижнего датчика зрения.

Usage:
controller.screen.set_overlay_reticle(state)

Параметры

Описание

state

Состояние наложенной прицельной сетки: True включает наложенную прицельную сетку. False отключает наложенную прицельную сетку.

# 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 включает или отключает отображение телеметрических данных дрона на экране контроллера. Телеметрия — это данные в реальном времени, получаемые дроном во время полета или выполнения проекта.

По умолчанию в начале проекта значение параметра наложения телеметрических данных установлено на True.

Usage:
controller.screen.set_overlay_telemetry(state)

Параметры

Описание

state

Состояние телеметрических данных: True включает отображение телеметрических данных на экране. False отключает отображение телеметрических данных на экране.

# 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 возвращает логическое значение, указывающее, ведется ли в данный момент запись с указанного датчика зрения.

  • True – Указанный датчик зрения ведет запись.

  • False – Указанный датчик зрения не ведет запись.

Применение:

drone.camera.is_recording(camera)

Параметры

Описание

camera

Датчик зрения для проверки состояния записи: 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 возвращает время записи конкретного датчика зрения в виде десятичного числа (float) в секундах.

Применение:

drone.camera.get_recording_time(camera)

Параметры

Описание

camera

Датчик зрения для проверки времени записи: 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)