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
start_recording– Graba vídeo desde un sensor de visión.stop_recording– Detiene la grabación desde un sensor de visión.capture_image– Captura una imagen de un sensor de visión.
Mutadores
show_camera– Muestra el sensor de visión seleccionado en el controlador del dron VEX AIR.hide_camera– Oculta la señal del sensor de visión en el controlador.set_overlay_reticle– Muestra u oculta la retícula superpuesta.set_overlay_telemetry– Muestra u oculta los datos de telemetría.
Conseguidores
is_recording– Devuelve si el sensor de visión está grabando.get_recording_time– Devuelve el tiempo empleado en la grabación.
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 |
|---|---|
|
Sensor de visión para grabar: |
# 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 |
|---|---|
|
El sensor de visión para detener la grabación es: |
# 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 |
|---|---|
|
El sensor de visión para tomar una foto: |
# 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 |
|---|---|
|
La señal del sensor de visión se mostrará: |
# 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 |
|---|---|
|
Estado de 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 |
|---|---|
|
Estado de los datos de telemetría: |
# 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 |
|---|---|
|
El sensor de visión para comprobar el estado de grabación 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 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 |
|---|---|
|
El sensor de visión para comprobar el tiempo de grabación 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)