Cámara#

Introducción#

El dron VEX AIR incluye dos sensores de visión que funcionan como cámaras integradas: una en la parte delantera y otra en la inferior. Estas pueden capturar imágenes y vídeo 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 que apunta hacia adelante.

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

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

Comportamiento

Mutadores

Conseguidores

Comportamiento#

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

Sensor de visión para grabar: 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 es: 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 fotografía 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: 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 a la señal del sensor de visión especificada.

Uso:

controller.screen.show_camera(camera)

Parámetros

Descripción

camera

La señal del sensor de visión se 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 señal 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 superpuesta. Una retícula es un marcador visual, como una cruz, 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

Estado de la retícula superpuesta: True habilita la retícula superpuesta. False desactiva la retícula superpuesta.

# 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 tiempo real del dron mientras vuela o ejecuta 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

Estado de los datos de telemetría: True permite visualizar los datos de telemetría en la pantalla. False desactiva la visualización de los 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)

Captadores#

is_recording#

is_recording devuelve un valor 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 comprobar 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 grabando como un decimal (float) 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)