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

Mutadores

Obteve

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

camera

O sensor de visão para gravar com: DOWNWARD_CAMERA ou 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 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

camera

O sensor de visão para parar a gravação com: DOWNWARD_CAMERA ou 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 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

camera

O sensor de visão para tirar uma fotografia com: DOWNWARD_CAMERA ou 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)

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

camera

O sinal do sensor de visão deve apresentar: DOWNWARD_CAMERA ou 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 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

state

Estado da mira sobreposta: True ativa a mira sobreposta. False desativa a 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

state

Estado dos dados de telemetria: True permite a visualização dos dados de telemetria no ecrã. False desativa a visualização dos dados de telemetria no ecrã.

# 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

camera

O sensor de visão verifica o estado de gravação de: DOWNWARD_CAMERA ou 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 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

camera

O sensor de visão verifica o tempo de gravação de: DOWNWARD_CAMERA ou 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)