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
start_recording– Zeichnet Video von einem Vision Sensor auf.stop_recording– Stoppt die Aufzeichnung von einem Bildsensor.capture_image– Erfasst ein Bild von einem Vision Sensor.
Mutatoren
show_camera– Zeigt den ausgewählten Vision Sensor auf dem VEX AIR Drone Controller an.hide_camera– Blendet den Vision Sensor-Feed auf dem Controller aus.set_overlay_reticle– Zeigt oder blendet das Overlay-Fadenkreuz aus.set_overlay_telemetry– Zeigt oder blendet Telemetriedaten ein oder aus.
Getter
is_recording– Gibt zurück, ob der Vision Sensor aufzeichnet.get_recording_time– Gibt die für die Aufnahme aufgewendete Zeit zurück.
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 |
|---|---|
|
Der Vision Sensor, mit dem aufgezeichnet werden soll: |
# 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 |
|---|---|
|
Der Vision Sensor stoppt die Aufnahme mit: |
# 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 |
|---|---|
|
Der Vision Sensor zum Aufnehmen eines Bildes mit: |
# 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 |
|---|---|
|
Der Vision Sensor-Feed zur Anzeige: |
# 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 |
|---|---|
|
Der Status des Overlay-Fadenkreuzes: |
# 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 |
|---|---|
|
Status der Telemetriedaten: |
# 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 |
|---|---|
|
Der Vision Sensor prüft den Aufnahmestatus von: |
# 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 |
|---|---|
|
Der Vision Sensor prüft die Aufnahmezeit von: |
# 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)