Caméra#

Introduction#

Le drone VEX AIR est équipé de deux capteurs de vision faisant office de caméras embarquées : un à l’avant et un en dessous. Ces capteurs permettent de capturer des images et des vidéos en vol. Dans VEXcode AIR, le terme « caméra » désigne toujours l’un de ces capteurs de vision. Par exemple, dans une commande comme drone.camera.start_recording(FORWARD_CAMERA), camera , 4 <code>FORWARD_CAMERA</code> désigne le capteur de vision, et FORWARD_CAMERA, sélectionne la caméra avant.

Pour transférer les enregistrements vidéo et les images depuis la radiocommande du drone VEX AIR, connectez-la à votre ordinateur. Elle apparaîtra comme un périphérique de stockage de masse (semblable à une clé USB), vous permettant de copier directement les fichiers. Après avoir terminé un projet, patientez environ une minute le temps que la radiocommande finisse de télécharger les images ou les enregistrements du drone avant de tenter de les copier.

Vous trouverez ci-dessous la liste de toutes les méthodes disponibles :

Actes

  • start_recording – Enregistre la vidéo à partir d’un capteur de vision.

  • stop_recording – Arrête l’enregistrement à partir d’un capteur de vision.

  • capture_image – Capture une image à partir d’un capteur de vision.

Mutateurs

  • show_camera – Affiche le capteur de vision sélectionné sur le contrôleur de drone VEX AIR.

  • hide_camera – Masque le flux du capteur de vision sur le contrôleur.

  • set_overlay_reticle – Affiche ou masque le réticule de superposition.

  • set_overlay_telemetry – Affiche ou masque les données de télémétrie.

Attrapeurs

Actes#

start_recording#

start_recording lance un enregistrement avec le capteur de vision spécifié.

Pour plus d’informations sur la consultation et la récupération des enregistrements, allez ici.

Usage:

drone.camera.start_recording(camera)

Paramètres

Description

camera

Le capteur de vision pour enregistrer avec : 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 arrête l’enregistrement du capteur de vision spécifié.

Pour plus d’informations sur la consultation et la récupération des enregistrements, allez ici.

Usage:

drone.camera.stop_recording(camera)

Paramètres

Description

camera

Le capteur de vision pour arrêter l’enregistrement avec : 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 prend une photo avec le capteur de vision spécifié.

Pour plus d’informations sur la visualisation et la récupération des images capturées, allez ici.

Usage:

drone.camera.capture_image(camera)

Paramètres

Description

camera

Le capteur de vision pour prendre une photo avec : 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)

Mutateurs#

show_camera#

show_camera définit le mode d’écran actuel sur le flux du capteur de vision spécifié.

Usage:

controller.screen.show_camera(camera)

Paramètres

Description

camera

Le flux du capteur de vision à afficher : 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 masque le flux du capteur de vision spécifié.

Usage:

controller.screen.hide_camera()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Hide camera feed after 3 seconds
controller.screen.show_camera(FORWARD_CAMERA)
wait(3, SECONDS)
controller.screen.hide_camera()

set_overlay_reticle#

La commande set_overlay_reticle (valeur set_overlay_reticle active ou désactive le réticule superposé. Un réticule est un repère visuel, tel qu’un réticule, qui apparaît dans le champ de vision de la caméra pour faciliter la visée ou l’alignement des objets.

Par défaut, la superposition du réticule est définie sur True au début d’un projet, uniquement sur le capteur de vision orienté vers le bas.

Usage:
controller.screen.set_overlay_reticle(state)

Paramètres

Description

state

État du réticule superposé : True active le réticule superposé ; False désactive le réticule superposé.

# 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#

La commande set_overlay_telemetry (valeur set_overlay_telemetry active ou désactive l’affichage des données de télémétrie du drone sur l’écran de la radiocommande. La télémétrie correspond aux données en temps réel transmises par le drone pendant son vol ou l’exécution d’un projet.

Par défaut, la superposition des données de télémétrie est définie sur True au début d’un projet.

Usage:
controller.screen.set_overlay_telemetry(state)

Paramètres

Description

state

État des données de télémétrie : True  : active l’affichage des données de télémétrie à l’écran. False  : désactive l’affichage des données de télémétrie à l’écran.

# 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 renvoie une valeur booléenne indiquant si un capteur de vision spécifié est en train d’enregistrer.

  • True – Le capteur de vision spécifié enregistre.

  • False – Le capteur de vision spécifié n’enregistre pas.

Usage:

drone.camera.is_recording(camera)

Paramètres

Description

camera

Le capteur de vision pour vérifier l’état d’enregistrement 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 renvoie la durée d’enregistrement d’un capteur de vision spécifique sous forme décimale (float) en secondes.

Usage:

drone.camera.get_recording_time(camera)

Paramètres

Description

camera

Le capteur de vision pour vérifier le temps d’enregistrement 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)