Камера#
Введение#
Дрон 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)
Параметры |
Описание |
|---|---|
|
Датчик изображения для записи: |
# 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)
Параметры |
Описание |
|---|---|
|
Датчик изображения для остановки записи: |
# 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)
Параметры |
Описание |
|---|---|
|
Датчик изображения для съемки: |
# 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)
Параметры |
Описание |
|---|---|
|
Отображаемый видеопоток с датчика зрения: |
# 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)
Параметры |
Описание |
|---|---|
|
Состояние наложенной прицельной сетки: |
# 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)
Параметры |
Описание |
|---|---|
|
Состояние телеметрических данных: |
# 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)
Параметры |
Описание |
|---|---|
|
Датчик зрения для проверки состояния записи: |
# 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)
Параметры |
Описание |
|---|---|
|
Датчик зрения для проверки времени записи: |
# 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)