Kamera#

Einführung#

Die VEX AIR Drohne verfügt über zwei Vision-Sensoren, die als Bordkameras dienen – einen an der Vorderseite und einen an der Unterseite. Diese können während des Fluges sowohl Bilder als auch Videos aufnehmen. In VEXcode AIR bezieht sich das Wort „Kamera“ immer auf einen dieser Vision-Sensoren. Beispielsweise bezieht sich in einem Befehl wie drone.camera.start_recording(FORWARD_CAMERA) die Kamera camera-Sensoren, und FORWARD_CAMERA wählt den nach vorne gerichteten Sensor aus.

Um Videoaufnahmen und Bilder vom VEX AIR Drohnen-Controller zu übertragen, verbinden Sie den Controller mit Ihrem Computer. Er wird als Massenspeichergerät (ähnlich einem USB-Stick) erkannt, sodass Sie Dateien direkt kopieren können. Warten Sie nach Abschluss eines Projekts etwa eine Minute, bis der Controller alle Bilder und Aufnahmen von der Drohne heruntergeladen hat, bevor Sie versuchen, diese zu kopieren.

Nachfolgend finden Sie eine Liste aller verfügbaren Methoden:

Aktionen

Mutatoren

Getter

Aktionen#

start_recording#

start_recording startet eine Aufzeichnung mit dem angegebenen Bildsensor.

Informationen zum Ansehen und Abrufen von Aufnahmen finden Sie hier.

Verwendung:

drone.camera.start_recording(camera)

Parameter

Beschreibung

camera

Der Vision Sensor, mit dem aufgezeichnet werden soll: DOWNWARD_CAMERA oder 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 stoppt die Aufzeichnung des angegebenen Bildsensors.

Informationen zum Ansehen und Abrufen von Aufnahmen finden Sie hier.

Verwendung:

drone.camera.stop_recording(camera)

Parameter

Beschreibung

camera

Der Vision Sensor stoppt die Aufnahme mit: DOWNWARD_CAMERA oder 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 macht ein Bild mit dem angegebenen Bildsensor.

Informationen zum Anzeigen und Abrufen der aufgenommenen Bilder finden Sie hier.

Verwendung:

drone.camera.capture_image(camera)

Parameter

Beschreibung

camera

Der Vision Sensor zum Aufnehmen eines Bildes mit: DOWNWARD_CAMERA oder 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)

Mutatoren#

show_camera#

show_camera stellt den aktuellen Bildschirmmodus auf den angegebenen Vision Sensor-Feed ein.

Verwendung:

controller.screen.show_camera(camera)

Parameter

Beschreibung

camera

Der Vision Sensor-Feed zur Anzeige: DOWNWARD_CAMERA oder 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 blendet das Bild des angegebenen Bildsensors aus.

Verwendung:

controller.screen.hide_camera()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# 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 aktiviert oder deaktiviert das Overlay-Fadenkreuz. Ein Fadenkreuz ist eine visuelle Markierung, ähnlich einem Fadenkreuz, die im Kamerabild erscheint, um das Zielen oder Ausrichten von Objekten zu erleichtern.

Standardmäßig ist die Fadenkreuzüberlagerung zu Beginn eines Projekts nur auf dem nach unten gerichteten Sichtsensor auf True eingestellt.

Usage:
controller.screen.set_overlay_reticle(state)

Parameter

Beschreibung

state

Der Status des Overlay-Fadenkreuzes: True Overlay-Fadenkreuz aktiviert, False = Overlay-Fadenkreuz deaktiviert.

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

Der Befehl set_overlay_telemetry aktiviert oder deaktiviert die Anzeige der Telemetriedaten der Drohne auf dem Bildschirm des Controllers. Telemetriedaten sind Live-Daten der Drohne während des Fluges oder der Ausführung eines Projekts.

Standardmäßig ist die Telemetriedaten-Überlagerung zu Beginn eines Projekts auf True eingestellt.

Usage:
controller.screen.set_overlay_telemetry(state)

Parameter

Beschreibung

state

Status der Telemetriedaten: True = Anzeige der Telemetriedaten auf dem Bildschirm aktiviert. False = Anzeige der Telemetriedaten auf dem Bildschirm deaktiviert.

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

Getter#

is_recording#

is_recording gibt einen booleschen Wert zurück, der angibt, ob ein bestimmter Vision Sensor gerade aufzeichnet.

  • True – Der angegebene Bildsensor zeichnet auf.

  • False – Der angegebene Bildsensor zeichnet nicht auf.

Verwendung:

drone.camera.is_recording(camera)

Parameter

Beschreibung

camera

Der Vision Sensor prüft den Aufnahmestatus von: DOWNWARD_CAMERA oder 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 gibt die Zeitdauer zurück, die ein bestimmter Vision Sensor aufgezeichnet hat, als Dezimalzahl (float) in Sekunden.

Verwendung:

drone.camera.get_recording_time(camera)

Parameter

Beschreibung

camera

Der Vision Sensor prüft die Aufnahmezeit von: DOWNWARD_CAMERA oder 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)