Câmera#
Introdução#
O drone VEX AIR inclui dois sensores de visão que funcionam como câmaras integradas — um na parte frontal e outro na parte inferior. Podem captar imagens e vídeos durante o voo. No VEXcode AIR, a palavra “câmara” refere-se sempre a um destes sensores de visão. Por exemplo, num comando como drone.camera.start_recording(FORWARD_CAMERA), camera refere-se aos sensores de visão e FORWARD_CAMERA seleciona o sensor frontal.
Para transferir gravações de vídeo e imagens do controlador VEX AIR drone, ligue o controlador ao seu computador. Será reconhecido como um dispositivo de armazenamento em massa (semelhante a uma pen drive), permitindo copiar ficheiros diretamente. Após finalizar um projeto, aguarde cerca de um minuto para que o controlador termine de descarregar as imagens ou gravações do drone antes de tentar copiá-las.
Segue-se uma lista de todos os métodos disponíveis:
Ações
start_recording– Grava vídeo de um sensor de visão.stop_recording– Interrompe a gravação de um sensor de visão.capture_image– Capta uma imagem de um sensor de visão.
Mutadores
show_camera– Mostra o sensor de visão seleccionado no controlador VEX AIR do drone.hide_camera– Oculta a alimentação do sensor de visão no controlador.set_overlay_reticle– Mostra ou oculta a retícula de sobreposição.set_overlay_telemetry– Mostra ou oculta os dados de telemetria.
Obteve
is_recording– Retorna se o sensor de visão está a gravar.get_recording_time– Retorna o tempo gasto a gravar.
Ações#
start_recording#
start_recording inicia uma gravação com o sensor de visão especificado.
Para obter informações sobre como visualizar e recuperar gravações, vá aqui.
Utilização:
drone.camera.start_recording(camera)
Parâmetros |
Descrição |
|---|---|
|
O sensor de visão para gravar com: |
# 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 interrompe a gravação do sensor de visão especificado.
Para obter informações sobre como visualizar e recuperar gravações, vá aqui.
Utilização:
drone.camera.stop_recording(camera)
Parâmetros |
Descrição |
|---|---|
|
O sensor de visão para parar a gravação com: |
# 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 tira uma fotografia com o sensor de visão especificado.
Para obter informações sobre como visualizar e recuperar imagens captadas, ir aqui.
Utilização:
drone.camera.capture_image(camera)
Parâmetros |
Descrição |
|---|---|
|
O sensor de visão para tirar uma fotografia com: |
# 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)
Mutantes#
show_camera#
show_camera define o modo de ecrã atual para a entrada do sensor de visão especificado.
Utilização:
controller.screen.show_camera(camera)
Parâmetros |
Descrição |
|---|---|
|
O sinal do sensor de visão deve apresentar: |
# 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 oculta a imagem do sensor de visão especificado.
Utilização:
controller.screen.hide_camera()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# 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 ativa ou desativa a retícula sobreposta. Uma retícula é um marcador visual, como uma mira em cruz, que aparece na visão da câmara para auxiliar a mira ou o alinhamento de objetos.
Por predefinição, a sobreposição da retícula está definida para True no início de um projeto, apenas no sensor de visão inferior.
Usage:
controller.screen.set_overlay_reticle(state)
Parâmetros |
Descrição |
|---|---|
|
Estado da mira sobreposta: |
# 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 ativa ou desativa a visibilidade dos dados de telemetria do drone no ecrã do controlador. A telemetria são dados em tempo real do drone enquanto este está a voar ou a executar um projeto.
Por predefinição, a sobreposição de dados de telemetria está definida para True no início de um projeto.
Usage:
controller.screen.set_overlay_telemetry(state)
Parâmetros |
Descrição |
|---|---|
|
Estado dos dados de telemetria: |
# 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)
Getters#
is_recording#
is_recording devolve um valor booleano indicando se um sensor de visão especificado está a escrever no momento.
True– O sensor de visão especificado está a gravar.False– O sensor de visão especificado não está a gravar.
Utilização:
drone.camera.is_recording(camera)
Parâmetros |
Descrição |
|---|---|
|
O sensor de visão verifica o estado de gravação de: |
# 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 devolve a quantidade de tempo que um sensor de visão específico esteve a gravar como um decimal (float) em segundos.
Utilização:
drone.camera.get_recording_time(camera)
Parâmetros |
Descrição |
|---|---|
|
O sensor de visão verifica o tempo de gravação de: |
# 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)