Camera#

Invoering#

De VEX AIR-drone is uitgerust met twee Vision Sensors die dienst doen als ingebouwde camera’s: één aan de voorkant en één aan de onderkant. Deze kunnen zowel foto’s als video’s maken tijdens de vlucht. In VEXcode AIR verwijst het woord “camera” altijd naar een van deze Vision Sensors. In een commando zoals drone.camera.start_recording(FORWARD_CAMERA), verwijst camera bijvoorbeeld naar de Vision Sensors, en FORWARD_CAMERA selecteert de naar voren gerichte sensor.

Om video-opnamen en foto’s van de VEX AIR Drone Controller over te zetten, sluit u de controller aan op uw computer. Deze verschijnt dan als een massaopslagapparaat (vergelijkbaar met een USB-stick), waardoor u bestanden direct kunt kopiëren. Nadat u een project hebt afgerond, wacht u ongeveer een minuut totdat de controller alle foto’s en opnames van de drone heeft gedownload voordat u ze probeert te kopiëren.

Hieronder vindt u een lijst met alle beschikbare methoden:

Acties

Mutators

Verdieners

Acties#

start_recording#

start_recording start een opname met de opgegeven Vision Sensor.

Voor informatie over het bekijken en ophalen van opnames, ga hierheen.

Gebruik:

drone.camera.start_recording(camera)

Parameters

Beschrijving

camera

De beeldsensor waarmee opgenomen moet worden: DOWNWARD_CAMERA of 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 stopt de opname van de opgegeven Vision Sensor.

Voor informatie over het bekijken en ophalen van opnames, ga hierheen.

Gebruik:

drone.camera.stop_recording(camera)

Parameters

Beschrijving

camera

De Vision Sensor stopt de opname met: DOWNWARD_CAMERA of 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 maakt een foto met de opgegeven Vision Sensor.

Voor informatie over het bekijken en ophalen van vastgelegde afbeeldingen, ga hierheen.

Gebruik:

drone.camera.capture_image(camera)

Parameters

Beschrijving

camera

De beeldsensor om een ​​foto mee te maken: DOWNWARD_CAMERA of 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)

Mutators#

show_camera#

show_camera stelt de huidige schermmodus in op de opgegeven Vision Sensor-feed.

Gebruik:

controller.screen.show_camera(camera)

Parameters

Beschrijving

camera

De beeldsensor geeft de volgende gegevens weer: DOWNWARD_CAMERA of 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 verbergt de feed van de opgegeven Vision Sensor.

Gebruik:

controller.screen.hide_camera()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 schakelt het overlay-richtkruis in of uit. Een richtkruis is een visuele markering, zoals een kruisdraad, die in het camerabeeld verschijnt om te helpen bij het richten of uitlijnen van objecten.

Standaard is de dradenkruisoverlay aan het begin van een project ingesteld op True , maar alleen op de naar beneden gerichte Vision Sensor.

Usage:
controller.screen.set_overlay_reticle(state)

Parameters

Beschrijving

state

De status van het overlay-richtkruis: True schakelt het overlay-richtkruis in. False schakelt het overlay-richtkruis uit.

# 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 schakelt de zichtbaarheid van de telemetriegegevens van de drone op het scherm van de controller in of uit. Telemetrie zijn live gegevens van de drone tijdens het vliegen of het uitvoeren van een project.

Standaard is de overlay voor telemetriegegevens ingesteld op True aan het begin van een project.

Usage:
controller.screen.set_overlay_telemetry(state)

Parameters

Beschrijving

state

De status van de telemetriegegevens: True maakt het mogelijk om telemetriegegevens op het scherm weer te geven. False maakt het mogelijk om telemetriegegevens niet op het scherm weer te geven.

# 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 retourneert een Booleaanse waarde die aangeeft of een opgegeven Vision Sensor momenteel aan het opnemen is.

  • True – De opgegeven beeldsensor neemt op.

  • False – De opgegeven beeldsensor registreert niet.

Gebruik:

drone.camera.is_recording(camera)

Parameters

Beschrijving

camera

De Vision Sensor controleert de opnamestatus van: DOWNWARD_CAMERA of 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 retourneert de hoeveelheid tijd dat een specifieke Vision Sensor heeft opgenomen als een decimaal (float) getal in seconden.

Gebruik:

drone.camera.get_recording_time(camera)

Parameters

Beschrijving

camera

De Vision Sensor controleert de opnametijd van: DOWNWARD_CAMERA of 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)