Камера#
Вступ#
Дрон 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)