Cámara#

Introducción#

El dron VEX AIR incluye dos sensores de visión que sirven como cámaras a bordo, una en la parte frontal y otra en la parte inferior. Estos pueden capturar imágenes y videos durante el vuelo. En VEXcode AIR, la palabra “cámara” siempre se refiere a uno de estos sensores de visión. Por ejemplo, en un comando como drone.camera.start_recording(FORWARD_CAMERA), camera se refiere a los sensores de visión y FORWARD_CAMERA selecciona el frontal.

Para transferir grabaciones de video e imágenes desde el controlador de drones VEX AIR, conecte el controlador a su computadora. Aparecerá como un dispositivo de almacenamiento masivo (similar a una unidad USB), lo que le permitirá copiar archivos directamente. Después de finalizar un proyecto, espere aproximadamente un minuto para que el controlador termine de descargar cualquier imagen o grabación del dron antes de intentar copiarlas.

A continuación se muestra una lista de todos los métodos disponibles:

Acciones

Mutadores

  • show_camera – Muestra el sensor de visión seleccionado en el controlador de drones VEX AIR.

  • hide_camera – Oculta la alimentación del sensor de visión en el controlador.

  • set_overlay_reticle – Muestra u oculta la retícula de superposición.

  • set_overlay_telemetry – Muestra u oculta los datos de telemetría.

Getters

Acciones#

start_recording#

start_recording inicia una grabación con el sensor de visión especificado.

Para obtener información sobre cómo ver y recuperar grabaciones, vaya aquí.

Uso:

drone.camera.start_recording(camera)

Parámetros

Descripción

camera

El sensor de visión para grabar con: DOWNWARD_CAMERA o 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 detiene la grabación del sensor de visión especificado.

Para obtener información sobre cómo ver y recuperar grabaciones, vaya aquí.

Uso:

drone.camera.stop_recording(camera)

Parámetros

Descripción

camera

El sensor de visión para detener la grabación con: DOWNWARD_CAMERA o 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 toma una foto con el sensor de visión especificado.

Para obtener información sobre cómo ver y recuperar imágenes capturadas, vaya aquí.

Uso:

drone.camera.capture_image(camera)

Parámetros

Descripción

camera

El sensor de visión para tomar una foto con: DOWNWARD_CAMERA o 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)

Mutadores#

show_camera#

show_camera establece el modo de pantalla actual en la alimentación del sensor de visión especificada.

Uso:

controller.screen.show_camera(camera)

Parámetros

Descripción

camera

El sensor de visión se alimenta para mostrar: DOWNWARD_CAMERA o 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 la alimentación del sensor de visión especificado.

Uso:

controller.screen.hide_camera()

Parámetros

Descripción

Este método no tiene 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 habilita o deshabilita la retícula de superposición. Una retícula es un marcador visual, como un punto de mira, que aparece en la vista de la cámara para ayudar a apuntar o alinear objetos.

Por defecto, la superposición de la retícula se establece en True al inicio de un proyecto, solo en el sensor de visión inferior.

Usage:
controller.screen.set_overlay_reticle(state)

Parámetros

Descripción

state

El estado de la retícula de superposición: True permite la retícula de superposición. False desactiva la retícula de superposición.

# 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 habilita o deshabilita la visibilidad de los datos de telemetría del dron en la pantalla del controlador. La telemetría son datos en vivo del dron mientras está volando o ejecutando un proyecto.

Por defecto, la superposición de datos de telemetría está configurada en True al inicio de un proyecto.

Usage:
controller.screen.set_overlay_telemetry(state)

Parámetros

Descripción

state

El estado de los datos de telemetría: True permite ver los datos de telemetría en la pantalla. False deshabilita la visualización de datos de telemetría en la pantalla.

# 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 devuelve un booleano que indica si un sensor de visión especificado está grabando actualmente.

  • True : el sensor de visión especificado está grabando.

  • False : el sensor de visión especificado no está grabando.

Uso:

drone.camera.is_recording(camera)

Parámetros

Descripción

camera

El sensor de visión para verificar el estado de grabación de: DOWNWARD_CAMERA o 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 devuelve la cantidad de tiempo que un sensor de visión específico ha estado registrando como un (float) decimal en segundos.

Uso:

drone.camera.get_recording_time(camera)

Parámetros

Descripción

camera

El sensor de visión para comprobar el tiempo de grabación de: DOWNWARD_CAMERA o 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)